컬
컬리
July 5, 20201회
JPA 덕분에 DB에서 삽질한 이야기

간단 소개
JPA 환경에서 UUID를 ID로 사용할 때 겪은 DB 조회 문제 해결 과정을 분석하고, 원인이 컬럼 속성 길이와 MySQL의 RPAD 특성에 있음을 밝힙니다.
AI Summary
- 문제 상황: JPA 환경에서 UUID를 ID로 사용하는 엔티티 저장 시, DB 조회 불가 문제 발생
- DB에 저장된 UUID를 이용한 조회 실패
- H2 인메모리 DB와 개발 DB 간의 테스트 환경 차이 발견
- 원인 분석 및 해결: 컬럼 속성 길이 불일치와 MySQL의 RPAD 특성
- UUID 컬럼 속성이 BINARY(255)로 설정되어 저장 시 RPAD 발생
- BINARY(16)으로 변경 후 문제 해결
- MySQL은 BINARY 타입 저장 시 남는 공간을 오른쪽 패딩 처리
- 검증 및 결론: 직접 검증을 통해 RPAD로 인한 조회 실패 확인
- UUID의 길이는 16바이트, 하이버네이트는 UUID를 binary로 저장
- 테스트 테이블 생성 후 데이터 삽입 및 조회 검증
- 조회 조건에 패딩 값을 포함하면 조회가 가능함을 확인
Next Feeds

제품을 대하는 개발자의 자세
개발자가 프로덕트 관점을 갖는 것의 중요성을 강조하고, 문제 해결 능력 향상과 비즈니스 이해를 위한 질문과 답변의 필요성을 설명한다.
프로덕트개발자PM/PO비즈니스성장
2020. 7. 1.
버즈빌

Lambda Calculus에 대해 알아보자
람다 대수의 기본 개념, 추상화 방법, 문제 해결 방식, 그리고 실제 프로그래밍에서의 응용 가능성을 설명합니다.
람다 대수추상화beta reductionalpha conversionChurch numeral
2020. 6. 16.
컬리

코드 악취를 맡는 후각 훈련의 시간
컬리 물류 시스템의 리팩토링 과정을 공유하며, 코드 개선, 팀 협업, 개발 역량 향상에 대한 경험을 담고 있습니다.
리팩토링코드 개선테스트 코드팀 협업개발 문화
2020. 6. 8.
컬리

EKS에서 쿠버네티스 포드의 IAM 권한 제어하기: Pod Identity Webhook
EKS 환경에서 Pod Identity Webhook을 사용하여 쿠버네티스 포드의 IAM 권한을 제어하는 방법과 동작 원리를 설명합니다.
EKSPod Identity WebhookIAMKubernetesAWS
2020. 6. 2.
데브시스터즈

안드로이드 개발자의 서버 개발기
안드로이드 개발자가 서버 개발에 도전하며 겪은 경험과 버즈빌의 개발 문화, 개발 과정을 소개합니다.
서버 개발안드로이드 개발버즈빌GoDevOps
2020. 5. 29.
버즈빌

Database Driven Development에서 진짜 DDD로의 선회, 이벤트 스토밍 -2-
이벤트 스토밍 방법론을 소개하고, 실제 적용 시 어려움과 주의사항을 설명하며, DDD 실천을 위한 첫걸음임을 강조한다.
이벤트 스토밍DDD도메인 이벤트애그리게잇브레인스토밍
2020. 5. 21.
컬리