Skip to content

[CHORE] Kotlin 전환을 위한 빌드 환경 구성 #609

Description

@GiJungPark

Description

작업 배경

WSS-Server의 Java 코드를 단계적으로 Kotlin으로 전환하려면 기존 Java 코드와 Kotlin 코드가 함께 컴파일되고, Spring 및 JPA 프록시와 QueryDSL 코드 생성이 Kotlin에서도 정상 동작하는 빌드 기반이 먼저 필요하다.

현재 상태

  • 프로젝트는 Java 17과 Groovy DSL 기반 Gradle 빌드를 사용한다.
  • Kotlin 플러그인과 Kotlin 런타임 의존성이 설정되어 있지 않다.
  • QueryDSL Q 타입은 Java annotation processor로만 생성한다.

목표 상태

  • Java 17을 기준으로 Java/Kotlin 소스를 함께 컴파일할 수 있다.
  • Kotlin으로 작성한 Spring Bean과 JPA 엔티티에 필요한 컴파일러 플러그인이 적용된다.
  • Java 및 Kotlin 소스에서 사용하는 QueryDSL Q 타입이 빌드 시 정상 생성된다.
  • Kotlin 테스트를 작성하고 JUnit Platform에서 실행할 수 있다.

작업 범위

  • Kotlin JVM, Spring, JPA 및 kapt Gradle 플러그인과 버전 설정 추가
  • Kotlin reflection, Jackson Kotlin module 및 Kotlin 테스트 의존성 추가
  • Java 17과 일치하도록 Kotlin JVM toolchain과 컴파일 옵션 설정
  • Kotlin 소스에 대한 QueryDSL annotation processing 설정
  • Kotlin 빌드 설정이 실제로 적용되는지 확인하는 최소 테스트 코드 추가
  • 기존 Java 빌드 및 테스트와의 호환성 확인

제외 범위

  • 기존 Java 프로덕션 코드의 Kotlin 변환
  • 패키지 구조 또는 애플리케이션 아키텍처 변경
  • API, DB 스키마, 인증·인가 및 배포 설정 변경
  • Kotlin 코딩 컨벤션의 전면 정의와 정적 분석 도구 도입

To-Do

  • Kotlin JVM, Spring, JPA, kapt 플러그인과 버전을 Gradle 설정에 추가한다.
  • Kotlin 런타임, Jackson Kotlin module 및 테스트 의존성을 추가한다.
  • Kotlin 컴파일이 Java 17 toolchain을 사용하도록 설정한다.
  • Kotlin 소스의 QueryDSL Q 타입 생성을 위한 kapt 설정을 추가한다.
  • 최소 Kotlin 테스트를 추가해 Kotlin 컴파일과 JUnit 실행을 검증한다.
  • ./gradlew build -x test가 성공한다.
  • ./gradlew test가 성공한다.

Reference

  • Spring Boot 3.2.5
  • Java 17

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions