Skip to content

popcifox/petclinic

 
 

Repository files navigation

☁️ 9oormthon DEEP DIVE IN Goorm (버깅 / 디버깅 프로젝트) ☁️

(버깅 / 디버깅 프로젝트)

프로젝트 소개

이 프로젝트는 Spring PetClinic 프로젝트를 리팩토링하고 개선하는 것을 목표로 합니다.

  • 리팩토링: 기존 프로젝트는 Controller를 사용하고 있었으나, 이를 RestController로 변경하여 RESTful 방식으로 API를 제공하도록 개선.
  • 기능 확장: 기본적인 기능 외에 새로운 기능을 추가하여 프로젝트의 확장성을 높임.

주요 문서

0. 목차

  1. 팀원 소개
  2. 사용 기술
  3. 디렉토리 구조
  4. 브랜치 전략
  5. 개선 사항

🏃 1. 팀원 소개

역할 이름 GitHub 주요 담당
팀장 이지수 GitHub 프로젝트 관리 및 일정 조율, 예외처리 및 Vet API 개발 및 테스트
팀원 박정현 GitHub Owner API, Appointment API, Review API 개발 및 테스트
팀원 송준환 GitHub Visit API, History API 개발 및 테스트
팀원 정태민 GitHub Pet API 개발 및 테스트
팀원 박세희 GitHub Review API 개발 및 테스트

📌 2. 사용 기술

  • Java 17: 최신 장기 지원(LTS) 버전으로, 향상된 성능과 새로운 기능 활용.
  • Spring Boot 3.4.0: 애플리케이션 개발을 간소화하기 위한 프레임워크로, 데이터베이스와의 통합, RESTful API 설계에 활용.
  • Spring Security: 애플리케이션 보안을 위한 인증 및 권한 관리.
  • JPA (Java Persistence API): ORM 기술로, 데이터베이스와의 상호작용을 간단하게 처리.
  • H2 Database: 로컬 개발 및 테스트를 위한 인메모리 데이터베이스.
  • JUnit 5: 테스트 자동화를 위한 프레임워크.
  • Swagger UI: API 문서화 및 테스트를 위한 도구.
  • Gradle 7.6.1: 프로젝트 빌드 및 의존성 관리를 위한 도구.

🗂️ 3. 디렉토리 구조

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
└── ...

🌲 4. 브랜치 전략

  • main: 배포를 위한 최상위 브랜치
  • develop: 다음 배포 버전을 개발하는 브랜치 (main 브랜치에서 생성)
  • feature/: 기능 개발을 위한 브랜치 (develop 브랜치에서 생성)
  • hotfix/: 배포 버전에서 발생한 버그를 수정하는 브랜치 (main 브랜치에서 생성)

병합 기준

  • hotfix -> main: 모든 버그를 수정하여 배포에 문제가 되지 않을 경우
  • develop -> main: 모든 기능 개발 및 버그 수정이 완료되었을 경우
  • feature -> develop: 개발 기능이 완료되었을 경우

PR 규칙

  1. 기능 개발, 버그 수정 등 모든 개발 완료 시 PR 요청
  2. PR 요청 시 작업한 내용 명시
  3. 관련된 이슈 태그 추가
  4. 리뷰어 설정 및 승인 후 병합
  5. 병합 후 관련된 브랜치 삭제

🚀 5. 개선 사항

  • 추가예정!!!!
  1. API 속도 개선:

    • 데이터베이스 쿼리 최적화 및 캐싱 도입으로 평균 응답 시간을 40% 단축.
  2. 테스트 커버리지 확대:

    • 단위 테스트와 통합 테스트 추가 작성으로 커버리지 85% 달성.
  3. CI/CD 파이프라인 구축:


About

☁️ 9oormthon DEEP DIVE IN Goorm (버깅 / 디버깅 프로젝트) ☁️

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 99.8%
  • Dockerfile 0.2%