해당 글은 위 사이트에 대한 제작기를 바탕으로 작성된 글입니다.
https://loy124.tistory.com/389
기초 nest를 설치하고나서 문제는 이제 DB -> TypeOrm을 통한 DB -> Object간 연결을 위한 Entity 생성 작업이 필요했다.
1 DB Mapping
2. 로그인 설계
3. 로그 시스템
4. 데이터 후처리
DB Mapping
처음에는 해당 DB를 전부 Entity에 옮겨담는 작업을 해야 해서 어떻게 개발을 해야할까 고민했는데
해당 작업은 생각보다 쉽게 해결 할 수 있었다.
나같은 고민을 한 사람이 많아서 그런지 이를 위한 라이브러리가 존재했다:)
https://www.npmjs.com/package/typeorm-model-generator
해당 라이브러리를 사용하게 되면 Mysql 데이터베이스에 있는 정보들을 읽어와서 자동으로 Entity를 생성해줘서 정말 편리했다.
로그인 설계
로그인 설계를 고려하는데에는 꽤나 많은 시간이 들었다.
https://loy124.tistory.com/383
이를 위해 express+ react를 통해 간략하게 소셜 로그인을 만들어보는 작업을 진행했고 위를 기반으로 로그인 시스템을 제작했다.
위 방식과 차이가 있다면 nest.js에서는 Guard라는 시스템을 활용해서 로그인 시스템에 접목해줬다.
로그 시스템
https://loy124.tistory.com/381
해당 로그 시스템도 위의 글을 기반으로 제작하였다. 기존 node에서 적용되던 방식이라 크게 어렵지는 않았다.
데이터 후처리
파일 업로드가 서버에 저장되기 때문에 파일이 존재하는 경우 imageUrl 링크를 만들어서 frontend 에서 요청시 이를 응답해주는 코드가 필요했다.
기존 express에서는 이를 통한 개발을 하려면 일일히 함수를 넣어주는 불편함이 있었는데
nest.js에서는 조금더 편하게 작성이 가능했다.
nest.js에서는 interceptor를 제공하기 때문에 데이터를 return하기 전에 해당 interceptor를 거치고 내보낼 수 있다.
해당 FileImageInterceptor등을 통해 파일 데이터가 존재한다면 imageUrl을 같이 전송해주는 코드를 전역적으로 활용할수 있게 됐다.
기존의 개발시에 좀 차질이 있던 부분들을 nest.js를 활용하면서 해결할 수 있는 부분이 늘어나 조금 더 구조적으로 개발을 할 수 있는 좋은 기회였다 :)
'프로젝트 > 회사 및 외주 프로젝트' 카테고리의 다른 글
민코딩 연구소 사이트 제작기(4) - SEO 고려하기 (0) | 2021.11.27 |
---|---|
민코딩 연구소 사이트 제작기(3) - 프론트엔드 (0) | 2021.11.27 |
민코딩 연구소 사이트 제작기(1) - 스택및 설계 (0) | 2021.11.27 |