AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

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 배포: Procfilesystem.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 배포 시 Procfilesystem.properties 설정 필수. @ApplicationScoped@RequiredArgsConstructor는 Quarkus의 DI 패턴을 효과적으로 활용하는 방법.