라떼군 뉴스
JPA에 스며든 암호화 컬리의 실전 암호화 모듈 개발기
이 글은 다음 링크를 참고하여 인사이트를 더한 것입니다. 원문은 해당 링크에서 확인해주세요: https://helloworld.kurly.com/blog/delivery-encryption-module/↗
컬리는 왜 암호화 모듈을 직접 만들었을까?
기존 오픈소스의 보안 리스크와 불확실한 요구사항을 감안해, 컬리는 자체 암호화 모듈 cowcow-enc
을 직접 개발했습니다.
가장 중요한 결정은 JPA @Converter를 통한 암복호화 방식 채택이었습니다. PostLoad 방식은 dirty checking 문제, Hibernate PreLoad는 버전 호환 이슈로 모두 탈락했고, 결국 대중적이고 안정적인 방식으로 귀결됐습니다.
이 외에도 실용적인 기술 선택이 눈에 띕니다:
- 봉투암호화를 도입해 암호키 자체를 노출하지 않음
- 암호화 데이터의 base64 제거로 저장 공간과 속도 최적화
- 종속성 최소화로 모듈 충돌 가능성 제거
- fixture-monkey 기반 엣지케이스 테스트로 신뢰도 확보
- 실제 운영환경과 버전 차이까지 고려한 cowcow-tests 모듈 운영
성능 측면에서도 300만 건 처리 기준 5초대 처리 성능을 기록하며 실용성을 입증했습니다.
기능보다 ‘개발자가 실수하지 않게 만드는 설계’가 얼마나 중요한지 다시금 느끼게 해주는 사례입니다.
ShareJPA에 스며든 암호화 컬리의 실전 암호화 모듈 개발기 성능, 보안, 사용성을 모두 잡은 실전 암호화 전략. 컬리는 왜 오픈소스 대신 직접 암호화 모듈을 만들었고, 어떤 시행착오 끝에 JPA @Converter를 선택했을까요? 봉투암호화, base64 제거, 종속성 최소화까지 담긴 엔지니어링 여정을 소개합니다. 암호화는 보안의 문제가 아니라 설계의 문제입니다. 실무에서는 '어떻게 쉽게 쓸 수 있게 할 것인가'가 핵심입니다. #암호화모듈 #JPAConverter #봉투암호화 #개발문화 #실전보안 https://news.mrlatte.net/posts/2025/06/11/delivery-encryption-kurly/