🐳 시작 계기 및 목표
유튜부 채널 '널널한 개발자' 채널을 보던 도중 "신입 백엔드 개발자 업무역량에 관한 기준은 이정도입니다!" 영상을 보고 간단한 게시판 만들기에 도전해 보기로 했다 !
📌 게시판 기능 목록
- 유저 가입 및 로그인
- 게시글 CRUD
- 댓글 CRUD
- 게시글 좋아요
- 댓글 좋아요
📌 구현 목표
- Nest.js 공식 홈페이지 참고해서 Repository 구현 - [Nest.js] TypeORM을 활용해 공식문서처럼 Repository 만들기
- JWT 토큰 사용
- 테스트 코드 작성
간단한 기능이지만 아직 주니어 개발자 이기에 공부할 것이 많을 거 같다.
한 번 가보자고 ~
🐳 게시판 ERD 구조
📌 공통
모든 Table에 created_at, updated_at, id를 넣어 주었다. 구현 단계에서 EntityBase Class를 만들어 id, created_at, updated_at를 가지게 했고 다른 Entity들이 이 EntityBase를 상속해 모두 이 속성을 가지게 구현했다.
모든 Table은 고유한 id를 가짐으로써 1형 정규화를 만족시켰다. ( 하나의 column은 하나의 속성 값을 가지고 고유한 키를 가진다 )
📌 좋아요 테이블 분리
댓글 좋아요 / 게시글 좋아요 테이블을 댓글 및 게시글 테이블에 포함시키지 않고 따로 분리했다.
왜냐하면 댓글 좋아요를 댓글에 포함시켜 버리면 한 댓글이 여러 유저의 정보를 포함해야 하기 때문에 다대다 관계가 형성될 것을 우려해 좋아요 테이블을 분리했다.
마찬가지의 이유로 게시글 테이블과 게시글 좋아요 테이블을 분리했다.
📌 카테고리 테이블 분리
게시글에서 카테고리 테이블을 분리했다.
이 부분에서 고민을 했다. 애초에 게시글 카테고리를 Enum class로 작성해 게시글을 작성할 때 카테고리를 선택하게 할지 아니면 테이블을 분리할지 고민했다.
그 결과 테이블을 분리하는 것이 더 카테고리를 관리하는 것이 쉽다고 판단해 테이블을 분리했다.
🐳 1일차 진행 상황
📌 Done
- 완성한 ERD 기반으로 Entity 정리
- typeORM 연결을 위한 config file 작성
📌 후기
1일차에는 시간도 많이 할애하지 못하고 ERD를 많이 고민하느라 실제 코드 구현은 거의 하지 못했다.
특히 좋아요 테이블을 분리하는 것과 알림을 어떻게 할지 고민이 많았다.
일단 ERD는 이렇게 구성해 봤으니 실제 구현 과정에서 이리저리 박치기 하면서 많이 공부해보자!
[Nest.js] - [Nest.js] 게시판 만들기 토이프로젝트 2일차 회고
'Node.js > Nest.js' 카테고리의 다른 글
[Nest.js] TypeORM을 활용해 공식문서처럼 Repository 만들기 (0) | 2023.07.02 |
---|---|
[Nest.js] 게시판 만들기 토이프로젝트 2일차 회고 (0) | 2023.07.01 |
[Nest.js] Layered Architecture ( 계층화 구조 ) 는 무엇이고 왜 사용할까? (0) | 2023.06.24 |
[Nest.js] Controller 라우팅 에러 (url 동적할당/ 정적할당) (0) | 2023.06.11 |
[Nest.js] Nest.js의 동작 구조 (0) | 2023.06.11 |