업무 중 특정 도메인 객체가 생성되거나 변경되었을 때 이메일 또는 푸시를 전송해야 한다는 요구사항이 생겼고 각 도메인 간 결합을 낮추고 여러 도메인에서 사용할 수 있도록 하기 위해 이벤트 방식을 적용하기로 하였습니다. 이벤트 방식을 적용하면서 알게된 내용들을 간단히 정리하고자 합니다. 🙂 1. 스프링 이벤트 [스프링에서 이벤트 발행과 구독] 스프링은 이벤트를 발행하고 구독하는 기능을 제공하고 있는데, 각 로직들을 느슨하게 결합하여 변경 및 추가를 용이하게 하고 재사용성을 높이기 위해 사용합니다. 스프링에서 이벤트를 사용하는 방식은 이벤트를 ApplicationContext로 넘기고 Listener가 이를 구독하는 방식입니다. 따라서 애플리케이션 및 컨텍스트의 수명 주기에 연결되는 사용자 지정 작업을 수행..
이전 글에서는 AWS API Gateway를 WebSocket 형태로 생성하고 기본적인 connect, disconnect 하는 방법을 알아보았습니다. 이제 새로운 커스텀 경로를 생성하여 데이터를 전송하고 그 결과 다시 Spring Application에서 API Gateway 쪽으로 전송해 연결된 소켓 클라이언트에 데이터를 전달해보도록 하겠습니다. 먼저 AWS API Gateway에 새로운 경로를 추가하고 통합 요청 설정을 해주겠습니다. 이는 기존에 추가한 connect, disconnect 경로와 유사합니다. 이렇게 경로를 생성한 뒤, 요청 템플릿을 추가해줍니다. { "connectionId" : "$context.connectionId", "requestId": "$input.path('reques..
23년 12월부터 시작한 항해 플러스 3기. 10주간의 여정이 모두 마무리되었다. 10주동안 정말 많은 일이 있었지만 조금 간단하게...? 회고해보려 한다. 🤣 > 항해 플러스를 시작하기 전, 어떻게 시작했는지? 에 대한 내용은 이전 글에서 확인! 더보기 - https://developerbee.tistory.com/265 1주차: 남이 타준 커피가 젤 맛있다. AWS 환경에 CI/CD 자동화 구축... 그동안 개인적으로 CI/CD 및 클라우드 환경에 대해 공부를 했었지만, 실무에서는 이미 만들어진 환경에서 개발만 진행하는 경우가 많아서 였을까... 과정을 하나하나 진행하는게 쉽지 않았다. 우선 Github Action을 통한 배포 자체가 처음이라 브랜치, 환경에 대한 전략을 어떻게 가져가는 것이 좋을지..
이번 프로젝트에서 MSK를 사용하게 되었습니다. MSK는 Serverless 로 생성되었는데 이와 SpringBoot 프로젝트를 연동하는 방식에 대해 살펴보고자 합니다. 먼저 spring-kafka dependencies를 추가해줍니다. // build.gradle dependencies { ... // kafka implementation 'org.springframework.kafka:spring-kafka' ... } 여기서 MSK 생성에 대해서는 다루지 않겠습니다. MSK를 Serverless로 생성하고 나서 클라이언트 정보 보기를 하면 아래와 같이 부트스트랩 서버의 엔드포인트를 확인할 수 있습니다. Serverless 의 경우 현재 인증 유형은 IAM 밖에 존재하지 않습니다. 이를 SpringB..
회사에서 프로젝트 작업 중 갑자기 테이블들이 수정되면서 대부분의 테이블에 생성자, 생성일시, 수정자, 수정일시가 추가되었습니다. 로그인한 사용자의 Id를 기반으로 데이터를 insert, update, delete할 때 해당 내용들을 추가해줘야 했고 이를 위해 Interceptor를 구현하기로 했습니다. CommonAuditing 추상 클래스 생성 후 필요한 Model 들에서 이를 상속받아 추가하는 방법도 고민했지만 이미 어느정도 작업이 진행되어 있어서 전체 DTO, Domain, Model을 수정하는 것은 무리가 있다고 생각했고 그나마 나은 방법으로 Mapper와 xml 파일만 수정할 수 있는 방법을 고민하여 Interceptor를 구현하는 것으로 결정했습니다. 먼저 다음과 같이 Interceptor를 ..
- Total
- Today
- Yesterday
- EC2
- 에라토스테네스의 체
- CodeCommit
- 순열
- Algorithm
- array
- 소수
- 프로그래머스
- 수학
- spring
- programmers
- string
- Dynamic Programming
- 조합
- java
- ECR
- Baekjoon
- BFS
- SWIFT
- DFS
- CodeDeploy
- AWS
- ionic
- permutation
- map
- cloudfront
- Combination
- search
- sort
- CodePipeline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |