728x90 320x100 💻 뚝딱뚝딱/북북클럽48 [개발일지 #040] 리팩토링 - (2) User 도메인 (단위 테스트, Postman 테스트 포함) 🎯 오늘의 개발 내용 (요약)User 도메인 리팩토링 (단위 테스트, Postman 테스트 포함)🛠️ 개발내용기존의 User 도메인 즉, UserService는 유저와 관련된 모든 서비스가 모여있어, 한 서비스가 너무 비대해져 복잡해지고 유지보수성이 떨어지는 현상이 발생했다. 그래서 UserSerivce를 3개의 서비스로 분리하기로 한다. ProfileImageService프로필 이미지를 등록/수정/삭제하는 내용을 담은 서비스이며, 최대한 메서드를 분리하여 단일책임 원칙에 맞추려 노력하였으며, 용량이나 확장자를 제한하는 유효성 검사들을 조금 더 꼼꼼히 체크할 수 있도록 리팩토링 하였다.package com.bookbookclub.bbc_user_service.user.service;/** * 프로필 .. 2025. 6. 13. [개발일지 #039] 리팩토링 - (1) 공통 응답 구조, 공통 예외 처리 🎯 오늘의 개발 내용 (요약)공통 응답 구조 리팩토링공통 예외 처리 리팩토링🛠️ 개발내용MSA 아키텍처를 도입하고, 공통모듈까지 만들다 보니, 기존의 공통 응답 구조와 공통 예외 처리가 부족한 부분이 보여 리팩토링 하게 되었다. 📌 공통 응답 구조 리팩토링package com.bookbookclub.common.response;import com.bookbookclub.common.exception.BaseErrorCode;import lombok.AllArgsConstructor;import lombok.Getter;/** * API 응답 포맷을 표준화하는 클래스 * */@Getterpublic class ApiResponse { private final boolean success; .. 2025. 6. 13. [개발일지 #038] 공통모듈 구조 만들기, 예외 처리 분리하기 🎯 오늘 개발 할 기능공통모듈 만들기예외 처리 분리하기🛠️ 개발내용📌 멀티모듈 구조 만들기 ✅ 멀티모듈(Multi Module)이란?하나의 메인 프로젝트 안에서 여러 개의 서브 프로젝트(모듈)로 기능을 분리하는 방식bookbookclub/├── bbc-user-service├── bbc-post-service├── bbc-common└── build.gradle (루트) ✅ 멀티모듈을 사용하는 이유?이유설명💡 역할 분리 (SRP)도메인마다 책임을 나누고 관심사를 분리함🔁 재사용성공통 코드(common)을 여러 서비스에서 재사용 가능🧪 테스트 용이성각 모듈별로 독립적인 단위 테스트/통합 테스트 수행 가능🚀 빌드 효율성변경된 모듈만 빌드해서 속도 향상 (Gradle Incremental Bui.. 2025. 6. 10. [개발일지 #037] 모놀리식 아키텍처를 MSA 아키텍처로 전환하기 (3) - MSA 환경에서의 서비스 간 통신 구축 🎯 오늘 개발 할 기능모놀리식 아키텍처를 MSA 아키텍처로 전환하기 (2)Book, Feed, Like 엔티티🛠️ 개발내용📌 관련 코드 옮기기bbc-post-service와 관련있는 엔티티(Book, Feed, Like)를 위주로 일단 코드를 옮겼다. 옮기고 나니 패키지 구조가 위와 같아짐. ✅ 🔐 2. 분리된 서비스끼리 어떻게 통신해야 할까?✅ MSA 간 통신 방식 (Post → User 호출)1. RestTemplateSpring에서 기본 제공하는 HTTP 통신 라이브러리.장점: 간단함.단점: boilerplate 코드 많음, 유지보수 어려움.2. WebClientSpring WebFlux 기반 비동기/논블로킹 HTTP 클라이언트.장점: 비동기 처리 가능, 유연함.단점: 학습 곡선 있음, 동.. 2025. 6. 9. [개발일지 #036] 모놀리식 아키텍처를 MSA 아키텍처로 전환하기 (2) - bbc-user-service (Follow 엔티티) 🎯 오늘 개발 할 기능모놀리식 아키텍처를 MSA 아키텍처로 전환하기 (2) 🛠️ 개발내용✅ User, EmailValidation 엔티티를 bbc-user-service로 옮겼던 것 처럼 Follow도 코드들을 옮겨주었음.코드들을 패키지 구조에 맞춰 옮겨주기만 하면 되서, user, email 도메인을 처음 옮기는 것보다 훨씬 수월하게 작업했다.패키지 구조가 위와 같이 되어있는데 MSA 전환된것 치고 다소 복잡해보이는 패키지 구조인 것은 사실이다. user├── emailverification│ ├── controller│ ├── domain│ ├── dto│ ├── exception│ ├── repository│ └── service├── follow│ ├── contro.. 2025. 5. 9. [개발일지 #035] 모놀리식 아키텍처를 MSA 아키텍처로 전환하기 (1) - bbc-user-service (User, EmailValidation, Follow 엔티티) 🎯 오늘 개발 할 기능모놀리식 아키텍처를 MSA 아키텍처로 전환하기🛠️ 개발내용✅ 모놀리식, MSA 아키텍처가 무엇인지 왜 MSA로 전환하려는지에 대한 내용을 아래의 포스팅을 확인! 모놀리식 아키텍처 VS MSA 아키텍처✅ 모놀리식 아키텍처(Monolithic Architecture)란?애플리케이션의 모든 기능이 하나의 덩어리(프로세스)로 묶여서 돌아가는 구조.특징:단일 코드베이스: 모든 기능(회원, 결제, 주문 등)이 한 프로젝트ddururiiiiiii.tistory.com✅ 현재 북북클럽의 아키텍처는현재 나의 프로젝트는 위와 같은 구조로 모든 도메인이 한 프로젝트에 위치한 모놀리식 아키텍처임. 이 아키텍처 구조를 bbc-user-service, bbc-post-service, bbc-follow-.. 2025. 5. 8. 이전 1 2 3 4 5 ··· 8 다음 728x90 320x100