멀티모듈 기반의 인사 관리 시스템으로, Kotlin + Spring Boot를 사용하여 구현되었습니다.
- Language: Kotlin 1.9.24
- Framework: Spring Boot 3.3.5
- Build Tool: Gradle (Kotlin DSL)
- Database: MySQL 8.0
- ORM: JPA + QueryDSL
- Java Version: 21
- Containerization: Docker, Docker Compose
- Docker
- Docker Compose
# 1. 컨테이너 빌드 및 시작
docker-compose up --build
# 2. 백그라운드 실행
docker-compose up -d --build
# 3. 로그 확인
docker-compose logs -f
# 4. 특정 서비스 로그만 확인
docker-compose logs -f app
docker-compose logs -f mysql
# 5. 컨테이너 중지
docker-compose down
# 6. 볼륨까지 삭제 (데이터 초기화)
docker-compose down -v-
MySQL 컨테이너:
- 포트: 3306
- 데이터베이스: hr
- 사용자: hr_user / hr_password
- 데이터 볼륨: mysql_data (영속성 보장)
-
애플리케이션 컨테이너:
- 포트: 8080
- MySQL 컨테이너가 정상 동작 확인 후 시작
- JPA DDL 설정: update (자동 테이블 생성/수정)
애플리케이션이 정상적으로 시작되면 다음 주소로 접근할 수 있습니다:
http://localhost:8080
로컬에서 직접 실행하려면 다음 환경 변수를 설정해야 합니다:
export DB_URL="jdbc:mysql://localhost:3306/hr?useSSL=false&serverTimezone=Asia/Seoul"
export DB_USERNAME="hr_user"
export DB_PASSWORD="hr_password"- [HR-01] 초기 멀티모듈 설정
- [HR-02] 로컬 DB 연결 테스트
- [HR-03] QueryDSL 적용하기
- [HR-04] 특정 사원 이력 정보, 사원정보 업데이트, 부서 및 위치 정보 조회, 특정 부서 급여 인상 등 기능 구현하기
- [HR-05] local, prod 설정 분기 및 외부 api 연동 시작(공공데이터포탈)
- [HR-06] Docker 컨테이너화 및 MySQL 통합