본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/시스템

개발에서 도메인이란 무엇일까?

by 미노드 2024. 2. 21.

도메인이 무엇일까요? 
저도 확실하게 정의하긴 어렵습니다.
개발 영역 보다는 비즈니스적인 영역을 칭하는 부분으로 이해하고 있습니다.

정리하자면, 핵심 비즈니스 업무 영역을 말합니다.

도메인 = 화면, UI, 기술 인프라 등등의 영역을 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역을 말합니다.

도메인 지식을 기반으로 시스템이나 서비스를 구현하고 변수나 메소드명, db컬럼명 까지 정의하기도 합니다.
즉 사업적인 영역에서 업무이해를 하려면, 도메인 지식을 잘 알아야 합니다.

이는 개발영역과 더불어 업무를 수행하는데 중요한 요소로 파악되지만, 개발자가 이런 부분을 다 이해해야 하는걸까요?

이는 상황에 따라 다를 수 있습니다.
물론 이해하면 좋겠지만 개발적인 부분에서 도메인 지식을 잘 이해하고 개발하는 것과 아닌 것은 아주 큰 차이가 있습니다.
다만 이 부분은 개발처럼 특정 지식을 가지고 공식처럼 외우는 개념이 아닌, 비즈니스 모델과 거기에 대한 표준의 영역이라
상당히 많은 변화와 습득의 한계가 있을 수 있으며, 누군가에게 배우는 것도 힘듭니다.

때문에 개발적인 측면에서 도메인 지식을 다루는 것은 조심스러우며, 개발적인 성격과 다르다보니 아예 분야가 나뉘는 것도 있는 것 같습니다.
다만 개발자가 도메인 지식을 이해한다면, 해당 프로젝트를 하는데 있어 기획이나 영업쪽에서 요구사항을 충분히 설명하기 쉬워진다는 장점은 있습니다.
이걸 장점이라고 해야할지는 모르겠지만, 결과적으로 보면 설명할 게 줄어들고 이해도 일치하기 쉬워지므로 업무적인 측면에서 많은 도움이 됩니다.

또한 개발적인 측면에서 설계하는데 도메인 영역(핵심로직)과 동작하는 영역을 구분하여 설계할 수 있게 되는데,
기본적으로 기획자나 영업 쪽에서 시키는데로 하기보다, 내가 생각하는 유지보수 편한 설계를 하려면,
도메인 영역을 이해하고 설계하는 편이 훨씬 낫습니다.
그래야 이후 영역이 확장되거나, 시스템을 변경할 때 에도 업무가 쉬워집니다.

도메인 지식에 대해 생각하면서 글을 정리해봤습니다.