Kafka를 이용한 이벤트 기반 아키텍처 맛보기
·
아키텍처
이전 프로젝트에서 개발을 하다가 서비스가 가지는 필드가 상당히 많아지는 상황이 존재했습니다.프로젝트 내에서 편지에 대해 신고가 접수될 경우 다음의 로직을 거치게 됩니다.신고 생성해당 편지에 신고가 3회 쌓였다면,해당 편지 블락 처리편지 작성자에게 경고 알림 전송편지 작성자 경고 횟수 증가신고 서비스에서 a, b, c에 해당하는 내용은 다른 서비스를 통해 처리해야 하는 로직입니다. 그러다 보니 신고 서비스의 필드는 늘어나 다른 서비스와 강결합되어 있는 상태입니다.public class ComplaintService { private final KeywordComplaintRepository keywordComplaintRepository; private final MapComplaintRepos..
도메인과 인프라의 분리
·
아키텍처
보통 프로젝트를 할 때, 자바를 이용한다면 저는 거의 스프링을 주로 씁니다. 또한 스프링을 쓰면 JPA도 거의 필수적으로 사용하게 됩니다.거기다 Data JPA를 쓰게 되면 다음처럼 JPA Entity가 생성됩니다.@Entity@Table(name = "user")public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long memberId; ...}이후 UserEntity에 메서드를 추가하거나 할 수 있습니다. 그런데 이 클래스가 Entity일까요?📌 Entity?우선 Entity를 3가지 종류로 나누어보겠습니다.Domain EntityDB EntityJPA EntityDomain..
레이어 아키텍처 제대로 적용하기
·
아키텍처
레이어 아키텍처는 비교적 단순하고 직관적인 아키텍처입니다. 그래서 스프링을 처음 배울 때 레이어 아키텍처를 통해 학습하곤 합니다. 또한 프로젝트 내에서도 레이어 아키텍처는 주로 사용됩니다.그런데 우리가 사용하는 레이어 아키텍처는 잘 사용되고 있는걸까요? 이번 주제에서는 레이어 아키텍처에 대해서 알아보고 어떤 방향으로 레이어 아키텍처를 설계해야 하는지 확인해 보겠습니다.이 내용은 ‘자바/스프링 개발자를 위한 실용주의 프로그래밍’을 읽고 작성된 글입니다.✅ 레이어 아키텍처의 조건실제로 레이어 아키텍처를 적용한 경우를 확인해 보면, 말은 레이어 아키텍처라고 하지만, 아키텍처를 단순히 폴더 관리 용도로 사용하는 경우가 있습니다. 이런 경우의 한 가지 예시를 들어볼게요.-image - image01.png - i..