회원 도메인 공통 모듈화
DB는 이미 하나였지만 API는 사이트마다 따로 개발하던 구조를, 공통 모듈과 사이트별 모듈을 조합해 배포하는 구조로 바꾼 팀 프로젝트입니다. 그 위에서 제휴 · 인증 모듈을 개발하고, 팀이 쓰는 Gravitee API 게이트웨이로 서비스별 호출부를 분산했습니다.
API 게이트웨이로 인증 · 권한 검증과 라우팅을 한곳에
- 기간
- 2025 — 현재
- 팀
- 팀 공동 설계
- 역할
- 제휴 · 인증 모듈 개발 · 게이트웨이 라우팅 구성
DB가 하나라고 개발이 한 번은 아니었다
지마켓과 옥션은 통합 DB를 쓰고 있었지만 API 계층은 나뉘어 있었습니다. 구조가 같은 기능도 사이트마다 두 번 만들고 두 번 검증해야 했습니다. 팀에서 회원정보 · 로그인 · 캐싱 API를 공통 모듈과 사이트별 모듈로 나누고, 필요한 모듈을 조합해 사이트별 서비스로 배포하는 구조를 함께 설계했습니다.
제휴·인증 모듈에서는 함께 재사용할 기능과 사이트별로 달라야 하는 정책을 나눴습니다. 코드 모양만 비슷하다고 합치면 한쪽 정책 변경이 다른 사이트에도 영향을 줄 수 있으므로, 업무 의미와 변경 이유를 기준으로 공통화 범위를 설명할 수 있습니다.
내가 맡은 자리
이 구조 위에서 제휴 · 인증 모듈을 주로 개발했습니다. 전체 아키텍처는 팀 공동 작업이고, 제 판단이 들어간 범위는 제휴와 인증 모듈 안에서 어떤 기능을 공유하고 어떤 정책을 사이트별로 남길지 정한 부분입니다.
서비스가 분화되면서 호출자 인증 · 권한 검증을 서비스마다 반복하기 어려워져, 팀이 이미 쓰고 있던 Gravitee API 게이트웨이에 서비스별 라우팅을 구성해 호출부를 분산했습니다. 호출자 인증을 게이트웨이로 모으더라도 특정 회원 데이터에 접근해도 되는지 같은 도메인 권한은 애플리케이션이 따로 판단해야 한다는 경계를 의식했습니다.
지금 상태
프로덕션에 배포되어 운영 중이고, 새 연동을 붙일 때 공통 모듈을 재사용하는 기반이 생겼습니다. 공수를 얼마나 줄였는지 측정한 수치는 없어서, 그 부분은 재사용된 사례로만 설명합니다. 재사용의 반대편에는 공통 모듈 결함이 두 사이트에 함께 영향을 줄 수 있다는 비용도 있습니다.
구조와 구현
같은 모듈을 조합해 사이트별 회원 서비스로 배포합니다
구현 범위 · 사용 기술
- 공통 모듈사이트와 무관하게 같은 의미를 갖는 회원 · 인증 기능
- 사이트별 모듈지마켓 · 옥션 각각의 정책
- 통합 모듈두 사이트를 함께 다루는 기능
- 조합 배포필요한 모듈을 묶어 사이트별 서비스로
- API 게이트웨이인증 · 권한 검증, 멀티테넌시 라우팅, 모니터링
돌아보면
사이트별 차이는 별도 모듈로 남기고 공통 기능을 조합해 배포하는 팀 구조에 맞춰 제휴·인증 모듈을 구현했습니다.
회사 프로젝트의 소스 코드는 공개하지 않습니다. 구조도는 업무 흐름을 설명하기 위한 개념도입니다.