패스트캠퍼스X야놀자 백엔드 부트캠프_토이 프로젝트(2차) 후기
이번 프로젝트를 통해 1:N 계층 구조에 대한 경험을 쌓을 수 있었다.
여행 : 여정 = 1: N
이전에 진행했던 토이프로젝트 1차에 이어서 2차를 진행했다.
이전 1차가 순수 자바로 진행했던 프로젝트였다면, 이번에는 스프링으로 변경하여 가벼운 CRUD를 구현하는 프로젝트였다.
1차 프로젝트 리뷰는 아래 링크를 남겼다.
패스트캠퍼스X야놀자 백엔드 부트캠프_토이 프로젝트(1차) 후기
이번 토이프로젝트를 진행하면서 잘했다고 생각하는 부분도 있고, 부족했다고 생각하는 부분도 있기에, 회고하는 차원에서 블로그 글을 남겨보고자 한다. 목적 : 부족한 부분에 대한 정확한 인
hyem5019.tistory.com
무튼 2차 프로젝트에서는 1차 때 구현했던 여행 여정에 대한 CRUD + 예외처리 등을 진행했다.
🖥 프로젝트 개요
> 1. 프로젝트 주제 : 여행 여정을 기록과 관리하는 SNS 서비스 2단계
> 2. 프로젝트 기간 : 10월 23일(월) ~ 10월 27일(금) + 주말
> 3. 주요 목표 : Spring Boot, DB 설계, DB 트랜잭션, RESTful API 설계
⚙️ Project Settings
> 1. Java 버전 : 17
> 2. 빌드 & 빌드 도구 : Gradle
> 3. Git 브랜치 전략 : Feature Branch → Develop Branch → Main Branch
🛠️ Tech Stacks
> 1. Framework : SpringBoot
> 2. Database 및 ORM 설정 : MySQL, JPA
> 3. Database 배포 : Amazon RDS
> 4. API 문서화 설정 : Swagger
> 5. API 요청 테스트 도구 : Postman
📌 사전 공통 협의 사항
# 컨벤션
> 1. 코드 컨벤션 : Google Java 컨벤션 적용
https://programmer-ririhan.tistory.com/337
> 2. 커밋 컨벤션 : 공통된 커밋 템플릿 사용
https://kdjun97.github.io/git-github/commit-convention/
> 3. PR 컨벤션 : 공통된 PR 템플릿 사용
https://github.com/FC-BE-ToyProject-Team3/KDT_Y_BE_Toy_Project2/blob/main/.github/pull_request_template.md
# 개발
> 1. RFP 달성목표에는 '일정 정보에 위치 정보를 확인 및 추가하는 공통 유틸리티 클래스를 제공'하라고 명시되어 있지만, 각 Domain(Trip, Itinerary)에 이미 여정 별 위치정보(Place name)를 확인 및 추가할 수 있는 기능이 구현되어 있기 때문에 공통 유틸리티 클래스는 정의하지 않음
→ 여행 조회 기능을 통해 각 여행에 속해있는 여정의 위치정보(Place name)를 조회할 수 있음
→ 여정 수정 기능을 통해 각 여정 별 ID를 식별자로 사용하여 특정 여정에 대한 위치정보(Place name)를 수정할 수 있음
> 2. 각 Domain 별 Entity 클래스에 정의되어 있는 Setter는 수정 기능시에만 사용한다.
# 관리
> 1. 깃허브 프로젝트를 활용하여 작업 공유 및 진행상황 파악
예외처리 부분이 꽤 어려웠었는데, 아래 도표로 작성하여 예외처리를 진행했다.
프로젝트에 대한 자세한 설명은 아래 깃허브 링크를 참고하길 바란다.
https://github.com/FC-BE-ToyProject-Team3/KDT_Y_BE_Toy_Project2