프로젝트 소개
저희 Every-Board팀은 개발자에게 있어서 가장 중요하면서도 기본기를 잘 보여줄 수 있는 프로젝트를 목표하여 "기본적이지만 잘 만든 게시판"을 주제로 "Every-Board(모두의 게시판: 프로젝트 네임)"을 제작하게 되었습니다.
커뮤니티형 게시판
게시판은 다양한 방식으로 구현할 수 있는데요, 초기에 저희 팀에서 고민한 UI는 다음과 같습니다.
- 카카오 TALK과 같은 스타일의 UI
- 장점 - 모바일 친화적인 UI
- 단점 - PC환경에서 적합한 UI가 아님
- 플랫폼 스타일의 UI
- 장점 - 테마가 정해져 있어 기획의도가 명확함
- 단점 - 행사 테마를 관리자가 주기적으로 업로드 해야하며, 관리자가 부분적으로 개입해야하는 요소가 있음 (애자일에 불리함)
- 커뮤니티 스타일의 UI
- 장점 - 구조가 간단함 (애자일에 유리함)
- 단점 - 레거시한 프로젝트가 될 여지가 있음
1)번의 경우 PC에 불친절한 UI라는 명확한 단점이 있어 제외되었으나 2)번과 3)번의 경우 장단점이 뚜렸하지 않아 토의를 진행하여 최종적으로 커뮤니티 스타일의 UI를 사용하기로 결정하였습니다.
기술스택
기술스택은 JAVA와 Spring을 메인으로 JPA를 활용하였으며, DB는 MySQL을 활용하였습니다. 또한 Git Actions를 활용한 CICD를 구축하는 것을 목표로 프로젝트를 시작하였습니다. 자세한 내용은 기술 설명이라는 주제로 후술하겠습니다.
ERD 설계 및 역할 분담
1. USERS
유저 정보를 저장할 테이블 입니다.
- USER_ROLES: ADMIN과 USER 역할을 저장합니다.
- USER_IMAGE: USER PROFILE 이미지를 저장합니다.
2. CONTENTS
게시글 정보를 저장할 테이블 입니다.
- CONTENT_HEART: 게시글 좋아요 정보를 저장합니다.
- CONTENT_IMAGE: 게시글 이미지를 저장합니다.
- SCRAP: 특정 USER가 스크랩한 게시글을 저장합니다.
3. COMMENT
댓글 정보를 저장할 테이블 입니다.
- COMMENT_HEART: 댓글 좋아요 정보를 저장합니다.
- REPLIES: 대댓글 정보를 저장하는 테이블 입니다.
- REPLY_HEART: 대댓글 좋아요 정보를 저장합니다.
위 역할에 따라 설계 단계에서 3명의 백엔드 인원은 각각 USER, CONTENT, COMMENT를 담당하여 개발할 계획이었다.
하지만, 나를 제외한 나머지 두분이 프로젝트 시작 직후에 바로 취업하셔서 대부분을 혼자 구현하게 되었습니다.
ERD에 관련한 세부적인 내용도 ERD 설명이라는 주제로 후술하겠습니다.
2023.07.26 - [Project/모두의 게시판] - [ Project ] 모두의 게시판 ERD 설명
회고
프로젝트를 두번째 진행하게되니 내가 활용하는 기술에 대해서 좀 더 이해도가 높아졌다. 이전 프로젝트를 개발할 때는 이미 작성된 코드를 그저 가져와서 서비스가 되게끔 하는대 그쳤던 반면에, 이번 프로젝트를 진행하며, 내가 생각한 설계와 사용하는 기술이 어떻게 활용되며 왜 이 기술을 고려하게 되었는지를 고민하며 개발할 수 있었다.
다만, 새로운 기술을 적용할 때, 코드를 무턱대고 가져와서 될때까지 대조해보는 것보다. 코드를 가져올 때 래퍼런스들을 찾아보며 기술에 대한 이해도를 높이고 코드를 적용하게 된다면 더 좋은 개발자가 될 수 있을 것이라고 생각한다.
추후에 진행하게 될 사이드 프로젝트에서는 기능이 조금 더 복잡하게 설계되어있는 키오스크나 금융 관련된 프로젝트를 진행해보는 것도 좋을 것 같다.
'Project > 모두의 게시판' 카테고리의 다른 글
[ Project ] 모두의 게시판 ERD 설명 (0) | 2023.07.26 |
---|