스
스포카
August 16, 20221회
스포카에서 Kotlin으로 JPA Entity를 정의하는 방법

간단 소개
Kotlin JPA Entity 정의 시 문제점과 해결 방안, 그리고 스포카의 Entity 정의 팁을 통해 더 나은 Entity 설계를 제시합니다.
AI Summary
- Kotlin JPA Entity 정의 시 문제점 및 해결 방안
- Kotlin은 불변성을 지향하지만, JPA는 Java 기반으로 mutable property에 초점이 맞춰져 있어 캡슐화가 어려움. Setter 노출을 최소화하고, Data class 대신 일반 클래스를 사용하여 Entity의 상태 변경을 제어하는 것이 중요.
- 연관관계 정의 시 lateinit 사용은 런타임 오류를 유발할 수 있으므로, nullable 타입 또는 Entity 자체를 주입하는 방식으로 해결해야 함.
- Kotlin JPA Entity 정의 팁
- allopen 설정을 통해 Entity 클래스와 property에 final 키워드가 붙는 것을 방지하고, PrimaryKeyEntity를 상속받아 공통 Primary Key 타입 및 생성 방식을 정의하여 코드 중복을 줄이고 일관성을 유지할 수 있음.
- Entity Property에 대한 접근 제어를 통해 외부에서의 무분별한 변경을 막고, Immutable Collection을 노출하여 연관관계 Collection의 변경을 제어할 수 있음.
- ManyToMany를 적극 활용하여 불필요한 연결 Entity 생성을 줄이고, Value Object를 적절히 사용하여 Entity 설계를 단순화할 수 있음.
- Cascade 및 nullable 활용
- Cascade 설정을 통해 Entity 생명주기 관리를 단순화하고, 데이터베이스 스키마와 Entity 스키마의 불일치로 인한 오류를 방지하기 위해 nullable 속성을 명시적으로 지정하는 것이 중요함.
Next Feeds
모델 서빙 최적화를 위한 프레임워크 선정과 서빙 성능 극대화하기
카카오페이의 모델 서빙 최적화 과정: 프레임워크 비교, Triton 선정 및 성능 극대화 전략을 통해 서비스 성능을 향상시킨 사례를 공유합니다.
모델 서빙Triton성능 최적화Dynamic BatchConcurrent Model Execution
2022. 8. 11.
카카오페이
자동화 테스트로 수 억 대의 디바이스 환경에서 살아남는 SDK 완성하기 - QA Engineer 인터뷰
AB180은 QA 엔지니어에게 성장 기회를 제공하며, 자동화 테스트 환경 구축 경험과 주도적인 업무 능력을 키울 수 있는 환경을 제공합니다.
QA 엔지니어자동화 테스트에어브릿지AB180SDK
2022. 8. 10.
AB180

9가지 프로그래밍 언어로 배우는 개념: 2편 - 다형성
다양한 프로그래밍 언어에서 다형성을 구현하는 방법들을 비교 분석하고, 각 기법의 장단점 및 한계점을 설명합니다.
다형성오버로딩인터페이스제네릭타입 클래스
2022. 8. 9.
데브시스터즈

올리브영 데이터 엔지니어링
올리브영의 데이터 엔지니어링은 ETL에서 클라우드 기반으로 확장되었으며, MSA 기반 데이터 서비스 플랫폼으로 진화 중입니다.
데이터 엔지니어링ETLGCP데이터 파이프라인MSA
2022. 8. 8.
올리브영
Redux, Again
React 상태 관리의 어려움 극복을 위해 Redux를 도입하고, Local state 우선 전략과 Hook을 활용한 상태 공유를 거쳐, 결국 Redux의 생산성을 재발견하는 과정.
ReduxReact상태관리HookContext
2022. 8. 8.
VCNC

컬리 검색이 카프카를 들여다본 이야기 1
컬리 검색 시스템에서 카프카 설정 튜닝을 통해 메시지 처리량(스루풋)을 개선하고 불필요한 시스템 동작을 방지한 경험 공유.
카프카레디스리밸런싱max.pollBatch Listener
2022. 8. 8.
컬리