2주차 메인프로젝트...
2주차의 메인프로젝트 끝이 났다 이번 주에는 전반적인 UI를 코드롤 작성하는 시간을 가졌다. 막상 회의한대로 UI를 짜볼려고 하니깐 생각 보다 추가 되는 기능들이 많아졌다.
예를 들어 산책 상세페이지에서 유저 카드 부분에는 참가하기 버튼을 누르면 유저의 프로필 사진과 이름이 뜨게해야되는데 만약에 유저가 참가하기 취소하고 싶을때상황을 고려하지 않고 회의에서는 참가하기 로직만 생각했던 것이였다.
기획 시간이 많고 여유가 있었더라면 이러한 부분을 세세하게 정리하고 작업에 들어갔을 것인데 지금은 시간은 없고 전체적인 그림만 그리고 작업에 들어가니깐 UI를 작업하면서 수정해야 될 사항들이 늘어가기만 했다. 그래서 나는 노트에 수정해야 될 사항을 정리해서 회의에서 말해서 추가하는 방향으로 진행했습니다.
2주차에도 UI를 짜다보니깐 수정사항이 점점 늘어가고 처음에 목표햇던 분량보다 훨신더 많아 지는 것을 체감하게되었습니다.
보안 관련 사항들...?
내가 맡은 파트는 아니지만 로그인 기능구현에서 민감한 유저의 정보들을 프론트에서 자바스크립트 변수 혹은 usestate ,리덕스에 저장해 놓는다는게 보안상 어떤의미인지 궁금증 을 가지게 되었다.
이 부분에 관련해서 멘토님은 기본적으로 프론트엔드 보안과 거리가 멀다고 하셨다. 애초에 보안과 직결되는 정보들은 백에서 암호화를 잘 해야된다고 하셨고 프론트에서 그런 정보들을 관리하는거 자체가 위험이 엄청 증가한다고 말해주셨다. 프리때는 그런것을 전혀 고려하지않고 기능개발이 목적인 나머지 이러한 디테일은 신경쓰지 못한다는 것을 배우고 되었고 개발할때 이런거 하나하나까지 잘 관리해야 되어야겠다는 경각심을 가지게 되었습니다.
그래서 이번 프로젝트때는 유저의 민감한 정보는 백에서 최대한 노출되지 않게 고려하고 토큰값을 받아올때 여기에는 유저의 아이디 이름 , 민감한 개인정보는 최대한 빼고 진행하기로 회의 되었습니다.
유저의 예외 사항 고려...?
회의를 하다보니 끝도 없는 예외상황에 직면하게 되었다. 서비스적인 부분 코드적인 부분 둘다였다. 예를 들어서 산책글을 등록할때 화면이 렌더링되는 시점은 날짜시간, 유저가 입력할때 날짜시간 submit 버튼을 누를때 날짜 시간을 다 고려해야 되서 복잡한 상황이 발생되었다. 그래서 고민을 해보고 멘토님께 질문드렸을때는
Happy Path -> 할만한 동작, 바람직한 동작만을 체크한다라고 하셨다.
이말인즉슨 프로젝트 성격에 따라 다르다는 얘기인데 저희가 정하기 나름이라고 하셨다. 지금 프로젝트를 진행하는 우리의 상황은 특수하기때문에 그에 따라 우리팀의 목적이 어떤건지를 고려하고 정하라고 하셨다. 예를 들어 기본적인 기능들을 구현하지만 유저가 아무거나 클릭하고 이것저것 건드릴때 아무런 오류가 뜨지 않게 완벽하게 대비를 할 수 있는 상황을 만들거나 완벽한 대비는 못하지만 여러가지 기능을 구현했다는 것에 목표를 둔다거나
이런식으로 팀이 지향하는 목표에 맞춰서 예외 사항을 고려하는 것이 멘토님은 맞다고 생각하셨다 .
그래서 우리팀은 일단 목표로한 기능 구현을 완성하는것을 제일 우선순위를 두고 유효성검사를 2순위로 두기로 했다.
마지막으로...
저번 주는 거의 회의로 시간을 모두 보내고 이번주 또한 회의반 코딩 반? 의 시간을 가졌던것 같다.
최대한 회의를 안하는 쪽으로 하려고해도 기획적인 부분을 조금 탄탄하게 가졌다고 생각했으나 레이아웃을 짜면서 어떤기능을 넣을지 생각하다보니간 끝도없는 무한회의가 진행되었다. 이렇게 회의가 진행되는것은 작업하는데? 방해가 조금 되었던것도 사실이지만 이런한 회의가 있어야지 코드가 더 탄탄해지고 유저가 바라봤을때 결점이 없는 웹서비스를 제공해준다고 생각한다. 아직까지는 순조로운것 같고 다음주부터는 기능 구현을 목표로 달릴 예정이다.!