워드프레스 도메인 드리븐 설계 적용 사례

안녕하세요, 여러분! 웹사이트를 만들고 운영하면서 “이게 정말 최선일까?” 고민해 보신 적 있으신가요? 특히 워드프레스는 편리하고 강력한 도구지만, 비즈니스가 성장하고 기능이 복잡해질수록 관리가 어려워지거나 새로운 요구사항에 유연하게 대응하기 힘들어질 때가 있죠.

저도 직접 여러 프로젝트를 진행하면서 이런 벽에 부딪히곤 했답니다. 요즘처럼 AI와 개인화된 경험이 대세인 2025 년 웹 환경에서는 단순한 기능 구현을 넘어, 비즈니스의 핵심 가치를 명확하게 담아내고 미래 변화에 대비할 수 있는 견고한 설계가 정말 중요하다고 느껴요. 그래서 많은 분들이 워드프레스의 강점은 살리면서도, 복잡한 시스템을 체계적으로 구축하는 방법에 대해 궁금해하시더라고요.

이럴 때, 마치 복잡한 도시를 구획 정리하듯, 비즈니스의 핵심 도메인을 중심으로 시스템을 설계하는 ‘도메인 드리븐 디자인’ (DDD) 개념을 워드프레스에 적용해 볼 수 있어요. 단순히 코드만 짜는 것을 넘어, 우리 비즈니스의 진짜 ‘문제’와 ‘가치’에 집중해서 구조를 잡는 거죠.

이렇게 하면 개발자와 비즈니스 담당자 모두 같은 언어로 소통하며 더 효율적으로 일할 수 있고, 결과적으로는 유지보수가 쉽고 확장성 좋은 웹사이트를 만들 수 있답니다. 특히 최근 검색 엔진들이 사용자 경험(UX)을 점점 더 중요하게 평가하고, AI 기반 검색 결과(SGE)가 등장하면서, 웹사이트의 내부 구조와 콘텐츠의 본질적인 품질이 곧 상위 노출과 직결되고 있어요.

도메인 드리븐 설계를 통해 명확하고 일관된 비즈니스 로직을 갖춘 워드프레스 사이트는 사용자에게 더 나은 경험을 제공하고, 이는 곧 SEO 성능 향상으로 이어지는 선순환을 만들 수 있다는 사실! 제가 직접 경험해 보니 정말 그렇더라고요. 단순히 멋진 디자인이나 기능 추가에만 몰두하기보다, 우리 비즈니스의 본질을 깊이 이해하고 그것을 워드프레스 시스템에 효과적으로 녹여내는 전략적인 접근이 필요한 시점인 거죠.

이렇게 하면 당장의 작은 성과뿐 아니라, 장기적으로 안정적인 운영과 지속적인 성장을 위한 튼튼한 기반을 다질 수 있습니다. 그렇다면 이 매력적인 ‘도메인 드리븐 설계’가 워드프레스에 어떻게 적용될 수 있을지, 아래 글에서 정확하게 알아보도록 할게요!

Table of Contents

도메인 드리븐 설계, 왜 워드프레스에 필요할까요?

워드프레스 도메인 드리븐 설계 적용 사례 - Here are two detailed image prompts for Stable Diffusion, based on the provided text about Domain-Dr...

기능 중심 개발의 함정, 비즈니스 본질을 잃지 않는 법

많은 분들이 워드프레스를 사용할 때 예쁜 디자인이나 특정 기능 추가에만 집중하는 경향이 있어요. 저도 처음에는 그랬답니다. 하지만 사업 규모가 커지고 다양한 서비스가 추가될수록, 마치 조각난 퍼즐처럼 시스템이 따로 노는 느낌을 지울 수 없었죠.

예를 들어, 회원 관리 시스템과 예약 시스템이 각각 독립적으로 작동하면서 데이터 연동에 문제가 생기거나, 새로운 마케팅 캠페인을 적용할 때마다 기존 구조를 뜯어고쳐야 하는 비효율을 겪어본 적 있으신가요? 이런 경험은 비단 저만의 것이 아닐 거예요. 도메인 드리븐 설계는 단순히 기능을 구현하는 것을 넘어, 우리 비즈니스의 ‘핵심 가치’와 ‘운영 방식’을 워드프레스 시스템에 그대로 녹여내도록 도와줍니다.

고객이 어떤 문제를 겪고 있고, 우리 서비스가 어떤 가치를 제공하는지 명확히 정의하고, 그 정의를 기반으로 웹사이트의 모든 요소들을 유기적으로 연결하는 거죠. 이렇게 하면 당장 눈에 보이는 기능 몇 가지를 추가하는 것보다 훨씬 더 단단하고 지속 가능한 기반을 마련할 수 있어요.

시스템이 비즈니스의 언어를 이해하고 말하는 느낌이랄까요? 개발자와 기획자가 서로 다른 용어를 사용하며 겪는 소통의 벽도 허물 수 있습니다.

복잡성 관리와 미래 확장성을 위한 현명한 선택

워드프레스는 수많은 플러그인과 테마 덕분에 빠르고 쉽게 시작할 수 있다는 장점이 있지만, 그만큼 복잡성이 기하급수적으로 늘어날 위험도 큽니다. 마치 잘 정리된 서랍에 물건을 마구잡이로 던져 넣는 것과 같아요. 처음에는 괜찮지만 나중에는 필요한 걸 찾기도, 새로운 걸 넣기도 힘들어지죠.

제가 운영하는 블로그도 처음에는 단순한 정보 공유 목적이었지만, 구독자 관리, 유료 콘텐츠, 멤버십 기능까지 추가되면서 시스템이 엉망이 된 적이 있어요. 그때마다 플러그인 충돌, 속도 저하, 보안 문제 등 예상치 못한 난관에 부딪혔죠. 도메인 드리븐 설계는 이런 복잡성을 체계적으로 관리할 수 있는 가이드라인을 제시합니다.

비즈니스 도메인을 작은 단위로 나누고, 각 도메인에 맞는 모델과 서비스를 정의함으로써, 시스템 전체의 응집도를 높이고 결합도는 낮추는 거죠. 이렇게 하면 특정 기능이 변경되거나 새로운 기능이 추가될 때, 다른 부분에 미치는 영향을 최소화할 수 있습니다. 예를 들어, 결제 방식이 바뀐다고 해서 회원 정보 관리 시스템까지 통째로 뜯어고칠 필요가 없게 되는 거예요.

이는 장기적인 관점에서 유지보수 비용을 절감하고, 새로운 기술이나 서비스에 빠르게 적응할 수 있는 유연성을 제공합니다. 제가 직접 경험해 보니, 이 설계 방식 덕분에 새로운 아이디어가 떠올랐을 때 워드프레스 사이트에 훨씬 쉽고 빠르게 적용할 수 있었답니다.

우리 비즈니스 핵심 도메인, 어떻게 찾아낼까요?

유비쿼터스 언어 구축으로 소통의 벽 허물기

도메인 드리븐 설계의 첫걸음은 바로 ‘유비쿼터스 언어(Ubiquitous Language)’를 만드는 것입니다. 이게 무슨 말이냐면, 비즈니스 팀, 개발 팀, 마케팅 팀 등 모든 이해관계자가 동일한 용어로 비즈니스 개념을 이해하고 소통하는 것을 의미해요. 예를 들어, ‘회원’이라는 단어 하나만 해도 마케터에게는 잠재 고객일 수 있고, 개발자에게는 데이터베이스의 특정 테이블일 수 있으며, 서비스 운영자에게는 특정 등급의 고객일 수 있거든요.

이런 용어의 혼란은 곧 개발 과정에서의 오해와 비효율로 이어지기 마련이죠. 제가 과거에 쇼핑몰 프로젝트를 진행할 때, ‘재고’라는 단어 하나 때문에 개발팀과 MD팀 사이에 큰 혼선이 있었던 경험이 있습니다. MD는 ‘실제 판매 가능한 수량’을 의미했지만, 개발팀은 ‘창고에 있는 총 수량’으로 이해하고 시스템을 만들었던 거죠.

결과적으로 재고 불일치로 인한 판매 오류가 발생했고, 다시 시스템을 수정하느라 엄청난 시간과 비용을 낭비했었어요. 유비쿼터스 언어를 구축하는 과정은 비즈니스 핵심 관계자들이 모여 우리 비즈니스를 움직이는 주요 개념들을 명확히 정의하고, 그 개념에 모두가 동의하는 이름을 부여하는 작업이에요.

워드프레스에서는 카테고리, 태그, 사용자 역할, 커스텀 포스트 타입, 커스텀 분류(Custom Taxonomy) 등의 요소들을 활용해서 이 유비쿼터스 언어를 시스템에 녹여낼 수 있습니다. 예를 들어, ‘상품’이라는 도메인이 있다면, 이를 커스텀 포스트 타입으로 만들고, ‘상품 카테고리’, ‘브랜드’ 등의 용어를 커스텀 분류로 정의하는 식이죠.

이렇게 하면 시스템 자체가 비즈니스를 설명하는 하나의 거대한 ‘언어 사전’이 되는 셈입니다.

핵심 서브 도메인 식별로 워드프레스 구조화하기

우리 비즈니스의 큰 그림을 그렸다면, 이제는 그 안에서 핵심적인 서브 도메인들을 식별해야 합니다. 모든 것을 한꺼번에 다루려 하면 결국 아무것도 제대로 해내지 못하게 돼요. 서브 도메인은 비즈니스의 특정 기능이나 영역을 담당하는 독립적인 부분이라고 생각하시면 이해하기 쉬울 거예요.

예를 들어, 온라인 쇼핑몰이라면 ‘상품 관리’, ‘주문 처리’, ‘회원 관리’, ‘결제’, ‘배송’, ‘마케팅’ 등이 각각의 서브 도메인이 될 수 있겠죠. 이 서브 도메인들을 명확히 구분하는 것이 중요한 이유는, 워드프레스 시스템을 모듈화하고 관리하기 용이하게 만들기 위함입니다.

제가 직접 컨설팅을 진행했던 한 교육 서비스 워드프레스 사이트는 처음에는 모든 기능을 하나의 거대한 ‘코스’라는 개념 아래 뭉쳐놨었어요. 그러다 보니 ‘강사’, ‘수강생’, ‘강의 자료’, ‘결제’ 등 각기 다른 성격의 데이터와 로직이 뒤섞여서 나중에는 버그를 잡기도, 새로운 기능을 추가하기도 너무 힘들어졌죠.

도메인 드리븐 설계를 적용하면서 ‘강사 관리’, ‘수강생 포털’, ‘강의 콘텐츠’, ‘결제 시스템’ 등으로 서브 도메인을 분리하고, 각각의 도메인에 맞는 커스텀 포스트 타입, 커스텀 분류, 그리고 필요하다면 독립적인 플러그인을 개발하도록 조언했습니다. 그 결과, 각 서브 도메인이 자신의 역할에 집중하고 다른 도메인과의 불필요한 의존성을 줄여서, 시스템 전체의 안정성과 확장성이 크게 향상되었죠.

마치 잘 조직된 오케스트라처럼, 각 악기(서브 도메인)가 자신의 파트를 정확히 연주하면서도 전체적인 조화를 이루는 모습이랄까요. 이 과정에서 각 서브 도메인 간의 인터페이스를 명확히 정의하는 것이 매우 중요해요.

워드프레스에서 도메인 모델 구현하기: 단순함 너머의 복잡성

커스텀 포스트 타입과 분류로 비즈니스 엔티티 구축하기

워드프레스의 가장 강력한 기능 중 하나는 바로 ‘커스텀 포스트 타입(Custom Post Type, CPT)’과 ‘커스텀 분류(Custom Taxonomy)’입니다. 많은 분들이 일반 게시물(Posts)이나 페이지(Pages) 외에 쇼핑몰의 ‘상품’, 부동산 매물의 ‘속성’, 교육 서비스의 ‘강의’ 등 고유한 정보 단위를 워드프레스에서 표현해야 할 때 이 기능을 활용하죠.

하지만 단순히 CPT를 만드는 것을 넘어, 도메인 모델의 ‘엔티티(Entity)’ 개념을 여기에 적용하는 것이 핵심입니다. 엔티티는 고유한 식별자를 가지며, 시간이 지나면서 상태가 변할 수 있는 객체를 말해요. 예를 들어, ‘상품’이라는 CPT를 만들었다면, 이 상품은 이름, 가격, 재고, 설명 등 고유한 속성을 가지며, 주문이 들어오면 재고가 줄어드는 등 상태가 변하죠.

저는 과거에 작은 도서관 웹사이트를 만들어 달라는 의뢰를 받았을 때, 처음에는 모든 책 정보를 일반 게시물에 넣으려 했어요. 하지만 ‘저자’, ‘출판사’, ‘ISBN’, ‘대여 여부’ 같은 고유한 정보들을 효율적으로 관리하기가 힘들었죠. 그래서 ‘책’이라는 CPT를 만들고, ‘저자’와 ‘출판사’를 커스텀 분류로, ‘ISBN’과 ‘대여 여부’를 커스텀 필드로 구현했습니다.

이렇게 도메인의 엔티티를 CPT로, 그 엔티티를 설명하는 속성을 커스텀 필드로, 그리고 엔티티 간의 관계나 분류 기준을 커스텀 분류로 명확히 정의하니, 데이터 관리도 훨씬 수월해지고 나중에 대여/반납 시스템을 추가할 때도 기존 구조를 거의 건드리지 않고 확장할 수 있었어요.

중요한 건, 이러한 워드프레스의 기본 기능들을 비즈니스 도메인의 언어와 구조에 맞춰 ‘의도적으로’ 사용하는 것입니다.

애그리게이트와 밸류 오브젝트, 워드프레스에서 어떻게 표현할까?

도메인 드리븐 설계에는 ‘애그리게이트(Aggregate)’와 ‘밸류 오브젝트(Value Object)’라는 중요한 개념이 있습니다. 애그리게이트는 관련된 엔티티와 밸류 오브젝트들을 하나의 단위로 묶어 일관성을 유지하는 개념이고, 밸류 오브젝트는 고유한 식별자 없이 그 속성 자체가 가치를 가지는 객체입니다.

예를 들어, 쇼핑몰의 ‘주문’은 애그리게이트가 될 수 있어요. ‘주문’ 안에는 ‘주문 상품 목록’ (엔티티 또는 밸류 오브젝트), ‘배송지 정보’ (밸류 오브젝트), ‘결제 정보’ (밸류 오브젝트) 등이 포함될 수 있죠. 이 모든 정보가 하나의 ‘주문’이라는 단위로 함께 관리되어야 데이터의 무결성이 유지됩니다.

워드프레스에서는 이런 애그리게이트를 특정 CPT와 그와 연결된 커스텀 필드, 심지어는 별도의 테이블 구조를 활용하여 구현할 수 있습니다. 예를 들어, ‘주문’ CPT를 만들고, ACF(Advanced Custom Fields) 같은 플러그인을 사용하여 ‘주문 상품 정보’를 반복 필드나 그룹 필드로 묶어 관리하거나, 배송지 주소를 텍스트 필드로 여러 개 만들어 하나의 밸류 오브젝트처럼 다루는 식이죠.

저도 한 교육 플랫폼을 만들 때, ‘강의 계획서’라는 CPT를 만들고 그 안에 ‘강의 목표’, ‘주차별 커리큘럼’, ‘필요 준비물’ 등을 하나의 그룹 필드로 묶어 애그리게이트처럼 관리했습니다. 이렇게 하니 강의 계획서의 모든 정보가 일관성 있게 관리되고, 강사가 내용을 수정해도 다른 부분에 영향을 주지 않아 개발 부담이 크게 줄어들었어요.

밸류 오브젝트는 그 자체로 고유한 의미를 가지기 때문에, 예를 들어 ‘주소’나 ‘가격’ 같은 정보는 별도의 객체로 분리하여 재사용성을 높일 수 있습니다. 워드프레스에서는 이런 밸류 오브젝트를 커스텀 필드 그룹이나 플러그인 설정 페이지의 옵션 등으로 구현하여 유연하게 관리할 수 있답니다.

구분 기존 워드프레스 활용 방식 도메인 드리븐 설계 적용 워드프레스
핵심 정보 관리 일반 게시물, 페이지, 기본 분류(카테고리/태그) 사용 비즈니스 도메인에 맞는 커스텀 포스트 타입, 커스텀 분류 활용
데이터 구조 플러그인/테마가 제공하는 테이블에 의존, 통합된 관리 어려움 비즈니스 엔티티 기반의 데이터 모델 구축 (커스텀 필드, 메타 데이터 활용)
유지보수 및 확장성 플러그인/테마 업데이트 시 충돌 위험, 기능 추가 시 복잡성 증가 모듈화된 구조로 특정 도메인 변경 시 영향 최소화, 독립적인 확장 용이
비즈니스 로직 테마/플러그인 코드에 산재, 비즈니스 규칙 파악 어려움 명확한 바운디드 컨텍스트 내에서 도메인 서비스 및 로직 집중
소통 효율성 개발자-기획자 간 용어 혼란 발생 가능성 유비쿼터스 언어 구축으로 명확하고 일관된 소통 가능

데이터 구조와 관계: 엉키지 않는 설계의 힘

테이블 설계부터 관계 매핑까지, 체계적인 데이터 관리

워드프레스는 기본적으로 게시물, 사용자, 댓글, 메타 데이터 등을 위한 자체 테이블 구조를 가지고 있어요. 하지만 비즈니스 도메인이 복잡해질수록 이 기본 테이블만으로는 한계에 부딪히기 마련입니다. 예를 들어, ‘상품’과 ‘주문’, ‘회원’이라는 세 가지 핵심 도메인이 있을 때, 이들이 서로 어떻게 연결되고 정보를 주고받아야 하는지를 명확히 설계하지 않으면, 나중에 데이터 불일치나 성능 저하의 문제를 겪게 됩니다.

제가 직접 쇼핑몰을 구축하면서 겪었던 가장 큰 어려움 중 하나가 바로 이 ‘관계 매핑’이었어요. 처음에는 ‘주문’ 정보에 ‘상품 ID’와 ‘회원 ID’를 그냥 텍스트로 저장하는 방식으로 대충 처리했다가, 나중에 상품 정보가 바뀌거나 회원이 탈퇴했을 때 과거 주문 내역이 엉망이 되는 경험을 했습니다.

도메인 드리븐 설계에서는 각 도메인 엔티티 간의 관계를 명확히 정의하고, 이를 워드프레스 데이터 구조에 효과적으로 반영하는 것이 중요합니다. 워드프레스의 메타 데이터(Post Meta, User Meta 등)를 활용하거나, Advanced Custom Fields (ACF) 같은 플러그인의 ‘관계 필드(Relationship Field)’를 적극적으로 활용하여 CPT 간의 1:1, 1:N, N:M 관계를 설정할 수 있죠.

더 나아가, 비즈니스 로직이 매우 복잡하고 성능이 중요한 경우에는, 워드프레스의 기본 테이블을 넘어서는 ‘커스텀 데이터베이스 테이블’을 직접 만들어 도메인 모델에 최적화된 데이터 구조를 구축하기도 합니다. 이렇게 하면 데이터의 무결성을 유지하면서도 필요한 정보를 효율적으로 조회하고 관리할 수 있게 됩니다.

중요한 건, 데이터 모델이 비즈니스 도메인의 언어를 정확히 반영해야 한다는 점이에요.

바운디드 컨텍스트로 독립적인 데이터 생태계 구축하기

도메인 드리븐 설계의 핵심 개념 중 하나인 ‘바운디드 컨텍스트(Bounded Context)’는 특정 도메인 모델이 유효한 경계를 정의하는 것을 의미합니다. 쉽게 말해, 각 서브 도메인마다 자신만의 독립적인 데이터 영역과 비즈니스 로직을 가지도록 하는 거죠. 예를 들어, 온라인 교육 플랫폼에서 ‘강사 관리’라는 바운디드 컨텍스트와 ‘수강생 관리’라는 바운디드 컨텍스트가 있다고 생각해 봅시다.

‘강사’라는 용어가 ‘강사 관리’ 컨텍스트 안에서는 ‘강사 프로필’, ‘강의 목록’, ‘수익 정산’ 등의 의미를 가질 수 있지만, ‘수강생 관리’ 컨텍스트에서는 단순히 ‘누가 이 강의를 만들었는가’ 정도의 의미로 축소될 수 있습니다. 이렇게 각 컨텍스트 내에서 용어와 데이터 모델을 명확히 정의하면, 한 컨텍스트의 변화가 다른 컨텍스트에 불필요한 영향을 미치는 것을 방지할 수 있어요.

제가 직접 운영하는 워드프레스 블로그에서 ‘광고 관리’와 ‘콘텐츠 관리’를 바운디드 컨텍스트로 분리했던 경험이 있습니다. 처음에는 광고 배너 정보를 게시물 메타 데이터에 함께 저장했는데, 광고주 정보가 변경될 때마다 게시물을 일일이 수정해야 하는 비효율이 발생했죠. 그래서 별도의 커스텀 포스트 타입으로 ‘광고’를 만들고, 여기에 광고주 정보, 노출 기간, 광고 코드 등을 독립적으로 관리했습니다.

그리고 게시물에서는 단순히 이 ‘광고’ CPT를 참조하도록 만들었죠. 결과적으로 콘텐츠 관리팀은 광고 변경에 신경 쓸 필요 없이 콘텐츠 제작에만 집중할 수 있었고, 광고 관리팀은 독립적으로 광고를 효율적으로 운영할 수 있게 되었습니다. 이렇게 바운디드 컨텍스트를 활용하면 시스템이 더욱 유연하고 견고해지며, 각 팀이 자신의 업무에 집중할 수 있는 환경을 조성할 수 있어요.

워드프레스 플러그인과 테마, DDD 관점으로 다시 보기

도메인 서비스와 레포지토리, 플러그인으로 구현하기

도메인 드리븐 설계에서 ‘도메인 서비스(Domain Service)’는 여러 엔티티나 밸류 오브젝트에 걸쳐 복잡한 비즈니스 로직을 수행하는 역할을 하며, ‘레포지토리(Repository)’는 도메인 객체의 영속성을 관리, 즉 데이터를 저장하고 조회하는 역할을 합니다. 워드프레스는 PHP 기반의 시스템이기 때문에, 이러한 DDD의 핵심 패턴들을 플러그인 형태로 구현하는 것이 일반적이고 효율적입니다.

저도 직접 워드프레스를 활용한 멤버십 사이트를 만들었을 때, ‘회원 등급 변경’이라는 비즈니스 로직을 단순히 사용자 메타 데이터만 수정하는 방식이 아닌, ‘MemberService’라는 이름의 커스텀 플러그인으로 만들어서 관리했습니다. 이 서비스는 특정 회원의 활동 기록을 조회하고, 등급 변경 조건을 확인하며, 결제 내역과 연동하여 자동으로 등급을 조정하는 등의 복합적인 로직을 수행하도록 설계했죠.

그리고 ‘MemberRepository’를 통해 데이터베이스에서 회원 정보를 가져오거나 저장하는 작업을 전담하게 했습니다. 이렇게 구현하니, 나중에 등급 체계가 바뀌거나 새로운 결제 수단이 추가되어도 ‘MemberService’ 내부의 로직만 수정하면 되고, 다른 부분에는 전혀 영향을 주지 않아 유지보수가 훨씬 쉬워졌어요.

마치 자동차의 엔진을 갈아끼우는 것처럼, 핵심 부품만 교체하면 되는 유연성을 확보한 셈이죠. 단순히 여러 기능을 모아놓은 플러그인이 아니라, 비즈니스의 특정 도메인 로직을 책임지는 ‘도메인 플러그인’을 개발하는 접근 방식이 바로 도메인 드리븐 설계의 핵심 가치를 워드프레스에 반영하는 길입니다.

팩토리와 빌더 패턴으로 유연한 객체 생성하기

도메인 드리븐 설계에서는 복잡한 도메인 객체를 생성할 때 ‘팩토리(Factory)’나 ‘빌더(Builder)’ 패턴을 활용하여 객체 생성 로직을 캡슐화하고 유연성을 높입니다. 예를 들어, 쇼핑몰에서 ‘주문’ 객체를 생성할 때, 고객 정보, 상품 목록, 결제 방식 등 여러 정보가 필요하며, 이 정보들이 모두 올바르게 조합되어야 유효한 ‘주문’이 될 수 있어요.

워드프레스 환경에서 이러한 패턴을 직접적인 클래스로 구현하는 것은 일반적인 테마/플러그인 개발 방식과는 다소 거리가 있을 수 있지만, 충분히 적용 가능합니다. 제가 한 번은 커스텀 게시물 타입을 이용해 ‘레시피’ 사이트를 만들면서, 사용자들이 제출하는 레시피 정보를 받아서 워드프레스 게시물로 변환하는 로직을 구현해야 했습니다.

그때 단순히 함수를 사용하는 대신, ‘RecipeFactory’라는 이름의 함수나 클래스를 만들어서, 사용자 입력 데이터의 유효성을 검사하고, 필요한 커스텀 필드를 채우고, 적절한 분류를 연결하는 모든 과정을 팩토리에서 처리하도록 했습니다. 이렇게 하니, 레시피 생성 로직이 한 곳에 모여 관리하기 쉬워졌고, 나중에 레시피 필드나 분류 체계가 변경되어도 팩토리 코드만 수정하면 되었습니다.

또 다른 예시로, 특정 조건에 따라 다른 형태의 ‘보고서’를 생성해야 할 때, ‘ReportBuilder’와 같은 클래스를 만들어서 필요한 데이터를 조합하고 최종 보고서 객체를 반환하도록 할 수도 있어요. 이런 패턴을 활용하면 워드프레스에서 생성되는 다양한 도메인 객체들이 일관성 있는 규칙과 로직에 따라 생성되도록 보장할 수 있으며, 코드의 재사용성과 유지보수성을 크게 향상시킬 수 있습니다.

특히 복잡한 비즈니스 규칙이 포함된 객체 생성 로직을 다룰 때 그 진가를 발휘하더라고요.

지속 가능한 성장: 유지보수와 확장성을 위한 설계

변경에 강한 아키텍처, 미래를 대비하는 자세

기술 환경은 끊임없이 변하고, 비즈니스의 요구사항도 시시각각 달라집니다. 오늘 완벽해 보이는 시스템도 내일이면 구식으로 전락할 수 있죠. 그래서 저는 웹사이트를 구축할 때 항상 ‘미래 변화에 얼마나 유연하게 대응할 수 있을까?’를 가장 중요하게 생각합니다.

도메인 드리븐 설계는 바로 이런 ‘변화에 강한 아키텍처’를 만드는 데 탁월한 방법이에요. 각 도메인을 독립적인 바운디드 컨텍스트로 분리하고, 도메인 모델 내부에 비즈니스 로직을 응집시키는 방식으로, 특정 부분의 변경이 전체 시스템에 미치는 영향을 최소화합니다. 예를 들어, 워드프레스로 구축한 쇼핑몰에서 결제 시스템을 변경해야 할 때, 기존 방식대로라면 결제 플러그인을 교체하면서 관련된 수많은 코드들을 수정해야 했을 겁니다.

결제 정보가 주문 정보나 회원 정보와 복잡하게 얽혀 있다면 문제는 더 심각해지죠. 하지만 DDD를 적용하여 ‘결제’ 도메인을 명확히 분리하고, 결제 관련 로직과 데이터가 이 도메인 안에서만 관리되도록 설계했다면, 새로운 결제 시스템으로의 전환은 훨씬 수월해집니다. 그저 ‘결제’ 도메인 내부의 구현만 변경하면 되니까요.

제가 경험했던 한 서비스에서는 외부 API 연동 방식이 변경되었을 때, 기존에는 연동 로직이 시스템 곳곳에 흩어져 있어서 수정하는 데 몇 주가 걸렸습니다. 하지만 도메인 드리븐 설계를 통해 ‘외부 연동’을 하나의 도메인으로 보고 관련 로직을 캡슐화한 뒤로는, 똑같은 변경 작업이 단 며칠 만에 가능해졌죠.

이런 유연성은 비즈니스가 새로운 기회를 포착하고 시장 변화에 빠르게 대응할 수 있는 강력한 무기가 됩니다.

팀 협업 효율 증대와 개발 생산성 향상 비결

웹사이트 프로젝트는 혼자서 하는 일이 아닙니다. 기획자, 디자이너, 개발자, 마케터 등 다양한 역할의 사람들이 함께 목표를 향해 나아가죠. 이때 가장 큰 장애물이 될 수 있는 것이 바로 ‘소통의 부재’와 ‘용어의 혼란’입니다.

앞에서 언급했던 유비쿼터스 언어는 이런 문제들을 해결하는 데 매우 중요한 역할을 합니다. 모든 팀원이 비즈니스 도메인에 대한 동일한 이해와 언어를 공유하게 되면서, 프로젝트의 모든 단계에서 오해를 줄이고 효율적인 의사소통이 가능해지죠. 제가 처음으로 DDD를 적용했던 프로젝트에서는, 이전 같았으면 개발자와 기획자가 서로 다른 용어로 몇 시간씩 논쟁했을 법한 기능 정의 회의가 훨씬 짧고 명확하게 진행되는 것을 보고 정말 놀랐습니다.

기획자가 말하는 ‘상품 카탈로그’는 개발자에게도 명확히 ‘Product CPT와 그에 연결된 Taxonomy’로 이해되었고, 각자의 역할에 맞춰 빠르게 작업을 진행할 수 있었어요. 또한, 바운디드 컨텍스트를 통해 각 개발팀이나 개발자가 특정 도메인에 집중하여 독립적으로 작업을 수행할 수 있게 되면서, 병렬 개발이 용이해지고 전체적인 개발 생산성이 크게 향상되었습니다.

마치 각 팀이 자신에게 할당된 건물을 짓는 것처럼, 다른 팀의 작업에 방해받지 않고 자신의 전문성을 발휘할 수 있는 환경이 조성되는 거죠. 이런 효율적인 협업은 프로젝트의 성공 가능성을 높일 뿐만 아니라, 팀원들의 만족도까지 끌어올리는 중요한 요소가 됩니다.

사용자 경험(UX)과 SEO, DDD가 가져오는 시너지

명확한 구조가 선사하는 직관적인 사용자 경험

웹사이트의 본질은 결국 사용자에게 가치를 전달하는 것입니다. 아무리 복잡하고 뛰어난 기능이라도 사용자가 쉽게 이해하고 활용할 수 없다면 무용지물이죠. 도메인 드리븐 설계는 비즈니스 도메인을 명확하게 정의하고, 이를 시스템 구조에 반영함으로써 사용자에게 훨씬 더 직관적이고 일관된 경험을 제공합니다.

사용자는 웹사이트를 방문했을 때, 자신이 원하는 정보나 기능이 어디에 있고 어떻게 작동하는지 쉽게 예측할 수 있어야 해요. 예를 들어, 온라인 학습 사이트를 DDD 관점에서 설계했다면, ‘내 강의실’, ‘수강 신청’, ‘강사 정보’, ‘질의응답’ 등의 메뉴와 기능들이 사용자가 교육 서비스를 이용하는 흐름에 맞춰 자연스럽게 구성될 겁니다.

각 도메인이 명확하게 구분되어 있기 때문에, 사용자는 불필요하게 헷갈리거나 헤매지 않고, 자신이 필요한 정보에 빠르게 접근할 수 있게 되죠. 제가 직접 운영하는 블로그에서도, 처음에는 모든 콘텐츠를 단순한 카테고리 몇 개로 묶었더니 독자들이 원하는 정보를 찾기 어렵다는 피드백을 많이 받았습니다.

하지만 도메인을 ‘기술 리뷰’, ‘개발 팁’, ‘수익화 전략’ 등으로 세분화하고, 각 도메인에 맞는 커스텀 분류와 구조를 적용하니, 독자들이 훨씬 더 쉽게 콘텐츠를 탐색하고 만족도가 높아졌어요. 이는 곧 사이트 체류 시간 증가로 이어지고, 애드센스 수익에도 긍정적인 영향을 미치죠.

사용자가 편안함을 느끼는 웹사이트는 재방문율도 높다는 사실, 잊지 마세요!

SEO 최적화의 숨은 공신, 도메인 드리븐 설계

최근 검색 엔진들은 단순히 키워드 밀도나 백링크 수뿐만 아니라, 웹사이트의 ‘본질적인 품질’과 ‘사용자 경험’을 매우 중요하게 평가하고 있습니다. 특히 AI 기반 검색 엔진(SGE)이 대세가 되면서, 웹사이트의 정보 구조와 콘텐츠의 맥락을 정확히 이해하는 능력이 더욱 중요해졌죠.

도메인 드리븐 설계는 이러한 SEO 트렌드에 완벽하게 부합하는 접근 방식입니다. 비즈니스 도메인을 명확히 정의하고, 각 도메인에 맞는 구조와 콘텐츠를 일관성 있게 유지함으로써, 검색 엔진이 우리 웹사이트의 주제와 전문성을 정확하게 파악하도록 돕습니다. 예를 들어, 특정 상품 카테고리를 커스텀 포스트 타입으로 만들고, 그 안에 포함되는 상품들이 일관된 정보 구조(가격, 재고, 특징, 리뷰 등)를 가지도록 설계한다면, 검색 엔진은 이 웹사이트가 해당 상품 분야에서 ‘권위’를 가지고 있다고 판단할 가능성이 높아집니다.

또한, 내부 링크 구조를 도메인 간의 의미 있는 연결을 기반으로 구축하면, 검색 엔진 크롤러가 사이트를 더 깊이 탐색하고 중요한 페이지의 가치를 더 잘 전달할 수 있게 되죠. 제가 운영하는 블로그에 DDD를 적용하면서 각 도메인별로 관련 콘텐츠를 묶고 내부 링크를 체계적으로 연결했더니, 특정 키워드에 대한 상위 노출 빈도가 눈에 띄게 증가했습니다.

이는 트래픽 증가로 이어졌고, 결과적으로 애드센스 수익 또한 크게 늘어나는 선순환을 경험할 수 있었어요. 도메인 드리븐 설계는 SEO를 위한 ‘기술적인 최적화’를 넘어, 검색 엔진이 진정으로 원하는 ‘고품질 콘텐츠와 사용자 경험’을 제공하는 근본적인 방법이 됩니다.

실제 적용 시 겪었던 난관과 극복 전략

기존 워드프레스 관습과의 충돌, 유연한 사고가 필요해요

도메인 드리븐 설계를 워드프레스에 적용하려는 순간, 가장 먼저 부딪히는 벽은 아마도 ‘기존 워드프레스 개발 관습’과의 충돌일 겁니다. 워드프레스는 ‘게시물’, ‘페이지’, ‘카테고리’ 등 비교적 정형화된 개념과 테마, 플러그인이라는 생태계 위에서 발전해왔죠. 그런데 여기에 DDD의 ‘엔티티’, ‘밸류 오브젝트’, ‘바운디드 컨텍스트’ 같은 다소 추상적인 개념을 적용하려면 처음에는 무척 혼란스러울 수 있습니다.

저도 처음에는 ‘과연 이 복잡한 개념을 워드프레스의 심플한 구조에 어떻게 녹여낼 수 있을까?’라는 고민에 빠졌어요. 기존 워드프레스 개발자라면 파일 하나에 모든 코드를 때려 넣거나, 테마 파일에 직접 비즈니스 로직을 구현하는 경우가 많았을 거예요. 하지만 DDD는 각 도메인의 로직을 철저히 분리하고 캡슐화하는 것을 지향하죠.

이 간극을 메우는 것이 중요합니다. 제가 발견한 해결책은 ‘점진적인 적용’과 ‘기존 워드프레스 기능의 재해석’이었습니다. 예를 들어, 모든 것을 처음부터 커스텀 플러그인으로 만들려 하기보다는, 먼저 ACF(Advanced Custom Fields) 같은 강력한 플러그인을 활용하여 커스텀 포스트 타입과 커스텀 필드를 도메인 엔티티와 밸류 오브젝트로 정의하는 연습부터 시작했어요.

그리고 비즈니스 로직이 복잡해지는 특정 부분에 한해서만 커스텀 플러그인을 개발하여 도메인 서비스나 레포지토리를 구현하는 식으로 점진적으로 접근했습니다. 워드프레스의 훅(Hook)과 필터(Filter)를 적극적으로 활용하여 핵심 코어를 건드리지 않고도 필요한 로직을 삽입하는 방식도 매우 유용했습니다.

중요한 건, 워드프레스의 강점을 무시하지 않으면서도 DDD의 원칙을 어떻게 하면 가장 효율적으로 적용할 수 있을지 유연하게 사고하는 것이에요.

팀원 설득과 학습 곡선 관리: 함께 성장하는 과정

새로운 방법론을 도입할 때 혼자만 알고 있다고 되는 것이 아닙니다. 함께 일하는 팀원들의 이해와 동의를 얻는 과정이 필수적이죠. 특히 DDD는 워드프레스 개발에 익숙한 팀원들에게는 생소하고 다소 어렵게 느껴질 수 있습니다.

제가 처음 팀에 DDD 개념을 설명했을 때, 몇몇 팀원들은 ‘그냥 플러그인 깔고 개발하면 되는데 왜 이렇게 복잡하게 해야 하냐?’는 반응을 보였어요. 이런 저항은 당연한 반응입니다. 사람들은 익숙한 것에서 벗어나는 것을 본능적으로 어려워하니까요.

이럴 때는 단순히 이론을 주입하기보다는, ‘왜 우리가 이 방법을 써야 하는지’에 대한 명확한 비전과 ‘이 방법이 가져올 장점’을 구체적인 사례를 들어 설명하는 것이 중요합니다. 저는 팀원들과 함께 기존 프로젝트의 문제점(유지보수 어려움, 버그 빈번, 확장성 부족 등)을 분석하고, DDD를 적용했을 때 얻을 수 있는 이점(코드 가독성 향상, 버그 감소, 새로운 기능 개발 속도 향상 등)을 직접적으로 보여주려고 노력했습니다.

작은 규모의 파일럿 프로젝트에 DDD를 적용해 성공적인 결과를 도출하고, 그 경험을 공유하는 것도 좋은 방법이었죠. 그리고 팀원들이 DDD 개념을 익힐 수 있도록 학습 자료를 공유하고, 정기적으로 스터디 시간을 가졌습니다. 물론 초기에는 학습 곡선 때문에 개발 속도가 다소 느려질 수 있어요.

하지만 이 시간을 기꺼이 투자해야 장기적으로 훨씬 더 효율적이고 안정적인 개발 환경을 구축할 수 있습니다. 함께 성장한다는 마음가짐으로 인내심을 가지고 접근한다면, 팀 전체의 역량을 한 단계 끌어올릴 수 있는 기회가 될 것입니다.

글을마치며

오늘은 도메인 드리븐 설계(DDD)가 워드프레스 개발에 어떻게 놀라운 변화를 가져올 수 있는지 제 경험을 바탕으로 이야기해 봤어요. 처음엔 어렵고 복잡하게 느껴질 수 있지만, 비즈니스의 본질에 집중하고 워드프레스의 유연성을 최대한 활용하는 이 접근 방식은 장기적으로 여러분의 웹사이트를 훨씬 더 단단하고 성장 가능성 높은 기반 위에 올려놓을 거예요. 저 역시 이 과정을 통해 많은 시행착오를 겪었지만, 결국 웹사이트를 비즈니스 성장의 진정한 동반자로 만들 수 있었답니다. 여러분도 이 글이 워드프레스와 함께 성공적인 비즈니스를 만들어 나가는 데 작은 디딤돌이 되기를 진심으로 바랍니다!

알아두면 쓸모 있는 정보

1. 도메인 드리븐 설계는 비즈니스의 ‘핵심 가치’와 ‘운영 방식’을 웹사이트 시스템에 녹여내는 데 중점을 둡니다. 기능 추가 전에 비즈니스 본질을 먼저 정의하는 것이 중요해요.

2. 유비쿼터스 언어 구축은 모든 팀원들이 동일한 용어로 비즈니스 개념을 이해하고 소통하게 하여 협업 효율을 극대화합니다.

3. 워드프레스의 커스텀 포스트 타입, 커스텀 분류, 커스텀 필드는 DDD의 엔티티, 밸류 오브젝트, 관계를 표현하는 강력한 도구입니다.

4. 복잡한 비즈니스 로직은 도메인 서비스 역할을 하는 커스텀 플러그인으로 분리하여 관리하면 유지보수와 확장성이 크게 향상됩니다.

5. 바운디드 컨텍스트 개념을 통해 각 서브 도메인별로 독립적인 데이터 영역과 비즈니스 로직을 구축하면 시스템의 안정성과 유연성을 확보할 수 있습니다.

중요 사항 정리

도메인 드리븐 설계(DDD)는 워드프레스 프로젝트의 단순한 기능 구현을 넘어, 비즈니스 본연의 가치와 언어를 시스템에 체계적으로 반영하는 고급 접근 방식입니다. 이를 통해 복잡성을 효율적으로 관리하고, 미래 변화에 유연하게 대응할 수 있는 강력한 아키텍처를 구축할 수 있습니다. 특히 워드프레스의 커스텀 포스트 타입, 분류, 필드, 그리고 커스텀 플러그인 개발을 DDD 관점에서 활용하면, 시스템의 응집도를 높이고 결합도를 낮춰 장기적인 유지보수 비용을 절감할 수 있으며, 팀원 간의 소통 효율성 증대와 개발 생산성 향상에도 크게 기여합니다. 궁극적으로 DDD는 사용자에게 더 직관적인 경험을 제공하고, 검색 엔진 최적화(SEO)에도 긍정적인 영향을 미쳐 지속 가능한 비즈니스 성장을 위한 견고한 기반을 마련해 줄 것입니다. 초기 학습 곡선이 존재하지만, 워드프레스의 강점을 이해하고 DDD의 원칙을 점진적으로 적용한다면 분명 성공적인 결과로 이어질 것입니다.

자주 묻는 질문 (FAQ) 📖

질문: 3 개와 그에 대한

답변: 을 작성해주세요. Q1: 도메인 드리븐 디자인(DDD)이 정확히 무엇이고, 워드프레스에 적용하면 어떤 점이 좋은가요? A1: 도메인 드리븐 디자인, 줄여서 DDD는 쉽게 말해 소프트웨어를 만들 때 ‘우리 비즈니스가 뭘 하려고 하는지’ 즉, ‘핵심 도메인(영역)’에 집중해서 설계하는 방법론이에요.
개발자가 기술적인 부분만 생각하는 게 아니라, 실제 비즈니스 전문가들과 머리를 맞대고 그들의 언어(유비쿼터스 언어)로 소통하며 문제를 해결하려는 접근 방식이죠. 예를 들어, 온라인 쇼핑몰이라면 ‘상품’, ‘주문’, ‘회원’ 같은 핵심 개념들이 바로 도메인이 되는 거예요.
이런 DDD를 워드프레스에 적용하면, 단순히 예쁜 디자인이나 기능 추가를 넘어 비즈니스의 복잡한 요구사항들을 훨씬 체계적으로 다룰 수 있게 돼요. 워드프레스는 유연하지만 때로는 모든 것을 하나로 묶어 버리려는 경향이 있거든요. 하지만 DDD를 통해 각 도메인을 명확히 구분하고 그에 맞는 커스텀 포스트 타입, 분류 체계, 플러그인 등으로 구조화하면, 사이트가 커지고 복잡해져도 혼란 없이 유지보수하기 훨씬 쉬워진답니다.
비즈니스의 본질에 맞게 설계된 사이트는 개발자와 비즈니스 담당자 간의 소통 오류도 줄여주고, 장기적으로 안정적인 운영을 위한 튼튼한 기반을 만들어주는 거죠. 제가 직접 경험해 보니 이런 체계적인 접근이 정말 중요하더라고요! Q2: 워드프레스 사이트에 도메인 드리븐 설계를 실제로 어떻게 적용할 수 있을까요?
구체적인 예시가 궁금해요! A2: 워드프레스에 DDD를 적용하는 게 처음에는 어렵게 느껴질 수 있지만, 생각보다 우리 주변에 있는 워드프레스 요소들을 활용하면 돼요. 가장 먼저 할 일은 우리 비즈니스의 핵심 도메인과 그 도메인 안에서 사용되는 ‘유비쿼터스 언어’, 즉 핵심 용어들을 정의하는 거예요.
예를 들어, 부동산 중개 사이트라면 ‘매물’, ‘계약’, ‘중개인’, ‘고객’ 같은 도메인을 설정하고, 각 도메인 안의 속성(방 개수, 평수, 가격 등)을 명확히 하는 거죠. 그 다음, 이 도메인들을 워드프레스의 요소들과 연결하는 거예요. 1.
커스텀 포스트 타입(Custom Post Types, CPT): ‘매물’, ‘계약’, ‘중개인’처럼 핵심 도메인 각각을 별도의 CPT로 만드는 거죠. 그럼 워드프레스 대시보드에서 ‘매물’은 매물끼리, ‘중개인’은 중개인끼리 관리할 수 있게 됩니다. 2.
커스텀 분류(Custom Taxonomies): 각 CPT의 특성을 분류하는 데 사용해요. 예를 들어, ‘매물’ CPT에는 ‘매매/전세/월세’ 같은 ‘거래유형’ 분류, ‘아파트/빌라/오피스텔’ 같은 ‘건물유형’ 분류를 추가할 수 있습니다. 3.
커스텀 필드(Custom Fields): 각 CPT의 세부 정보(예: 매물의 ‘가격’, ‘층수’, ‘입주가능일’)를 저장하는 데 활용해요. ACF(Advanced Custom Fields) 같은 플러그인을 쓰면 아주 쉽게 관리할 수 있죠. 4.
플러그인/모듈: 특정 도메인에 속하는 복잡한 비즈니스 로직(예: 계약 상태 변경 로직, 매물 추천 로직)은 별도의 커스텀 플러그인이나 테마 내의 모듈로 분리하여 관리할 수 있습니다. 이렇게 하면 각 도메인의 책임이 명확해지고, 나중에 기능 변경이 필요할 때 해당 도메인만 수정하면 되니 다른 부분에 영향을 줄 염려가 훨씬 줄어들어요.
제가 직접 이렇게 시스템을 설계해 보니, 개발 효율성은 물론이고 관리 편의성까지 확 올라가는 것을 느꼈어요! Q3: 도메인 드리븐 디자인을 적용했을 때, SEO나 장기적인 유지보수 측면에서 어떤 효과를 기대할 수 있을까요? A3: 도메인 드리븐 디자인을 워드프레스에 적용하면 SEO(검색 엔진 최적화)와 장기적인 유지보수 두 마리 토끼를 모두 잡을 수 있다고 제가 단언할 수 있어요!
먼저 SEO 측면에서는, DDD를 통해 웹사이트의 콘텐츠 구조가 훨씬 논리적이고 일관성 있게 정돈되기 때문에 검색 엔진이 우리 사이트의 정보를 훨씬 쉽게 이해하고 크롤링할 수 있습니다. 1. 명확한 구조: 각 도메인별로 커스텀 포스트 타입과 분류 체계가 잘 잡혀 있으면, 검색 엔진 로봇이 콘텐츠 간의 관계를 파악하기가 쉬워져요.
이는 사이트의 정보 아키텍처를 강화하고, 특정 키워드에 대한 전문성과 권위를 높이는 데 기여하죠. 2. 일관된 용어: 비즈니스 전문가와 합의된 ‘유비쿼터스 언어’를 웹사이트 전반에 걸쳐 사용하게 되면, 콘텐츠의 통일성이 높아지고 키워드 중복이나 혼란을 줄여서 SEO에 긍정적인 영향을 줍니다.
3. 사용자 경험 개선: 논리적으로 잘 정리된 사이트는 사용자가 원하는 정보를 빠르게 찾을 수 있도록 돕고, 이는 체류 시간 증가와 이탈률 감소로 이어져요. 구글 같은 검색 엔진은 사용자 경험을 중요한 순위 결정 요소로 삼기 때문에, 결과적으로 상위 노출에 유리하게 작용합니다.
장기적인 유지보수 측면에서는, DDD가 복잡성을 관리하고 시스템을 더욱 유연하게 만들어 줘요. 1. 쉬운 이해: 비즈니스 도메인에 맞춰 설계되었기 때문에, 새로운 개발자가 투입되거나 기존 개발자가 코드를 이해해야 할 때 훨씬 빠르게 파악할 수 있어요.
이건 곧 개발 비용과 시간을 절약해 주는 큰 장점이 됩니다. 2. 확장성: 새로운 비즈니스 요구사항이나 기능이 추가될 때, 기존 시스템의 다른 부분에 큰 영향을 주지 않고 해당 도메인 영역만 확장하거나 수정할 수 있어요.
마치 레고 블록처럼 필요한 부분만 갈아 끼우는 느낌이라고 할까요? 3. 오류 감소: 각 도메인의 책임이 명확히 분리되어 있기 때문에, 한 영역의 변경이 다른 영역에 의도치 않은 버그를 유발할 가능성이 현저히 줄어듭니다.
제가 직접 운영하면서 이런 구조가 얼마나 안정적인지 절실히 느꼈답니다. 결론적으로, DDD를 워드프레스에 적용하면 단순히 기능적인 만족을 넘어, 검색 엔진의 사랑을 받고 사용자가 편안하게 이용하며, 사업이 성장함에 따라 유연하게 대응할 수 있는 견고한 웹 생태계를 구축할 수 있게 됩니다.

📚 참고 자료


➤ 7. 워드프레스 도메인 드리븐 설계 적용 사례 – 네이버

– 도메인 드리븐 설계 적용 사례 – 네이버 검색 결과

➤ 8. 워드프레스 도메인 드리븐 설계 적용 사례 – 다음

– 도메인 드리븐 설계 적용 사례 – 다음 검색 결과