반응형

프레임워크(Framework)/Kopring(Kotlin + Spring) 3

[Kopring] JPA Auditing - 생성/수정 시각 설정 및 테스트

JPA Auditing 프로젝트 작성 시 트래킹을 목적으로 엔티티의 생성 시간과 수정 시간 등을 테이블에 저장하여 관리해야 한다. 이를 쉽게 구현하기 위해 Spring Data JPA는 Auditing이라는 엔티티의 변경 내역을 추적하고 기록하는 기능을 제공한다. 이를 통해 엔티티의 생성일자, 수정일자 등을 쉽게 관리할 수 있다. 다음은 JPA Auditing 기능을 사용하지 않고 수동으로 관리하는 경우의 User 엔티티다. @Entity class User( ... ) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null ... @Column(nullable = false, updatable = false) var ..

[Kopring] 코틀린 스프링 환경에서 JPA Entity 정의하기

Intro JPA는 Java 진영의 표준 ORM 프레임워크로 자바 언어에 특화되어 있다. 코틀린 언어가 자바와 뛰어난 상호운용성을 가지고 있다고 하더라도 자바 언어에 특화된 하이버네이트를 적용시키다 보면 예상치 못한 문제 상황과 더 나은 엔티티를 정의하기 위해 고민해야 할 부분이 많았다. 따라서 코틀린 + 스프링 환경에서 JPA를 적용하기 위해 엔티티를 정의하는 단계에서 만난 문제와 이를 해결하기 위해 고민했던 내용을 정리하고자 한다. 코틀린 클래스는 기본이 final 코틀린에서 클래스, 함수, 프로퍼티는 기본적으로 final로 선언되어 상속이 불가능하다. 하이버네이트에서 제공하는 Entity 클래스는 final일 수는 있지만 지연 로딩(Lazy loading)을 위한 프록시 객체를 생성할 수 없다. 따..

[Kopring] 코틀린 + 스프링 부트 환경으로 프로젝트 생성하기

프로젝트 생성 개발자들 사이에서 코프링이라고 불리는 Kotlin 언어와 Spring 프레임워크를 활용한 프로젝트를 만들어보자. 기존 자바 스프링 프로젝트와 같이 Spring Initializr 또는 IntelliJ에서 프로젝트를 만들 수 있다. 간단히 프로젝트를 생성하고 실행하여 웹에서 확인하기 위해 의존성에 Spring Web을 추가하여 만들어보자. Spring Initializr https://start.spring.io/에 접속하여 프로젝트를 생성한다. IntelliJ IDEA Ultimate 코프링 프로젝트 패키지 구조 기본적으로 자바 + 스프링 프로젝트와 같은 패키지 구조를 구성하고 있다. build.gradle.kts는 기존 build.gradle과 같은 역할을 하는 파일이며, 클래스 파일 확..

반응형