본문으로 이동
딜리버리 암호화 모듈 개발기
문서

딜리버리 암호화 모듈 개발기

강준영 컬리 · 컬리 기술 블로그

원문 보기

AI 핵심 요약

새 배송 시스템에 필요한 애플리케이션 단 암·복호화, 키 관리, 엔티티 자동 변환을 구현하기 위해 자체 모듈 cowcow-enc를 개발했습니다. JPA @PostLoad는 복호화 후 dirty checking으로 조회만 해도 업데이트가 발생했고, Hibernate PreLoad는 Hibernate 6.x 호환성 문제를 겪어 최종적으로 필드별 JPA AttributeConverter를 선택했습니다. 암호키를 클라우드 마스터키로 보호하는 봉투 암호화를 적용하고, 헤더 최적화와 Base64 대신 바이너리 저장을 통해 보안 수준을 유지하면서 데이터 크기를 줄였습니다. 의존성을 최소화하고 무작위 엣지 케이스, 사용자 애플리케이션 환경, 성능을 검증한 모듈은 여러 딜리버리 서비스에서 사용되고 있습니다.

  • JPA 엔티티의 자동 암·복호화는 구현 편의성뿐 아니라 dirty checking과 Hibernate 버전 호환성까지 고려해 선택해야 합니다.
  • AttributeConverter를 사용하면 리플렉션 없이 필드별 처리가 가능하고, JPQL이나 QueryDSL의 일부 필드 조회에도 변환을 적용할 수 있습니다.
  • 봉투 암호화는 데이터 암호화 키를 클라우드 마스터키로 보호하고 사용 후 폐기해, 키 관리 부담과 노출 범위를 줄입니다.
  • 바이너리 컬럼을 활용하고 봉투 헤더를 최적화하면 Base64 오버헤드와 저장 크기를 줄일 수 있지만, 엣지 케이스 검증이 필요합니다.
  • 모듈은 전이 의존성을 최소화하고, Property-based 테스트와 실제 애플리케이션 환경의 호환성·성능 테스트를 함께 수행하세요.

소개

딜리버리에서 사용하고있는 암호화모듈을 개발한 경험을 공유합니다.

비슷한 학습 자료

책 그린 (윤덕우) 예스24

컴퓨터 보안과 암호

책 그린 (윤덕우) 예스24

네트워크를 이용한 각종 응용에서 필요한 정보보호 서비스를 제공하기 위한 핵심 기술들을 다루고 있다. 또한 과거의 전통적인 암호 기술에서부터 최근의 각종 암호 알고리즘들까지 체계적으로 상세히 설명하고 있다.

보안

문서 이창섭

아웃박스 패턴과 재시도 토픽으로 외부 채널 입고 정보를 안전하게 동기화하기

백엔드

문서 박준규

공통 모듈에서 발생한 동시성 이슈의 해결 과정을 소개합니다.

백엔드 프로그래밍 언어

문서 조문옥

컬리의 서비스 개발 원칙

백엔드

문서 이민식

맛있는 데이터를 만드는 방법

인공지능 기타

책 데이비드 웡 예스24

리얼월드 암호학

책 데이비드 웡 예스24

세상에서 가장 실용적인 암호학 가이드북 암호학은 IT 보안의 필수 기반이다. 시스템 공격자보다 앞서려면 네트워크와 애플리케이션을 보호할 도구, 프레임워크, 프로토콜을 이해해야 한다. 이 책은 개발자, 시스템 관리자, 보안 실무자를 위한 실용적인 기술을 가르친다. 복잡한 수학이나 전문용어 대신 다양한 그림과 실제 사례를 통해 현대 암호학 기법을 설명한다. 해시 함수, 서명, HTTPS, 보안 메시징, 양자 내성 암호학, 암호화폐 등 기본 요소부터 최첨단 기술까지 배울 수 있다. TLS를 포함한 인터넷 표준에 적극적으로 기여하고 있는 암호학 엔지니어가 필드에 처음 입문하는 실무자도 읽을 수 있게 집필했다.

보안