아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
인프런 favicon인프런

Java와 Kotlin, Spring Boot에서 함께 쓰는 법

by DD
2024-01-10
2년 전
조회수 8

Java의 Null safety 부재와 Kotlin의 JPA 호환성 문제를 해결하기 위해 두 언어를 혼용하기로 결정

멀티 모듈 구성, Platform Type 개선, Custom Nullability annotations 적용

ArchUnit을 활용하여 NonNull/Nullable 어노테이션 누락을 방지하고 코드 품질을 향상시킴

Java와 Kotlin 혼용의 기술적 배경

Java는 JPA와의 높은 호환성을 제공하지만, Null safety 부재가 단점이다. 따라서 Kotlin의 Null safety 지원과 Java의 JPA 연동을 위해 두 언어를 함께 사용한다. 구체적으로, Entity는 Java로, 나머지 로직은 Kotlin으로 구현하여 각 언어의 장점을 활용한다.

Platform Type과 Nullability annotations

Kotlin에서 Java로 선언된 변수를 사용할 때 Platform Type으로 인해 Null safety가 보장되지 않는다. 따라서 Nullability annotations을 사용하여 Null 가능 여부를 명시적으로 지정한다. 반면, 런타임에 어노테이션이 사라지는 문제를 해결하기 위해 RUNTIME retention policy를 가진 어노테이션을 직접 정의한다.

ArchUnit을 활용한 코드 품질 관리

ArchUnit을 사용하여 NonNull 및 Nullable 어노테이션 누락을 방지한다. 구체적으로, @Column이 있는 필드에 어노테이션이 있는지 검증하는 테스트 코드를 작성한다. 따라서, 코드 품질을 유지하고, NullPointerException 발생 가능성을 줄여 안정적인 서비스 운영을 가능하게 한다.

Spring Boot & JPA에서 Java와 Kotlin을 함께 사용하기
중급
아키텍처
Spring Boot
JPA
Kotlin
ArchUnit
Java
Backend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

10년 된 레거시, DDD로 혁신! CQRS, 멀티 모듈, JPA로 매장 도메인 구현

올리브영 로고

스프링(Spring) 최신 릴리즈 및 개발 관련 소식 한눈에!

스프링 로고

AI 시대, 백엔드 개발자는 문제 해결 능력과 유연한 기술 선택이 핵심!

요즘IT 로고

20년 레거시를 혁신한 토스페이먼츠의 기술 여정

토스 로고

2025년 상반기 프리랜서 개발자 시장 분석: 급여, 기술, 경쟁

요즘IT 로고

토스뱅크, MSA 환경 Enum 관리 전략 공개! 0% 에러 달성 비결은?

토스 로고
인프런 favicon인프런
중급
아키텍처
Spring Boot
JPA
Kotlin
ArchUnit
Java
Backend

관련 추천 글

10년 된 레거시, DDD로 혁신! CQRS, 멀티 모듈, JPA로 매장 도메인 구현

올리브영 로고

스프링(Spring) 최신 릴리즈 및 개발 관련 소식 한눈에!

스프링 로고

AI 시대, 백엔드 개발자는 문제 해결 능력과 유연한 기술 선택이 핵심!

요즘IT 로고