Development/BootCamp

패스트캠퍼스X야놀자 백엔드 부트캠프_토이 프로젝트(2차) 후기

Klay_J 2023. 11. 6. 10:11

이번 프로젝트를 통해 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