본 내용은 내일배움캠프에서 활동한 내용을 기록한 글입니다.
Nest.js라는 새로운 웹 프레임워크에 익숙해지는데 생각보다 오래 걸렸다.
Express와 다르게 Nest.js에서 자동으로 지원해주는 과정들이 있어서 서버가 돌아가는 과정을 한번에 이해하기 어려웠음
특히나 Express는 오랜 기간동안 사용했기에 그 만큼 익숙해지고 어느 정도의 구조를 알고 있음
하지만 Nest.js는 사용한지 일주일 밖에 되지 않았기 때문에 조금 더 공부가 필요해 보임
위에서 말한 것처럼 Nest.js를 처음 쓸 때, 내가 가장 어렵게 느낀 부분은 서버의 실행 순서였음
다행히 튜터님께서 공식문서에 있는 실행 순서를 알려 주셔서 이해하는데 큰 도움이 되었음
순서를 알았으니 각 기능의 중심이 되는 모듈에 대한 궁금증이 생겼음
모듈에서는 해당 모듈에서 사용할 패키지를 imports하고, 서비스에서 가져와 사용할 것들을 providers에 추가하고, 어떤 컨트롤러를 사용할지 controllers에 작성하고, 다른 곳에서 해당 모듈의 어떤 것을 가져다 사용할 때 어떤 것을 exports할지 작성함
다시 정리하면 imports는 외부 모듈이나 라이브러리를 가져와 사용할 것들을 작성하고,
providers는 현재 모듈에서 사용할 Service들을 작성,
controllers는 현재 모듈에서 사용할 Controller들을 작성,
exports는 현재 모듈에서의 기능 중 외부에서 사용할 수 있게 할 것들을 작성함
그래서 만약에 해당 모듈에서의 서비스에서 다른 모듈의 서비스를 사용할려면 모듈의 providers나 imports에 명시해야 됨
서비스에서 다른 서비스과 의존성을 맺으면 먼저 providers에 가서 찾아보고 거기에 없으면 imports에서 찾아보고, 만약 거기에도 없으면 app 모듈에 가서 찾음
미들웨어는 Express와 똑같은 개념이기 때문에 어떤 용도인지 어느정도 파악했음
문제는 가드, 인터셉터, 파이프가 그냥 다 비슷하거나 똑같아 보였음
공식문서도 좋았지만 위 블로그에서도 잘 정리했기에 위 블로그를 참고했음
가드는 보통 인증, 인가와 같이 사용자를 필터링하는 역할을 함
인터셉터는 해당 API, 메서드 실행 전/후에 추가될 로직을 실행하는 역할을 함
이프는 해당 API가 실행되기 전에 들어가는 입력값에 대한 변환 또는 유효성 검사를 하는 역할을 함
오늘 들은 강의 내용은 대대분이 세팅하는 내용이었음
그렇기에 내일은 강의를 시청하고 그에 맞게 코드를 리팩토링할 예정
되도록이면 남은 강의를 최대한 다 듣고 개인 공부 시간을 가질 예정
오늘은 개인과제 마무리 및 제출하는 날이기에 필요한 문서 작업을 함
Readme를 통해서 지난주까지 구현한 내용들을 정리함
프로젝트에 대한 소개부터 주요 기능 및 설명, 테스트 사진 등을 작성함