공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다.
이번 시간에는 plain.jar가 생성되지 않도록 build.gradle을 수정했다.
1. plain.jar 파일 생성 방지 설정
build.gradle 파일에 다음 코드를 추가했다.
/*
'-plain.jar' 파일은 'jar' 파일과는 다르게
'dependencies'를 제외한 [classes / resources]만을 포함하고 있어
`java -jar` 옵션으로 jar 파일을 실행시킬 수 없다.
*/
jar {
enabled = false
}
- 이를 통해 plain.jar 파일 생성이 방지되고, 정상적인 jar 파일만 생성되는 것을 확인할 수 있었다.
2. 코드 푸시 및 서버 동작 확인
수정된 build.gradle 파일을 푸시한 후, 서버에서 어떻게 동작하는지 확인해 보았다.
- 정상적으로 8080 포트에서 서버가 실행 중인 것을 확인할 수 있었다.
- error.log 파일을 확인한 결과, 오류가 발생하지 않았음을 알 수 있다.
간단한 컨트롤러 작성 및 테스트
추가로, 아래와 같은 간단한 컨트롤러를 작성한 후 푸시 후 서버에서 정상적으로 애플리케이션이 배포 및 실행 되는지 확인한다.
package dev.be.githubaction.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoController {
@GetMapping("/demo")
public String demo() {
return "demo";
}
}
서버 로그 및 배포 상태 확인
- 서버 로그를 통해 어플리케이션이 정상적으로 실행되고 있음을 확인했다.
- curl localhost:8080/demo 명령어를 통해 "demo"라는 응답을 받는 것을 확인하여, 실제 서버에서 어플리케이션이 정상적으로 작동하고 있음을 확인했다.
CI/CD 파이프라인 구축의 중요성
이로써, AWS의 다양한 서비스와 GitHub Actions를 이용해 CI/CD 파이프라인을 완성하였다.
이렇게 한 번 구축한 인프라를 바탕으로, 향후 다른 프로젝트에서도 API 개발에만 집중할 수 있게 되었다.
실제 회사에서는 GitHub Actions뿐만 아니라 Jenkins, GitLab 등의 도구를 이용해 CI/CD를 구축하는 경우도 많다.
이번 작업을 통해 특히 build.gradle에서 jar { enabled = false }와 같은 설정이 어떤 의미를 가지는지, 그것이 배포 프로세스에 어떤 영향을 미치는지 깊이 이해하는 계기가 되었다.
이번 작업을 통해, 더 복잡한 프로젝트에서도 안정적이고 효율적인 배포 환경을 구축할 수 있는 기반을 마련했다. CI/CD 파이프라인을 한 번 완성해 놓으면, 이후에는 코드 작성과 API 개발에만 집중할 수 있어 개발 효율이 크게 향상될 것이다.
'BackEnd > Project' 카테고리의 다른 글
[PharmNav] Ch02. 요구사항 분석 (0) | 2024.09.01 |
---|---|
[RealPJ] Ch04. Github Action을 이용하여 빌드시 동적으로 변숫값 주입하기 (0) | 2024.09.01 |
[RealPJ] Ch04. AWS - Project 개발 고도화 (4) | 2024.09.01 |
[RealPJ] Ch04. AWS - appspec.yaml 작성 (0) | 2024.09.01 |
[RealPJ] Ch04. Github Action - deploy.yaml 작성 (0) | 2024.09.01 |