공부 및 일상기록

[WIL] 11주차 실전프로젝트 회고 본문

개발/TIL WIL 공부목표

[WIL] 11주차 실전프로젝트 회고

낚시하고싶어요 2022. 12. 5. 09:24

벌써 항해 99를 시작한지 11주차가 지나갔다.

 

원래 우리는 11주차 마지막에 프로젝트 배포를 진행하려고 했으나

 

디자이너님의 몸상태가 좋지 않아서 며칠 작업을 못하셔서

 

우리의 디자인이 아직도 완성되지 못했다.. (원래 MVP기능의 디자인 완성은 12/1까지 였는데 12/5에도 완성되지 못한다고 들었다..)

 

조금 아쉬운 결과이지만 더욱 꼼꼼히 틀린 부분이 있는지 확인 해 볼 시간을 가졌다고 생각하기로 했다.

 

사실 이번주차에는 큰 어려움은 없었다. 그래도 나름 고민한 부분에 대해서 회고해보려고 한다.

 

문제점 : 로그인시 어떻게 하면 로그인 버튼이 마이페이지 버튼으로 바뀌면서 로그아웃 버튼을 생성하게 할까?

 

위 문제는 사실 로그인시 전역 state를 만들어서 그 값을 true false로 관리하면 될것이라고 생각했고 실제로 그렇게 만들어 보니 잘 작동하였다.

그러나 새로고침을 누르는 순간..  state값이 다시 초기화가 되어 로그인이 되어있음에도 로그인버튼이 보였다.

생각을 해보면 당연했다.. 그렇다면 새로고침 할때도 내가 로그인이 되어있다는 증거를 이용하여 계속 state값을 true로 유지해줘야 했다. 처음 드는 생각은 우리 페이지는 항상 Header가 보이기 때문에 Header에 Api를 추가하여 서버에서 로그인 유무를 체크하는 방법이였다. 하지만 바로 떠오른 두번째 방법은 굳이 새로운 api를 작성하지 않아도 되어 두번째 방안을 선택했다.

 

그래서 선택한 해결 방안은 로그인시 저장한 SessionStorage의 정보를 이용하는 것이다. 우리팀은 SessionStorage에 토큰과 간단한 유저정보를 저장해둔다. 따라서 새로고침해도 그 정보는 유지되고 있다. 그래서 선택한 방법은 Header컴포넌트에서 useEffect를 통해 세션스토리지 내부의 유저정보가 존재하는 경우 로그인 체크 State를 true로 변경해주는 간단한 방법을 이용하였다.

 

위 문제와 그리고 문제에 대한 해결이 그다지 깊이있는 지식을 요구하진 않는다. 하지만 내가 중요하게 생각한 부분은 문제 해결을 위해 최대한 여러가지 방안을 먼저 생각해보는 것이다. 나또한 첫번째 해결방안이 떠올랐을때 방법만 메모장에 적어두고 다른 방법을 먼저 찾아보았다. 그 이유는 너무 급하게 코드를 작성한다면 분명히 깊이있는 생각을 하지 않았을 것이고 추후에 더 좋은 방법을 다시 적용하게 되는 번거로움이 생길 수 있기 때문이다. 그래서 나는 프로젝트에 방해되지 않는 선에서 최대한 고민을 많이 하는쪽을 선호한다.