본문 바로가기

전체 글157

[Spring] Spring 캐시 사용하기 0. 서론 각 비즈니스 로직에서 콘텐츠를 더 빠르게 제공하기 위해 캐싱을 이용하게 되는데요. 이번 글에서는 Spring 캐시 관련 기능을 살펴보고 스프링이 캐시를 AOP로 추상화하여 편리하게 개발할 수 있도록 지원하는지 살펴보겠습니다. 1. Spring 캐시와 Web 캐시 우선 캐싱에 대해 간단히 살펴보겠습니다. 캐싱(Caching) 캐싱은 데이터를 빠르게 읽고 처리하기 위해 속도가 빠른 메모리를 활용하여 임시로 데이터를 저장하는 기술입니다. 계산된 값을 임시로 저장해 동일한 계산이나 요청이 필요할 때 다시 계산하지 않고 빠르게 결과값을 사용하기 위해 사용됩니다. 캐시(Cache): 캐싱 기술을 사용할 때 사용되는 임시저장소 입니다. 저희가 이번 글에서 살펴볼 캐싱은 Spring 캐싱입니다. Spring.. 2024. 2. 18.
[Spring] AWS SES 이메일 반송률 관리하기 0. 서론 저희 서비스에서는 이메일을 다양한 결제 완료, 배송, 공지 등의 이벤트 등 여러 이벤트가 일어났을 때 보내게 됩니다. 현실세계에선 우체국이 있는 것처럼 이메일 서비스에는 SES가 존재합니다. 이메일을 보내기 위해 많이 사용하는 SES에서는 현실세계의 발송 처럼 수신관리 개념도 필요합니다. SES에서는 반송률이라는 개념이 있는데 반송률이란 실제 우편으로 예를 들어보면 실제 우편을 발송했을 때 주소가 다르거나, 수신자가 잘못왔을 경우 우체국으로 반송 요청을 하게 되는데 실제 SES에서도 이와 같은 개념이 존재합니다. 지속적으로 유저가 늘어남에 따라 수치가 올라갔을 것이고, 해당 이벤트 처리를 하지 않을 경우 속도저하, 제일 최악의 케이스는 메일을 전송하는 이메일 도메인이 블락됩니다. AWS 권장 .. 2024. 2. 4.
[Spring] AWS SQS를 Spring cloud 2.2.X 적용 해보기 0. 서론 특정한 이벤트가 있을 경우 지정한 시간동안 의도적으로 딜레이 후에 이벤트를 처리, 이벤트를 수신한대로 적용을 해야하는 케이스가 생겼습니다. 요구사항을 어떻게 처리할까 고민을 하다가, 이번에 SQS를 도입해서 적용을 해보면 좋겠다 라고 생각했습니다. 생각한 이유는 다음과 같습니다. FIFO(선입선출) 큐를 지원한다 지연 큐를 지원한다 인프라, 운영적인 측면 고려 위의 내용으로 인해 AWS SQS를 적용하게 되었습니다. 본 포스팅을 통해 SQS에 대해 간단히 알아보고, SQS를 코드에 적용해서 메시지를 발신 및 수신을 해보도록 하겠습니다. 1. SQS (Simple Queue Service) 란? SQS(Simple Queue Service)는 AWS에서 제공하는 애플리케이션 간 메시지를 주고받을.. 2024. 1. 7.
[Java] BigDecimal 사용하기 0. 서론 회사에서 결제와 관련된 도메인을 맡아서 작업하고 있습니다. 특히나 해외 결제에는 환율 적용, 화폐 단위(달러, 엔화 등)으로 인해 많은 소수점 처리를 하게 되는 것 같습니다. 본 포스팅을 통해 BigDecimal을 사용하는 이유와 개념, 사용법, 사용하다 겪은 주의사항을 간단하게 소개하고자 합니다. 1. double의 문제점 환율을 적용해서 가격을 계산하다보면 소수점이 굉장히 긴 연산을 하는 케이스가 많다. 아래 테스트 케이스처럼 굉장히 긴 소수점을 계산하는 케이스가 있는 경우도 생길 수 있다. 아래 테스트 코드는 통과를 할까? @Test @DisplayName("Double 계산") void double_test(){ double a = 100.0000000003; double b = 90... 2023. 12. 21.