일정 관리 애플리케이션
(기존의 프로젝트를 fork해서 작업해야 했으나, Kotlin을 사용하고 싶어 처음부터 Kotlin으로 프로젝트를 시작했습니다)
KotlinGradleSpringBootSpring SecurityJPA,QueryDSLMySQL,MariaDB,H2JWTEC2RDSRedisDockerNginxGithub Action
- 1.1 코드 개선 퀴즈 - @Transactional의 이해✅
- 1.2 코드 추가 퀴즈 - JWT의 이해 ✅
- 1.3 코드 개선 퀴즈 - AOP의 이해 ✅
- 1.4 테스트 코드 퀴즈 - 컨트롤러 테스트의 이해 ✅
- 1.5 코드 개선 퀴즈 - JPA의 이해 ✅
- 2.6 JPA CasCade ✅
- 2.7 N+1 ✅
- 2.8 QueryDSL ✅
- 2.9 Spring Security ✅
- 3.10
QueryDSL을 사용하여 검색기능 만들기 ✅ - 3.11 Transaction 심화 - 로그 기능 만들기 ✅
- 3.12 AWS 활용 마스터 ✅
- 12-1 EC2 ✅
- 12-2 RDS ✅
- 12-3 S3 ✅
- 3.13 대용량 데이터 처리
- 3.14
Kotlin적용하기 ✅
EC2 콘솔 (EC2 Health Check)
https://documenter.getpostman.com/view/14200056/2sAYQggnpF
현재 프로젝트는 깃허브 액션에서 제공하는 워크플로우 기능을 이용해서 CI/CD를 구현했다. 전체적인 워크플로우는 다음과 같다.
- 깃허브 레포지토리로 코드가 푸시되면, 우선 테스트가 실행된다.
- 테스트가 성공적으로 완료되면 배포 워크플로우가 실행된다.
- 깃허브 액션이 제공하는 컴퓨팅 자원을 활용해 프로젝트를 빌드한다.
- 빌드가 성공적으로 완료되면, 미리 작성한 도커 파일을 이용해, 스프링 애플리케이션과 프록시 서버 역할을 할 Nginx를 깃허브 액션이 제공하는 컴퓨팅 환경에서 관련 이미지를 생성한다.
- 생성된 두 개의 이미지(Spring-Application, Nginx)를 Amazon ECR을 이용해 EC2에 이미지 Push.
- PUSH한 이미지를 실행하는 명령어를 담은
docker-compose.yaml파일 EC2에 전송 - 깃허브 시크릿 variable에 저장해놓은 EC2 접근 키를 이용해 EC2에 접근한 뒤,
docker-compose.yaml을 실행하여 두 개의 컨테이너 실행.






