JPA 엔티티 컬럼 자동으로 암복호화
jakarta.persistance 패키지에는 @Convert 라는 어노테이션이 있다. 해당 어노테이션을 활용하면 JPA에서 특정 컬럼에 대해 DB 테이블에 데이터를 저장할 때 내용을 암호화하고, DB에서 데이터를 조회해올 때는 내용을 복호화하여 조회해올 수 있다. 이번 포스팅에서는 그 방법들을 Spring Data JPA...
Backend Programmer, Spring Boot, Java, Kotlin. and I consider it important to record. Such as TIL and Blog.
jakarta.persistance 패키지에는 @Convert 라는 어노테이션이 있다. 해당 어노테이션을 활용하면 JPA에서 특정 컬럼에 대해 DB 테이블에 데이터를 저장할 때 내용을 암호화하고, DB에서 데이터를 조회해올 때는 내용을 복호화하여 조회해올 수 있다. 이번 포스팅에서는 그 방법들을 Spring Data JPA...
AWS ElastiCache 캐싱 목적이나, 분산락, Pub/Sub 기능을 위해 Redis를 많이 사용하곤 한다. 그런데 다중 서버 환경에서 Redis를 사용해야 한다면 어떻게 설계해야 할까? 아마 EC2 같은 하나의 서버를 다중 서버 네트워크 망에서 개설하고, 해당 서버에서 Redis를 띄울 것이다. 물론 위와 같은 방법...
회사에서 새로운 도메인을 구매하고, https 요청을 할 수 있도록 처리해야 하는 상황이 있었다. 도메인 구매는 가비아에서 미리 구매했고, AWS Route 53에서 호스팅을 관리하고자 한다. Certificate Manager에서 인증서 요청 먼저 인증서를 새로 발급받아야 하니 AWS Certificate Manager ...
0. AWS Beanstalk 란? AWS Beanstalk는 AWS에서 알아서 인프라 설정을 구성해주어, 쉽게 배포할 수 있게 도와주는 PaaS 서비스이다. 애플리케이션의 배포와 관리를 AWS에서 자동화하여 개발자의 부담을 크게 줄여준다. Beanstalk의 특징은 다음과 같다. Beanstalk 서비스 자체는 무료...
Kotlin DataFrame 보통 데이터를 조작하거나 분석할 때 많이 사용되는 툴로 Python 진영의 Pandas 라이브러리를 주로 생각한다. 실무에서 메모리 상에서 이렇게 데이터를 다뤄야 하는 상황이 있을 때, 이 데이터 다루는 부분만 Python으로 구현해야하나 고민할 수도 있을 것 같다. 여기서 소개하는 라이브러리...
EasyRandom으로 테스트용 데이터를 편하게 만들어보자 테스트 코드를 작성할 때 불편한 점들 테스트 코드를 작성할 때 흔히 겪는 불편함은 어떤 것들이 있을까? 나는 테스트용 데이터가 담긴 인스턴스를 만드는 게 번거로울 때가 있었다. 정말 의미 있는 데이터를 담아 테스트용 데이터를 만드는 게 아니라면 임의의 데이터를 테스트...
NextRise 2025 Seoul 회사에서 단체 워크샵으로 코엑스에서 진행한 NextRise 2025 Seoul 박람회에 방문했다. NextRise는 벤처 및 스타트업 기업가, 엑셀러레이터, 벤처 투자사, 산업계 리더들이 네트워크를 형성하고, 인사이트를 공유하며 혁신을 선보이는 스타트업 박람회라고 소개하고 있다. 참가...
Pre-signed URL을 사용해보자 Pre-signed URL 이란 Pre-signed (미리 서명된) URL 이란 AWS 자원의 접근 권한을 제공하기 위해서 사용되는 이전에 미리 적절한 권한을 가진 자격증명으로 서명된 URL을 말한다. 회사에서 기존에는 S3에 저장된 파일에 대한 정보를 클라이언트에게 전달해줄 때 Bl...
이슈 내용 MyBatis에는 조회 쿼리 결과가 여러 rows로 조회되는 데이터를 객체의 Collection 필드에 담을 수 있는 기능이 있다. 바로 <resultMap/> 태그 내 <collection/> 태그이다. 예를 들어 조회 결과가 이렇게 나오는 쿼리가 있다고 가정하자. ...
이슈 내용 TransactionalEvent 처리를 동기로 하는 경우 이벤트를 발행하는 쪽의 트랜잭션이 Connection을 계속 점유한다는 이슈를 알게 되어, 이에 대해 정리해보려 한다. 발생 원인은? Connection은 트랜잭션 동기화 자원이 모두 정리될 때까지 보유한다. 따라서 TransactionalEvent가 동...