- 언어: Java 17
- 데이터베이스: MSSQL
- 주요 라이브러리:
- JPA
- Mybatis
- Spring Security
- Swagger
- JUnit
- 설계 기법:
- TDD (Test-Driven Development)
- DDD (Domain-Driven Design)
- Layered Architecture
- Jira: 프로젝트 관리 및 이슈 추적
- GitHub: 소스 코드 관리 및 협업
- Gradle 기반 멀티 모듈 구조로 코드 레벨을 명확히 구분하여 가독성과 유지보수성을 향상시킴.
- 각 모듈은 특정 역할을 담당하며, 공통 모듈을 통해 모듈 간 의존성을 관리:
- api 모듈: API, DTO, Security
- admin 모듈: ADMIN 관련 API, DTO, Security
- common 모듈: DB 및 도메인 관련 코드 (mybatis, JPA 등)
- integration 모듈: 슬랙 알림, 이메일, 푸시 알림 등 통합 기능 관리
- TDD 방식을 적용하여 API 테스트를 코드상에서 실행 가능.
- 테스트 코드를 통해 로직의 이해도를 높이고, 코드 품질을 보장.
- Swagger 문서화를 자동화하여 API 문서 관리의 효율성을 높임.
- JPA를 통해 간단한 CRUD 작업을 빠르게 처리하며, 복잡한 조회 로직은 MyBatis로 처리하는 하이브리드 방식을 도입.
- JPA는 단순 로직에 적합하며, 이를 활용해 개발 속도를 극대화함.
- MyBatis는 복잡한 쿼리와 비즈니스 로직에 유연성을 제공함.
- Pull Request → 리뷰 → Merge 전략을 도입하여 팀원 간의 협업을 강화.
- PR을 통해 동료의 동의를 얻은 코드만 Merge하여 코드 품질을 보장.
- 이 프로세스를 통해 프로젝트의 전체적인 이해도를 높이고, 팀원의 부재 시에도 다른 팀원이 작업을 대체할 수 있는 환경을 조성.
- GitHub Actions를 활용한 자동 배포 시스템을 구축하여 수동 배포 과정을 개선.
- 자동 배포를 통해 리뷰와 다른 작업을 동시에 처리할 수 있어 업무 효율성을 극대화.
- Discord 와 연동하여 실시간 배포 알림을 받아 배포 상태를 신속하게 파악 가능.