반응형 도메인 이벤트2 트랜잭션 수행 코드에 포함된 네트워크 통신 코드 분리하기 현재 프로젝트에서 관리자 권한을 가진 유저가 다수의 유저에게 초대 이메일을 보내는 비즈니스 로직이 존재합니다. 해당 로직을 수행하는 메서드에 트랜잭션이 걸리고, 메일 서버에 메일 전송 요청도 보내고 있습니다. 트랜잭션을 수행하는 중에 네트워크 통신을 진행하면 굉장히 안 좋다는 글을 본 적이 있습니다.(Real MySQL) 따라서 트랜잭션 수행 코드와 네트워크 통신 코드가 결합된 비즈니스 로직 코드를 개선한 과정을 포스팅으로 작성하려고 합니다. 시작하겠습니다. 비즈니스 로직 정리 멤버와 프로젝트 멤버 프로젝트는 M:N 관계이다. 비즈니스 로직을 수행하는 메서드의 로직은 다음과 같다. 로그인에서 사용하는 JWT 토큰에서 멤버 id를 얻는다. 트랜잭션 시작 멤버 id를 사용해 데이터베이스에서 멤버 엔티티를 조.. 프로젝트 2023. 7. 1. 우아한 객체지향 정리 이번에는 유튜브에서 조영호님이 발표하신 강의 우아한 객체지향을 정리해보려고 합니다. 객체지향과 해당 예제에 관심이 많아서..ㅎㅎ 영상 링크와 발표 깃허브 링크는 포스팅 맨 아래에 있습니다. 1. 의존성 1.1 설계란 코드를 어떻게 배치할 것인가. 즉 어떤 클래스에 어떤 코드가 들어가고, 어떤 패키지에 어떤 클래스가 들어갈 것인지, 프로젝트에 어떤 코드를 작성할 것인가에 대한 내용이 설계다. 설계의 핵심은 바로 변경에 초점을 맞추는 것이다. 같이 변경되는 것들을 같이 넣어야 한다. 같이 변경되지 않는 것들은 따로 넣어야 한다. 1.2 의존성이란 의존성이 있다는 것은 B가 변경되면 A도 같이 변경될 수 있다는 의미다. 중요한 부분은 변경될 수 있다는 점이다. 위 그림의 예시처럼 A가 B에 의존하고 B가 변경.. 기록 및 회고 2022. 9. 14. 이전 1 다음 반응형