이 프로젝트는 Spring PetClinic 프로젝트를 리팩토링하고 개선하는 것을 목표로 합니다.
- 리팩토링: 기존 프로젝트는
Controller를 사용하고 있었으나, 이를RestController로 변경하여 RESTful 방식으로 API를 제공하도록 개선. - 기능 확장: 기본적인 기능 외에 새로운 기능을 추가하여 프로젝트의 확장성을 높임.
| 역할 | 이름 | GitHub | 주요 담당 |
|---|---|---|---|
| 팀장 | 이지수 | GitHub | 프로젝트 관리 및 일정 조율, 예외처리 및 Vet API 개발 및 테스트 |
| 팀원 | 박정현 | GitHub | Owner API, Appointment API, Review API 개발 및 테스트 |
| 팀원 | 송준환 | GitHub | Visit API, History API 개발 및 테스트 |
| 팀원 | 정태민 | GitHub | Pet API 개발 및 테스트 |
| 팀원 | 박세희 | GitHub | Review API 개발 및 테스트 |
- Java 17: 최신 장기 지원(LTS) 버전으로, 향상된 성능과 새로운 기능 활용
- Spring Boot 3.4.0: 애플리케이션 개발을 간소화하기 위한 프레임워크로 데이터베이스와의 통합, RESTful API 설계에 활용
- Spring Security: 애플리케이션 보안을 위한 인증 및 권한 관리
- JPA (Java Persistence API): 데이터베이스와의 상호작용을 간단하게 처리
- MySQL: 관계형 데이터베이스 관리 시스템(RDBMS)으로 데이터 저장 및 관리
- JUnit 5: 테스트 자동화를 위한 프레임워크
- Mockito: 단위 테스트에서 객체의 동작을 모킹(mocking)하기 위한 라이브러리
- Swagger UI: API 문서화 및 테스트를 위한 도구
- Gradle: 프로젝트 빌드 및 의존성 관리를 위한 도구
- SpringBootTest: Spring Boot 애플리케이션의 통합 테스트를 지원
- Notion: 프로젝트 관리와 협업 도구로 사용
project-root/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── org/springframework/samples/petclinic/
│ │ │ │ ├── common/
│ │ │ │ │ ├── error/
│ │ │ │ │ ├── exception/
│ │ │ │ │ └── result/
│ │ │ │ ├── config/
│ │ │ │ │ ├── security/
│ │ │ │ │ └── web/
│ │ │ │ ├── domain/
│ │ │ │ │ ├── appointment/
│ │ │ │ │ ├── history/
│ │ │ │ │ ├── owner/
│ │ │ │ │ ├── pet/
│ │ │ │ │ ├── review/
│ │ │ │ │ ├── token/
│ │ │ │ │ ├── vet/
│ │ │ │ │ └── visit/
│ │ │ │ ├── handler/
│ │ │ │ │ └── GlobalExceptionHandler.java
│ │ │ │ ├── interceptor/
│ │ │ │ │ └── AuthorizationInterceptor.java
│ │ │ │ ├── model/
│ │ │ │ │ ├── BaseEntity.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── system/
│ │ │ │ │ ├── CacheConfiguration.java
│ │ │ │ │ ├── CrashController.java
│ │ │ │ │ └── WelcomeController.java
│ │ │ │ ├── PetClinicApplication.java
│ │ │ │ └── PetClinicRuntimeHints.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
├── build.gradle
├── README.md
└── ...
- main: 배포를 위한 최상위 브랜치
- develop: 다음 배포 버전을 개발하는 브랜치 (main 브랜치에서 생성)
- feature/: 기능 개발을 위한 브랜치 (develop 브랜치에서 생성)
- hotfix/: 배포 버전에서 발생한 버그를 수정하는 브랜치 (main 브랜치에서 생성)
- hotfix -> main: 모든 버그를 수정하여 배포에 문제가 되지 않을 경우
- develop -> main: 모든 기능 개발 및 버그 수정이 완료되었을 경우
- feature -> develop: 개발 기능이 완료되었을 경우
- 기능 개발, 버그 수정 등 모든 개발 완료 시 PR 요청
- PR 요청 시 작업한 내용 명시
- 관련된 이슈 태그 추가
- 리뷰어 설정 및 승인 후 병합
- 병합 후 관련된 브랜치 삭제
-
데이터베이스 수정
-
RESTful API로 변경
-
보안 강화
-
CI/CD 파이프라인 구축