본 내용은 내일배움캠프에서 활동한 내용을 기록한 글입니다.
예비군 때문에 늦어서 빠르게 개인과제를 진행함
그래도 강의는 전부 시청했기에 강의에서 배운 내용을 기반으로 빠르게 진행함
인증, 인가를 적용하는 부분에서 생각보다 시간이 오래 걸림
내 머리속에서 내가 이해할 수 있도록 정리하는 게 가장 어려웠음
Insomnia에서 Bearer 토큰을 사용하면 req.headers에 자동으로 Authorization 이름으로 값이 들어감
월요일에 대부분의 기능을 구현해서 구현 자체는 수월했음
Insomnia로 각 API들을 테스트하는 시간이 생각보다 오래 걸림
시간이 빠듯할 것 같기에 지난번 과제에서 사용한 EC2 인스턴스를 이용해서 배포함
Access Token과 Refresh Token의 역할에 대해 조금 더 이해가 필요함
과제 제출 당일이기에 서둘러서 리드미 작성을 마무리 함
그리고 과제로 더 고민해 보기 라는 질문이 있었기에 작성해서 제출함
대부분의 내용은 과제 내용을 기반으로 한 질문이었기에 나름 쉽게 작성함
하지만 MySQL, Prisma -> MongoDB, mongoose로 바꾸는 방법에 대해서는 제대로 답변하지 못함
인터넷을 찾아봐도 명쾌한 답변이 나오지 않았음
과제 제출이 끝났기에 팀프로젝트 발제 전까지 개인과제 해설 영상을 시청함
해설 영상을 기반으로 코드를 리팩토링 함
튜터님께서 문자열이나 숫자와 같은 상수들을 객체화해서 따로 관리하는 방법을 알려주셨음
이 방법을 사용하니 중복이 줄어들었고, 나중에 유지보수에도 좋을 것 같음
그리고 Prisma의 where절 조건을 역할에 조건문을 통해 다르게 적용하는 법 역시 생각도 못한 방법이었기에 굉장히 유용했음
대망의 팀프로젝트가 발제되는 날
당연하게도 코드 구현에 들어가기 전에 S.A 작성을 먼저 함
와이어프레임, API 명세서, ERD 작성 등을 진행함
ERD 작성 중 테이블 간의 관계를 설정하는 것이 제일 어렵고 오래 걸렸음
사실 관계는 성능을 위해서 상황에 맞춰서 정하는 것이기에 정의하는 것이 어려웠음
특히 사용자가 게시글에 좋아요를 누른다는 상황에서의 관계가 가장 어려웠음
trade_like 라는 테이블을 명시적으로 만들어서 사용자와 trade_like를 1:N으로 구현해도 되고, 사용자와 게시글 테이블을 N:M 관계로 만들어 암시적으로 trade_like 테이블을 만들어 줘도 되었음
결국 팀원들과 회의에서 쉽게 결정이 나지 않자 튜터님에게 피드백을 받고 N:M 관계로 구현하기로 함
팀프로젝트가 발제되었고 제출까지 주말과 공휴일이 껴있기 때문에 빠르게 구현할 필요가 있음
나의 역할을 기능적 API들을 구현하는 것이 아니라 Prisma를 구현하고 Joi같은 유효성 검사 등 부수적으로 필요한 내용들을 만드는 것임
그렇기에 팀원들의 진행에 맞춰서 나 역시 필요한 코드들을 구현할 계획임
이번 주는 지난주의 예비군 훈련으로 인한 피로가 덜 풀린거 같음...ㅋㅋㅋㅋ
그 상태에서 개인 과제도 진행하고 이어서 팀프로젝트도 진행하니 머리가 멍해지는 느낌임
그래도 이번에 진행한 강의와 개인과제가 굉장히 도움이 많이 되었음
특히 개인 과제 해설 강의에서 튜터님께서 상수들을 관리하는 방법이나 스프레드 연산자의 활용, where절의 조건 분기 등 유익한 내용이 많았기에 굉장히 좋은 시간이었음