DDD (도메인 주도 설계)

2013.07.19 13:56

가을의 곰을... 조회 수:2705

DDD (도메인 주도 설계)                                                                                     

소프트웨어는 현실 세계의 프로세스를 자동화하거나 비즈니스 문제를 해결하기 위해 개발된다. 

 

자동화된 비즈니스 프로세스나 현실 세계의 문제가 바로 소프트웨어 도메인이다.

소프트웨어는 도메인으로부터 시작되고 떼려야 뗄 수 없는 관계를 가지고 있음을 이해해야 한다.

 

소프트웨어 프로젝트를 시작할 때 우리는 그 소프트웨어가 동작해야 하는 도메인에 집중해야 한다.

소프트웨어의 전반적인 목적은 특정 도메인의 일이 더 잘 굴러가도록 하는 데 있기 때문이다.

따라서 소프트웨어는 도메인을 모델링해야 한다.

 

DDD는 도메인의 가치를 최우선시하는 모델링 기법이라 볼 수 있다. 

도메인 주도 설계는 설계와 개발 방식을 연관 지어, 설계와 개발이 더 나은 해결책을 도출하는 데 어떻게 함께 작동할 수 있는지 보여준다.

1. 좋은 설계는 개발을 가속화하고

2. 동시에 개발 프로세스에서 받는 피드백이 설계를 더욱 강화한다.

 

DDD는 소프트웨어 전문가와 도메인 전문가 사이의 의사소통의 장벽을 허무는것에서 시작한다.

개발자는 클래스, 메서드, 알고리즘, 패턴 등으로 마음속이 가득차 있고 늘 현실 세계를 프로그램으로 매핑하려는 경향을 지닌다.

개발자는 객체지향 프로그래밍 관점에서 상속, 다형성 등을 생각하고 항상 그런 식으로 말하기를 좋아한다.

그러나 도메인 전문가는 보통 이러한 개념들에 대해 생소하다. 자신의 특화된 분야에 대해서만 알 뿐이다.

그리고 이러한 것들을 외부인들이 이해하기 어려운 자신들만의 전문용어로 이야기한다.

 

이러한 의사소통 방식의 차이를 극복하려면 우리는 모델을 만들 때,

1. 모델에 대한 아이디어

2. 포함되어야 할 요소

3. 그것들을 어떻게 연결할 것인지

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

4. 어떤 것들이 관계가 있고 어떤 것들은 관계가 없는지

와 같은 정보를 교환해야만 한다.

이 수준에서 이루어지는 의사소통이 프로젝트가 성공하는 데 가장 중요하다.

따라서 우리는 모델을 이야기하고 정의할 때 같은 언어로 말할 필요가 있다.

 

도메인 주도 설계의 핵심 원칙은 모델 기반의 언어를 사용하는 것에 있다.

모델은 소프트웨어와 도메인이 서로 교차하는 지점이기 때문에 모델 기반 언어를 사용하는 것이 적절하다.

이러한 관점에서 이 언어를 DDD에서는 유비쿼터스 언어라 부른다.

 

DDD에서는 설계 단계에서 도출된 원본 모델이 최종 구현까지 그대로 이어지기를 소망한다.

일반적인 분석 모델은 도메인을 이해하기 위해서만 사용된다. 분석 모델은 설계 원리들을 염두에 두고 만들어진 것이 아니기 때문에

분석 모델을 가지고 설계 작업을 수행하기란 쉽지 않다. 개발자들은 분석 모델에 적응하거나 아니면 모델과 별개의 설계를 하게 된다.

그러면 모델과 코드 사이에는 더 이상 매핑 관계가 존재하지 않게 되며 분석 모델은 코딩이 시작되자마자 곧바로 폐기되고 만다.

이것이 무엇을 의미하냐 하면 도메인에 대한 분석가들의 지식이 일부 사라질 수 있다는 의미이다.

 

DDD는 개발자들이 분석가들의 회의에 함께 참여하고, 코드를 설계하기 전에 도메인과 모델을 명확하고도 완전하게 이해하기를

권고한다. 도메인 모델링과 설계를 밀접하게 관련시키는 것이다. 모델이란 소프트웨어 그 자체와 설계 고려 사항에 초점을 맞추어

만들어져야 하며, 개발자들은 모델링 프로세스가 진행되는 동안 함께 참여해야 한다.

여기서 중요한 점은 설계 작업이 직관적이면서 모델을 기반으로 수해되도록 소프트웨어로 정확하게 표현할 수 있는 모델을 선택하자는 것이다.

코드와 기반이 되는 모델을 밀접하게 연관시킴으로써 코드에 의미가 생기고 모델은 실제적으로 중요한 가치를 지니게 된다.

 

DDD는 기본적으로 사용자들이 밀접하게 관계되어 있는 도메인 이슈에 집중해야 한다는 원칙에 기반을 둔다.

도메인이란 우리가 이해하기 위해 혼신의 힘을 다해야만 하는 가장 중요한 부분이고, 전문가들에게는 개념적 형태로 표현해 내기 위해 힘써서 협동해야 할 대상이다.

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
258 데이터분석에서 어떻게 원하는 결과를 얻을 것인가? 가을의 곰을... 2013.11.23 1685
257 [PMO] CIO 의 신규 IT프로젝트 예산 확보 가을의 곰을... 2013.11.23 2168
256 [GIT 사용법] Git Tutorial 가을의 곰을... 2013.10.27 2766
255 3D 프린팅은 어떻게 소비 문화를 바꾸는가_KIDP.pdf file 가을의 곰 2013.10.14 2300
254 [퍼온글]프로토콜 설계의 개요 컴퓨터 가을의 곰을... 2013.09.05 2785
253 BitTorrent Protocol -- BTP/1.0 가을의 곰을... 2013.09.05 3147
252 Linux 시스템 백업과 복원 가을의 곰을... 2013.09.03 2523
251 JSON 이란? 가을의 곰을... 2013.08.14 7203
250 동향분석I-6-2013년_IT기술_트렌드_방향과_쟁점.pdf file 가을의 곰을... 2013.08.01 2599
249 2013 IT 산업 10대 이슈 file 가을의 곰을... 2013.08.01 2555
248 R로 하는 Big Data 분석 file 가을의 곰을... 2013.07.24 2682
247 대규모 웹사이트를 구성하기 가을의 곰을... 2013.07.21 4567
246 BDD와 TDD의 차이점 가을의 곰을... 2013.07.19 2950
245 TDD (테스트 주도 설계) 가을의 곰을... 2013.07.19 3460
» DDD (도메인 주도 설계) file 가을의 곰을... 2013.07.19 2705
243 여러 행 SELECT해서 INSERT 하기 가을의 곰을... 2013.07.17 2909
242 [본문스크랩] iPhone용 Open Source 모음 file 가을의 곰을... 2013.07.17 3606
241 [iBatis] 다중 쿼리 사용하기. 가을의 곰을... 2013.07.17 7675
240 Blender 3D Hotkeys, Shortcut Keys and Reference 가을의 곰을... 2013.07.13 5107
239 OLC 블렌더 강좌 : 블렌더 3d 단축키 가을의 곰을... 2013.07.13 7873
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED