오늘은 팀프로젝트가 끝나고 첫날이 었다. 뭔가 제출하고 나니 시험을 제출한 것 같은 마음이랄까? 팀장님께서는 미니프로젝트 기간동안 거의 무박으로 진행을 하셔서 기절하셨는지 연락이 되지 않았었다.(너무 고생하셨습니다..) 오전에 제출했던 미니프로젝트의 살짝의 오류가 있어서 팀원분과 같이 해결하였다.
자세한 내용은 댓글을 달려면 로그인을 해야만 작성,수정,삭제를 할 수 있었는데, 로그아웃을 해도 댓글 수정과 삭제를 할 수 있는 현상이였다. 원인은 로그아웃을 해도 로컬 스토리지에 유저정보가 남아있어서 로그인 했을때의 기능을 사용 할 수 있는 것이 었다. 로그아웃을 하게되면 유저정보를 지워주는 코드를 넣었더니 정상동작 되었다!
자잘한 버그들도 잡고 오후 1:40에 1기 멘토분에게 프로젝트 피드백을 받았다.프로젝트를 이미 보셨고 내부 코드까지 살펴보신듯 날카로운 질문들을 날리셨다.
1. 왜 유저정보를 로컬 스토리지와 쿠키에 토큰으로 두 부분에 저장을 했는가?
2. 세션방식과 JWT토큰방식의 차이는 무엇인가?
3. 개발단계 부터 배포단계 까지 계속 같은 DB를 사용했는가?
4. 더보기를 눌렀을때 데이터가 16개씩 뿌려주는데 클라이언트에 페이지 정보도 같이 전달해 주었는가?
대답을 제대로 하지 못했다.... 아직 웹의 단어들 개념들을 생각하고 코딩을 하지 않았던것같다.
아무튼 오늘 하루도 끝났다.
프로젝트로 인해 정리하지 못했던 개념들 그리고 이번에 진행했던 프로젝트를 다시한번 뜯어보려고한다.
그리고 오후 8시에 매니저님과 단체로 이런저런 이야기를 나눴다.ㅎㅎ
- 로그인했을때 쿠키에 저장되는 토큰의 값이랑 로그아웃하고 다시 로그인 했을때 쿠키에 저장되는 토큰의 값이랑 다르다....
- 브라우저에게 유저정보를 저장할때 로컬스토리지면 로컬스토리지, 쿠키면 쿠키에다가 저장을 해야한다.
- DB를 이용할때 개발할때와 배포할때를 따로 나눠서 관리하자.
- MongoDB에 각각의 데이터가 저장될때 부여되는 고유아이디 ObjectId는 문자열이아니라 애초에 ObjectId type 이어서 문자열로 바꿔서 클라이언트에 전달하거나 비교해야했다.
- 어떤 기능의 로직을 짜는 것이 어렵다. 머리속에서 도저히 구상이 안된다.
- 백엔드와 프론트엔드의 데이터 흐름 파악하는게 어려웠다.
- 서버사이드 렌더링에 대한 개념을 처음 배워서 어떻게 적용해야 하는지 고민이 많이 되었다.
- 머리속에서 로직을 구상하지 말고 페이퍼에 먼저 그린다음 코드를 짜자.
- 웹 기본 용어들도 짬짬이 공부를 하자!
미니 프로젝트 1주차가 끝이났다. 어떻게 끝이 났는지 모르겠는데 길다면 길고 짧다면 짧은 주차였다.
프론트엔드를 준비하던 입장이라 미니프로젝트에서 백엔드를 다뤄본것은 엄청나게 좋은 경험이 이었다. API를 만들고 데이터를 요청 응답하면서 어떤데이터가 현재 이 페이지에 남아있는지, 그럼 이 남아있는 데이터를 어떻게 쓸건지, 특히 Auth개념이 끼면서 UserId를 계속 가지고 있어야했다. 그리고 MongoDb에 있는 OBjectId가 어떤조건의 데이터를 불러올지 비교하는 주요 식별자 역할을 하였다.
진짜 태어나서 이렇게 늦게까지 무언가를 몰두해서 해본 것은 처음이었다. 그래도 팀원분들도 새벽3시까지 다 같이 남아서 하니 하나도 힘들지는 않았다.(그건 아니다)
혼자 할때랑 팀원분들이랑 할떄 훨씬더 시너지가 나온것 같다. (기태님, 수인님 , 진성님 감사합니다❤️)
남은 93일 화이팅하자!!!
아무튼 이번주에 배운 개념들을 잘 정리해서 내것으로 만들어야겠다.