본문 바로가기

전체 글3

스프링 AOP는 항상 주의하여 사용하자 이번 포스팅에서는 스프링 AOP 사용으로 삽질한 경험을 기록해두려고 한다. 사건의 계기사용자들의 추가 요구사항으로 신규 API를 개발해야하는 경우가 많아졌다.여러 REST API를 추가 개발하면서 중복 코드가 발생하였는데, 바로 요청 파라미터와 응답 파라미터에 대한 로깅 처리였다. 이를 스프링 AOP로 중복 코드를 제거하였고, 코드는 대략적으로 아래와 같았다. JoinPoint 객체에서 CodeSignature 객체를 얻어와 요청 파라미터 네임과 어떤 데이터가 넘어왔는지 Map 형식으로 변환 시켰다.private Map params(JoinPoint joinPoint) throws JsonProcessingException { CodeSignature codeSignature = (CodeSigna.. 2024. 5. 27.
메세징 큐 기반의 결제 영수증 메일 발송 데몬 구축하기(다국어 처리) 이번 포스팅에서는 AWS SQS를 사용해서 결제 영수증 메일을 발송하는 데몬을 구축한 경험을 기록하고자 한다. 흔히 말하는 pub/sub 패턴이다. 문제 상황이 무엇이었나?고객이 정상적으로 결제를 완료하면 고객 이메일로 결제 영수증 메일이 발송한다. 기존 환경에서는 아래와 같은 프로세스로 처리되고 있었다.Map 객체를 활용하여 메일 전송 데이터를 초기화한다.다국어 처리를 위해 language에 따라 메일 양식 html 파일을 생성한다.사내 SMTP 서버와 통신을 위해 Thread 객체를 생성한다.새로 생성된 Tread 객체에서 SMTP 서버로 메시지를 전송한다.위 프로세스에서는 아래와 같은 문제점들을 야기했다.Map 객체로 데이터를 전달하고 있어 코드 가독성이 매우 떨어졌다.language에 따라 htm.. 2024. 5. 13.
혼자서 Spring Batch 기반의 정산 배치 프로그램 구축하기 취준생 시절에는 기술 블로그를 조금씩 운영해 왔지만, 취업 후 회사 업무에 치여.. 또 개인 개발 공부에만 집중하느라 그동안 내가 어떤 부분에서 성장해 왔는지 기록이 되어 있지 않았던 거 같다. '나중에 정리해야지', '머릿속에 가지고 있으면 되지' 등의 안일한 생각들을 버리고 당장 귀찮고 힘들더라도 의미 있는 프로젝트를 진행한 내용, 기술 지식을 습득한 내용을 정리하고자 한다. 그중에서도 오늘은 개별적으로 진행한 프로젝트, 혼자서 3~4달간 쉬지 않고 야근을 불사 지르며 진행했던 정산 배치 프로그램 구축 경험을 기록하고자 한다.어떤 문제점들이 존재하였나?사내에서 현재 내가 담당하고 있는 시스템은 실시간 결제 승인 서비스이다.고객이 가맹점에서 파는 물건을 사기 위해 결제를 하면 고객의 돈은 결제사(매입사.. 2024. 5. 11.