안녕하세요. 백엔드 개발자 홍윤표 입니다. 제가 진행했던 프로젝트 중 고민에 대한 통해 개선하였던 경험을 기술하였습니다.
밀크코퍼레이션 2024.09. ~ 2024.10.
Java17
, Spring boot 3.2
, Spring batch
, JPA
, Querydsl
, Spock framework
, JUnit
<aside> 📌
육아용품 중심의 이커머스 플랫폼 ‘키즈닝’은, 최근 빠르게 성장하는 육아용품 중고 거래 시장의 수요에 대응하기 위해, 앱 내에 중고 거래 기능과 판매자의 수거, 검수, 배송까지 대행하는 통합 서비스를 구축하고자 했습니다.
본 프로젝트에서는 기존 레거시 구조에서 반복되던 중복 코드 문제, 외부 API와의 높은 결합도, 변경에 대한 유연성 부족 문제를 해결하고자, 헥사고날 아키텍처를 도입하여 유지보수성과 확장성을 개선하는 것을 목표로 삼았습니다.
</aside>
기존의 레이어드 아키텍처 구조에서는 다음과 같은 문제들이 있었으며, 이를 해결하고자 헥사고날 아키텍처 도입을 ****결정하였습니다.
Domain:
service
: usecase를 상속 받은 서비스의 비즈니스 로직 구현을 담당entity
: 도메인 엔티티를 담당Adapter: 외부 API, DB 등 인프라 관련 담당
in.web
: 웹훅 요청을 받을 Controller 구현out
: persistence, API 연동 등 인프라 관련 로직 구현을 담당Application:
port.in
: 비즈니스 구현을 위한 Usecase 인터페이스 정의를 담당port.out
: 외부와 연결하기 위한 Port 인터페이스 정의를 담당밀크코퍼레이션 2024.03. ~ 2024.03. (2주)
Java17
, Spring boot 2.7
, AWS Personalize
, JPA
, Querydsl
<aside> 📌
기존 개인화 추천 시스템은 회원 가입 시 등록한 관심 카테고리와 아이정보를 기반으로 추천하여, 회원의 최근 관심사 반영을 하지 못하는 한계가 있었습니다. 이를 개선하고자 회원 활동 데이터를 기반으로 한 실시간 추천 구현을 목표로 AWS Personalize 도입을 제안하고 추천 시스템 설계 및 구현하였습니다.
</aside>