Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

전공공부

[Project 00] Webflux + DDD 본문

Study/Spring Boot

[Project 00] Webflux + DDD

monitor 2024. 2. 3. 18:19
Personal Project

 

사이드 프로젝트를 진행하면서 개인적으로 공부 했던 점들을 직접 적용해보려 합니다. 사실, 팀 프로젝트로 진행을 하여야 더욱 더 개성있고 실 서비스에 가까운 프로젝트를 진행 할 수 있겠으나 아무래도 개인 프로젝트를 진행하면서 제 개인의 실력을 키우고 성장해내고 싶은 마음이 크고 제 자신의 능력을 보여주기 위해서는 개인 프로젝트 만큼 솔직 한 것이 없다고 생각합니다. (팀 프로젝트 특성상 공부하고 싶은 툴들을 제대로 쓰지 못 할 수 있고 일정에 많이 민감하기 때문에 구현하고 나서 보면 코딩 스타일 및 기본적인 틀이 잡히지 않을 가능성이 있습니다...) 따라서, 위와 같은 이유로 개인 프로젝트를 진행해보려고 합니다. 

 

우선 Domain Driven Design + MSA를 합한 E Commerce Platfrom 구현 계획을 세우고 있습니다.

 

해당 프로젝트를 진행하면서 배우려고 하는 점은 Webflux 기반의 비동기 시스템 처리를 실제 코드에 반영하고 이를 고객에게 빠른 서비스를 제공하는 이점으로 보여드리려 합니다.

 

당면한 문제점

 

 

ERD, Usecase Diagram을 작성하다 보니 느낀 점은 1인 개발 프로젝트다 보니 서버 사이즈가 진지하게 MSA 구조로 너무 커지면 관리 포인트가 늘어 날 것을 예상하여 간단히 구성하려고 합니다. 적어도 MSA + DDD의 구색을 하기 위해서 인증, 상품, 결제, 유저, 리뷰 정보 서버 정도만 우선 나눠서 구현 해볼 계획이고 이후에 운영을 할 기회가 생기면 유지 보수를 진행 할 계획입니다.

 

만일, 서버가 잘 나오게 된다면 제대로된 MSA로 전환하고 frontend 개발자를 구해서 제대로 운영 가능한 서버를 짤 생각도 있지만 돈을 벌고 싶다기 보다는 공부용으로 요리조리 써볼 생각이 더 강해서 현재는 백앤드 및 로컬 서버 구성 정도만 진행할 예정이고 정말 운 좋게 기회가 된다면 희박한 확률로 실 서비스를 운영 할 수도 있겠습니다.

 

서버 구조

 

서버 구조안은 아래와 같은 구조로 생각중입니다.

 

 

앞단에 JWT Token 인증 서버를 Spring Cloud API Gateway로 두고 나머지 메인 도메인들을 각각 Hexagonal Arichtecture를 활용하여 구현 할 계획입니다.

 

또한, E Commerce Platform 특성상 이미지를 사용이 잦을 것으로 예상하여 NFS Storage를 사용 할 계획이며 이때, DB에서 직접 끌어오는 시간이 오래 걸릴 것으로 예상하여 이미지를 NFS Storage로 부터 긁어 오는 방식을 채택 할 것입니다.

 

가능하다면 GCP 기반의 K8S를 적용할 계획을 가지고 있으나 실 서비스를 하는 프로젝트가 아닌 공부용 프로젝트라 K8S까지 적용 할 수 있을지는 미지수입니다. (또한, 사내에서 이미 K8S은 충분히 경험 중이기도 하지만, 아마 비용 문제 때문에 이 사항은 적용하지 않을 듯 합니다.)

 

이후 비동기 통신에 따른 문제점이나 이슈 사항을 블로그를 통해서 같이 공유드리는 자리가 될 수 있도록 하겠습니다.