특화 프로젝트 1주차 시작 🐥
SSAFY 특화 프로젝트 부트캠프를 마치고 드디어 첫 주차가 시작되었습니다.
팀 내 목표는 1주차 안에 전반적인 설계를 마무리하는 것이었고, 이를 위해 차근차근 일정을 진행했습니다.
8월 26일 (월)
프로젝트 아이디어 구상
드디어 본격적인 프로젝트 아이디어 구상이 시작되었습니다!
저희 팀은 이전 주에 이미 두 가지 주제로 범위를 좁혀놓았기에, 각자 해당 아이디어에 대해 세부적으로 구상하기 시작했습니다. 팀 미팅을 통해 두 아이디어 중 최종 주제를 확정하며 첫 발을 내딛었습니다.
Jira MatterMost GitLab을 연동
효율적인 협업을 위해 Jira, MatterMost, GitLab을 연동했습니다.
(다음 내용은 따로 블로그에 정리할 예정입니다!)
이를 통해 MatterMost에서 Jira 이슈나 GitLab MR에 대한 알림을 실시간으로 받을 수 있어, 팀원 간 빠른 피드백과 협업이 가능해졌습니다.
8월 27일 (화)
프로젝트 아이디어 구체화
주제에 대한 피드백을 받아 하나의 주제를 구체화하였습니다.
공통 때보다는 늦었지만 주제를 굉장히 빠르게 정한 편인 것 같았어요!
Dataset 확보
특히 이번 프로젝트는 빅데이터 추천 시스템과 연관되어 있어 데이터 확보가 중요한 과제였습니다.
이를 위해 AI Hub와 GitHub 등에서 데이터를 확보하였고, 프로젝트 방향성을 구체화하는 데 큰 도움이 되었습니다.
Jira 정리
이전에 작성했던 Jira 관련 블로그 글을 기반으로.......
이번 특화 프로젝트에서는 Jira를 더욱 적극적으로 활용하기로 했습니다.
다양한 기능을 정리하고 팀 협업을 효과적으로 관리할 수 있도록 Jira 규칙을 도입했습니다.
2024.09.10 - [협업] - [Jira] 프로젝트 관리와 Jira 컨벤션 소개
8월 28일 (수)
Code Convention 작성
팀의 코드 스타일 통일성을 위해 Java와 Spring Boot Code Convention을 작성했습니다.
Java Code Convention의 예시로는 다음과 같았습니다.
- Variable
- 영문 / 숫자만 허용한다.
- 한국어 발음대로 표기하지 않는다.
- 패키지 이름은 소문자로 구성한다.
- 클래스 이름에는 명사를 사용한다.
- 인터페이스 이름은 명사/형용사를 사용한다.
- 테스트 클래스는 "Test"로 끝난다.
- 클래스/인터페이스 이름에 대문자 카멜표기법(파스칼 표기법)을 적용한다.
- 메서드 이름에 소문자 카멜표기법을 적용한다.
- 메서드 이름은 동사/전치사로 시작한다. ex) getName()
Spring Boot Code Convention은 팀원들과의 합의 하에 다음과 같이 구성하였습니다.
- 컨트롤러 클래스 내 메서드 명 작성 시 아래와 같은 접두사를 붙인다.
- get___ : 상세 조회
- ex) getUser
- create___ : 등록
- ex) createUser
- update___ : 수정
- ex) updateUser
- delete___ : 삭제
- ex) deleteUser
- get_____List : 목록 조회
- ex) getUserList
- condition(조건 검색)을 통하여 검색
- get___ : 상세 조회
요구사항 명세서 작성
이번에는 공통 프로젝트와 달리 간단하게 노션을 활용하여 요구사항 명세서를 작성했습니다.
(그러니 패스.....)
프로젝트 구조 구상
프로젝트 구조는 MSA를 적용하여 서비스별로 분리했으며, auth, user, problem, recommend, common과 같은 서비스로 나누었습니다.
backend 폴더 내의 구조는 다음과 같이 구성하여서 각 폴더 별로 MSA 서비스 한 개를 구현하도록 하였습니다.
auth, user, problem, recommend, common과 같은 서비스 내부의 구조는 다음과 같이 설계하였습니다.
8월 29일 (목)
기능 명세서 작성
기능 명세서를 간소화하여 빠르게 진행했습니다....!
ERD 설계
또한, ERD 설계는 ErdCloud를 통해 이루어졌습니다. 처음에는 단일 RDB로 데이터베이스를 설계했으나, 이후 컨설턴트님의 피드백을 반영해 MSA 구조에 맞춰 데이터베이스를 MongoDB와 MariaDB로 분리했습니다.
결론적으로는 다음과 같은 RDB와 NoSQL을 모두 활용한 구조로 구성하게 되었습니다.
MariaDB에는 회원 같은 정형 데이터를 저장하고, MongoDB에는 문제와 같은 비정형 데이터를 저장해 각 데이터의 특성에 맞는 최적화된 데이터베이스 구성을 완료했습니다.
8월 30일 (금)
API 설계
1주차 목표였던 설계를 마무리하기 위해 API 설계 작업을 진행했습니다. 기능, HTTP 메서드, API Path, 담당자 등을 노션을 통해 체계적으로 정리하였고, 이를 바탕으로 팀원 간 역할을 명확히 분담하여 설계를 완료했습니다.
이번 주는 설계 작업을 통해 프로젝트의 방향성을 잡았고,
다음 주부터는 본격적인 개발에 돌입할 예정입니다. 기대해 주세요!
'SSAFY' 카테고리의 다른 글
[SSAFY] 특화 프로젝트 회고 (0) | 2024.11.23 |
---|---|
[SSAFY] 특화 프로젝트 2주차 기록📝 (0) | 2024.10.25 |
[SSAFY] 특화 프로젝트 부트캠프 기록📝 (3) | 2024.09.10 |
[SSAFY] 공통 프로젝트 회고 (10) | 2024.09.02 |
[SSAFY] 1학기 회고 (0) | 2024.07.01 |