How To Introduce a New API Quickly Using Quarkus and ChatGPT
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상자: Java 백엔드 개발자, 클라우드 기반 애플리케이션 개발자
- 난이도: 중급 이상 (Maven, Quarkus CLI, OpenAPI 경험 필요)
핵심 요약
- Quarkus CLI 사용:
quarkus create app
명령어로 프로젝트 생성 (3.19.4
버전 사용) - OpenAPI 스펙 통합:
resources/META-INF/openapi.yaml
에 정의하고application.properties
에서 스캔 비활성화(mp.openapi.scan.disable=true
) - Heroku 배포:
Procfile
과system.properties
(java.runtime.version=17
) 설정으로 클라우드 배포 지원
섹션별 세부 요약
1. Quarkus 프로젝트 생성
brew install quarkusio/tap/quarkus
명령어로 CLI 설치quarkus create app com.example.quotes:quotes-quarkus
명령어로 프로젝트 생성- 생성된 디렉토리 구조: Maven 기반 (
pom.xml
,mvnw
,src
폴더 포함)
2. OpenAPI 스펙 및 설정
- 기존
openapi.yaml
파일을resources/META-INF
에 복사 application.properties
파일 생성:quarkus.banner.path=banner.txt
quarkus.http.port=8080
mp.openapi.scan.disable=true
3. 애플리케이션 구조 구현
QuotesRepository
클래스:@ApplicationScoped
애너테이션 사용,List
데이터 저장QuotesService
클래스:QuotesRepository
를 의존성 주입(@RequiredArgsConstructor
)하여 데이터 처리QuotesApiImpl
클래스: REST API 엔드포인트 구현 (getAllQuotes
,getQuoteById
,getRandomQuote
)
4. 테스트 및 검증
QuotesApiResourceTest
:QuarkusTest
어노테이션으로 단위 테스트 작성 (GET/quotes
,/quotes/1
,/quotes/random
요청 검증)QuotesApiResourceIT
:QuarkusIntegrationTest
어노테이션으로 통합 테스트 실행
5. 로컬 실행 및 클라우드 배포
quarkus dev
명령어로 로컬 서버 실행 (포트8080
사용)- Heroku 배포:
application.properties
에서quarkus.http.port=${PORT:8080}
설정system.properties
파일 생성:java.runtime.version=17
Procfile
생성:web: java $JAVA_OPTS -jar target/quarkus-app/quarkus-run.jar
결론
- 핵심 팁: Quarkus CLI와 OpenAPI 스펙을 활용해 빠른 API 개발 가능, Heroku 배포 시
Procfile
과system.properties
설정 필수.@ApplicationScoped
및@RequiredArgsConstructor
는 Quarkus의 DI 패턴을 효과적으로 활용하는 방법.