[BackOffice Project] 프로젝트 시작

JUNHYUK CHANG·2024년 1월 22일
1

TIL

목록 보기
8/33

이번 프로젝트는 BackOffice 프로젝트 !

인증/인가 를 중점으로 일반 유저와 관리자의 역할을 구분하고 처리할 수 있도록 기능을 구현해보는 프로젝트이다.

우리 팀은 커뮤니티 사이트에서 관리자의 인가를 받아 게시판을 생성하고, 사용자들이 게시글과 댓글을 남길 수 있는 페이지를 기획하고 구현해보기로 하였다.

ERD

ERD를 구성하며 고민했던 부분은 FOLLOW 와 LIKED 의 구현 방법이었다.
우선 FOLLOW 기능을 유저에게 구독중인 BOARD ID 리스트를 갖게 하고 필요할 때 불러오도록 하는 것을 떠올렸었다. 하지만 SQL 에 값을 저장할 때 배열형으로 저장할 수 없기 때문에 다른 방법을 고민해야 했다.

두 번째 아이디어는 BOARD ID 를 문자열로 바꿔 추가해보는 것이었다. 구현은 어렵지 않을 것 같지만 쿼리에서 해당 BOARD 를 팔로우 하는 유저를 리스트업 하는 과정이 너무 길어져 적절하지 않아보였다.

세 번째 아이디어는 차라리 FOLLOW 테이블을 따로 만들어서 관리하는 것! FOLLOW 테이블에 USER ID 와 BOARD ID 를 기록하는 것 이었다. 이 방법이라면 유저별 FOLLOW 목록을 확인하기도 편하고, BOARD 별 USER 목록을 확인하기도 편할 것으로 판단되었다.

같은 방법으로 LIKED 도 별도의 테이블을 만들어 관리하기로 하였다.

아래는 이를 토대로 한 API 명세서 이다.

API 명세

역할 분담은 객체별 CRUD 와 FOLLOW & LIKED 구현, 내가 맡은 SpringSecurity 구현으로 나누었다. 최근 공부해본 SpringSecurity 를 프로젝트에 잘 적응해 훌륭한 결과물을 만들어보고 싶다.

  • 시간이 된다면 AOP 기능으로 검증과정을 옮겨보는 것도 도전해보기로 !

1개의 댓글

comment-user-thumbnail
2024년 1월 23일

우리 팀장님 최고! 멋있어요!

답글 달기