목차
패스트캠퍼스 : 백엔드 개발 부트캠프
ToyProject 2
- 1단계, 2단계, 3단계로 진행
- 최종 구현 목표는 '여행과 여정을 기록하고 관리하는 SNS 서비스
2단계
- 달성목표 : Spring Legacy 기반 프로젝트, DB 설계, DB 트랜잭션, RESTful API 설계
[프로젝트 정의]
회원은 여러 여행 기록을 저장할 수 있습니다.- 여행은 여러 여정을 가질 수 있습니다.
- 여정 정보는 이동정보, 체류정보, 숙박정보 등의 종류를 포함할 수 있습니다.
- 회원이 가진 전체 여행 리스트를 조회할 수 있습니다.
- 전체 여행 리스트는 여행 정보와 각 여행에 포함된 여정 이름들을 같이 보여줍니다.
- 각 여행의 상세 여정 정보는 개별 여행 조회를 통해 수행합니다.
- 회원은 개별 여행 정보를 조회할 수 있습니다.
- 특정 여행에 대한 모든 여정 리스트를 보여줍니다.
- 여정의 상세 정보를 모두 포함합니다.
- 여행 정보 및 여행 정보의 여정 목록을 데이터베이스에 저장합니다.
- 일정 정보 중 일시에 대한 공통 유틸리티 클래스로 생성하여 활용합니다. 일정 정보에 위치 정보를 추가하고, 일정 조회 시 함께 출력하도록 구현합니다.
- 모든 데이터는 JSON으로 반환합니다.
[프로젝트 요구사항]
- 개별 여행은 여러 여정 정보로 구성됩니다. (여행 : 여정 = 1 : n)
- 여행 정보에는 다음 정보가 필수 항목으로 포함되어야 합니다.
- [여행]의 이름, 일정(출발 날짜, 도착 날짜), 국내/외 여부
- 여정 정보에는 다음 항목으로 분류됩니다.
- 이동(이동 수단, 출발지, 도착지, 출발 일시, 도착 일시)
- 숙박(숙소명, 체크인 일시, 체크아웃 일시)
- 체류(장소명, 도착 일시, 출발 일시)
[개발환경]
- Language : Java
- Build system : Gradle-Groovy
- JDK : 17.0.2
- Server : Apache Tomcat 9.0.82
- DataBase : MySQL
[데이터베이스 설계]
user | |||||
컬럼명 | 데이터 타입 | 조건 | 설명 | 자바 변수명 | 자바 타입 |
id | BIGINT(32) | PK, AI | 사용자 아이디 | id | Long |
name | VARCHAR(20) | NOT NULL | 사용자 이름 | name | String |
VARCHAR(50) | NOT NULL | 사용자 이메일 | String | ||
password | VARCHAR(20) | NOT NULL | 사용자 비밀번호 | password | String |
registered_at | DATETIME | NOT NULL | 등록일 | registeredAt | LocalDateTime |
[API 설계]
user (/api/user) | ||||
Method | URL | return | page | |
사용자 전체 조회 | GET | / | List<UserResponse> | |
사용자 등록 | POST | /register | ||
사용자 상세 조회 | GET | /{userId} |
'프로그래밍 > Project' 카테고리의 다른 글
[Spring] ToyProject 2단계(3) - 정리 (1) | 2024.02.04 |
---|---|
[Spring] ToyProject 2단계(2) - 역할 분배, 기본 구조 (0) | 2024.01.29 |
[Project01] MiniBoard(3) - Custom Annotation 생성, 사용자 Model 생성 (0) | 2024.01.25 |
[Project01] MiniBoard(2) - ObjectMapper, SwaggerUI, Filter 설정 (0) | 2024.01.25 |
[Project01] MiniBoard(1) - 프로젝트 생성, 데이터베이스 연결 (0) | 2024.01.23 |