본문으로 건너뛰기

"backend" 태그로 연결된 1개 게시물개의 게시물이 있습니다.

모든 태그 보기

IT에서 말하는 도메인이란

· 약 8분
dev-burnern
Developer

처음에는 보통 google.com, naver.com 같은 인터넷 주소를 떠올린다. 하지만 백엔드, 데이터베이스, 네트워크, 보안, DDD, AI 분야로 넘어가면 도메인의 의미가 조금씩 달라진다.

도메인이라는 단어의 기본 뜻은 영역, 범위, 분야이다.
즉, IT에서 도메인은 문맥에 따라 “주소의 영역”, “업무의 영역”, “데이터 값의 범위”, “지식의 분야” 처럼 다르게 해석된다.

1. 인터넷 주소로서의 도메인

가장 흔하게 접하는 도메인은 웹사이트 주소이다.

예를 들어 다음과 같은 것들이 있다.

google.com
naver.com
dev-burnern.dev
github.com

사람은 숫자로 된 IP 주소보다 문자로 된 이름을 기억하기 쉽다.
그래서 142.250.xxx.xxx 같은 IP 주소 대신 google.com 같은 도메인 이름을 사용한다.

즉, 인터넷 주소로서의 도메인은 쉽게 말하면 다음과 같다.

사람이 기억하기 쉬운 웹사이트 이름

예를 들어 개인 블로그를 운영할 때 dev-burnern.dev 같은 도메인을 구매해서 Vercel, GitHub Pages, AWS 같은 서비스에 연결할 수 있다.


2. DNS에서의 도메인

도메인 이름만 있다고 해서 바로 웹사이트에 접속할 수 있는 것은 아니다.
브라우저는 결국 서버의 IP 주소를 알아야 한다.

이때 사용되는 시스템이 DNS이다.

DNS는 Domain Name System의 약자로, 도메인 이름을 IP 주소로 바꿔주는 시스템이다.

예를 들어 사용자가 브라우저에 다음 주소를 입력했다고 하자.

dev-burnern.dev

그러면 DNS는 이 도메인이 어느 서버를 가리키는지 찾아준다.

DNS에서 자주 등장하는 설정은 다음과 같다.

DNS 레코드의미
A Record도메인을 IPv4 주소에 연결
AAAA Record도메인을 IPv6 주소에 연결
CNAME도메인을 다른 도메인에 연결
MX이메일 서버 설정
TXT인증, 보안, 소유권 확인 등에 사용
NS도메인을 관리하는 네임서버 지정
예를 들어 Vercel에 개인 도메인을 연결할 때 A RecordCNAME을 설정하는 이유가 여기에 있다.

정리하면 DNS에서의 도메인은 다음과 같다.

도메인 이름이 실제 서버를 찾아갈 수 있도록 관리되는 이름 체계


3. 이메일 도메인

이메일에서도 도메인이라는 개념이 사용된다.

예를 들어 다음 이메일 주소를 보자.

user@gmail.com
admin@company.com
contact@dev-burnern.dev

여기서 @ 뒤에 있는 부분이 이메일 도메인이다.

gmail.com
company.com
dev-burnern.dev

이메일 도메인은 해당 이메일이 어느 메일 서버를 사용하는지 알려준다.

예를 들어 user@gmail.comgmail.com 도메인의 메일 시스템을 사용한다.
회사 이메일인 name@company.com은 해당 회사 도메인을 사용하는 이메일이다.

이메일 도메인을 제대로 사용하려면 DNS에서 MX Record 설정이 필요하다.
또한 스팸 방지와 보안을 위해 SPF, DKIM, DMARC 같은 TXT 레코드 설정도 함께 사용된다.

정리하면 이메일 도메인은 다음과 같다.

이메일 주소에서 메일을 주고받는 서버와 소속을 나타내는 영역


4. 네트워크 도메인

네트워크 분야에서도 도메인이라는 단어가 사용된다.

대표적으로 Windows Domain, Active Directory Domain 같은 개념이 있다.

회사나 학교에서는 여러 컴퓨터, 사용자 계정, 권한, 보안 정책을 한 번에 관리해야 한다.
이때 같은 정책으로 묶인 네트워크 영역을 도메인이라고 부른다.

예를 들어 회사 내부에서 다음과 같은 작업을 중앙에서 관리할 수 있다.

직원 계정 관리
컴퓨터 접근 권한 관리
공유 폴더 접근 제어
로그인 정책 설정
보안 정책 적용

즉, 네트워크 도메인은 단순한 웹사이트 주소가 아니라 조직 내부의 컴퓨터와 사용자를 관리하는 영역에 가깝다.

정리하면 네트워크 도메인은 다음과 같다.

같은 관리 정책과 인증 체계를 공유하는 네트워크 영역


5. 비즈니스/서비스 도메인

백엔드 개발에서 가장 중요한 도메인 개념 중 하나는 비즈니스 도메인이다.

비즈니스 도메인은 서비스가 다루는 업무 영역을 의미한다.

예를 들어 쇼핑몰 서비스를 만든다고 하면 주요 도메인은 다음과 같다.

회원
상품
장바구니
주문
결제
배송
리뷰
쿠폰

배달 앱이라면 도메인이 이렇게 나뉠 수 있다.

사용자
가게
메뉴
주문
결제
배달
리뷰
정산

여기서 도메인은 단순한 테이블 이름이나 클래스 이름이 아니다.
서비스가 실제로 해결해야 하는 업무 영역을 의미한다.

예를 들어 주문 도메인은 단순히 주문 데이터를 저장하는 것이 아니라 다음과 같은 규칙을 포함한다.

사용자는 상품을 주문할 수 있다.
결제가 완료되어야 주문이 확정된다.
주문 취소는 배송 시작 전까지만 가능하다.
쿠폰은 특정 조건에서만 사용할 수 있다.

정리하면 비즈니스/서비스 도메인은 다음과 같다.

서비스가 해결하려는 실제 업무 영역


6. DDD에서의 도메인

DDD는 Domain-Driven Design, 즉 도메인 주도 설계이다.

DDD에서 도메인은 소프트웨어가 해결하려는 핵심 문제 영역을 뜻한다.

예를 들어 쇼핑몰에서 정말 중요한 것은 단순 CRUD가 아니다.

주문은 언제 생성되는가?
결제 실패 시 주문 상태는 어떻게 되는가?
배송이 시작된 주문은 취소할 수 있는가?
환불은 어떤 조건에서 가능한가?

DDD는 이런 비즈니스 규칙을 중심으로 소프트웨어를 설계하는 방식이다.

DDD에서는 다음과 같은 개념들이 자주 등장한다.

개념의미
Entity식별자를 가진 도메인 객체
Value Object값 자체가 중요한 객체
Aggregate관련된 객체를 하나로 묶은 단위
Repository도메인 객체를 저장하고 조회하는 역할
Domain Service특정 Entity에 넣기 애매한 도메인 로직
Bounded Context도메인 의미가 일관되게 유지되는 경계
예를 들어 User라는 단어도 서비스마다 의미가 다를 수 있다.

쇼핑몰에서는 구매자일 수 있고, 관리자 시스템에서는 운영자일 수 있으며, 배송 시스템에서는 수령자일 수 있다.
DDD에서는 이런 의미가 섞이지 않도록 Bounded Context를 나눈다.

정리하면 DDD에서의 도메인은 다음과 같다.

소프트웨어가 해결해야 할 핵심 비즈니스 문제 영역


7. 데이터베이스에서의 도메인

데이터베이스에서도 도메인이라는 단어가 사용된다.

데이터베이스에서 도메인은 어떤 컬럼이 가질 수 있는 값의 범위를 의미한다.

예를 들어 age 컬럼이 있다고 하자.

age: 0 이상 150 이하의 정수

이때 age의 도메인은 0~150 사이의 정수라고 볼 수 있다.

다른 예시는 다음과 같다.

컬럼도메인
genderM, F
price0 이상의 숫자
email이메일 형식을 만족하는 문자열
order_statusREADY, PAID, SHIPPED, CANCELED
created_at날짜와 시간
데이터베이스에서 도메인을 명확히 정하면 잘못된 데이터가 들어오는 것을 막을 수 있다.

예를 들어 주문 상태가 다음 값만 가져야 한다고 하자.

READY
PAID
SHIPPED
CANCELED

그런데 실수로 HELLO, DONE, 123 같은 값이 들어오면 데이터의 신뢰성이 깨진다.

그래서 데이터베이스에서는 CHECK 제약조건, ENUM, NOT NULL, FOREIGN KEY 등을 사용해 값의 범위를 제한한다.

정리하면 데이터베이스에서의 도메인은 다음과 같다.

컬럼이나 속성이 가질 수 있는 값의 범위


8. 보안/웹 정책에서의 도메인

웹 보안에서도 도메인은 매우 중요하다.

대표적인 예시는 쿠키, CORS, Same-Origin Policy이다.

쿠키에서의 도메인

쿠키는 특정 도메인에 저장된다.

예를 들어 example.com에서 발급한 쿠키는 기본적으로 example.com에서 사용된다.

example.com
api.example.com
admin.example.com

쿠키 설정에 따라 하위 도메인에서도 쿠키를 공유할 수 있다.

예를 들어 .example.com으로 쿠키 도메인을 설정하면 다음 하위 도메인에서도 쿠키를 사용할 수 있다.

www.example.com
api.example.com
admin.example.com

CORS에서의 도메인

CORS는 서로 다른 출처 간의 요청을 제어하는 정책이다.

예를 들어 프론트엔드가 다음 주소에서 실행되고 있다고 하자.

https://frontend.com

백엔드 API는 다음 주소에 있다.

https://api.backend.com

이 둘은 서로 다른 출처이기 때문에 브라우저는 보안상 요청을 제한할 수 있다.
이때 백엔드에서 CORS 설정을 통해 허용할 도메인을 지정해야 한다.

정리하면 보안/웹 정책에서의 도메인은 다음과 같다.

쿠키, 인증, 요청 허용 범위 등을 결정하는 웹 보안의 기준 영역


9. AI/검색에서의 도메인

AI와 검색 분야에서도 도메인이라는 단어가 자주 사용된다.

이때 도메인은 특정 지식 분야나 전문 영역을 의미한다.

예를 들어 다음과 같은 표현을 볼 수 있다.

의료 도메인
법률 도메인
금융 도메인
개발 도메인
교육 도메인
커머스 도메인

AI 모델은 일반적인 질문에는 잘 답할 수 있어도 특정 전문 분야에서는 정확도가 떨어질 수 있다.

예를 들어 의료, 법률, 금융 같은 분야는 전문 용어와 규칙이 많다.
그래서 해당 분야의 데이터를 추가로 학습하거나, RAG를 사용해 관련 문서를 검색한 뒤 답변하도록 만든다.

예를 들어 개발 문서 검색 AI를 만든다면 다음과 같은 도메인을 다루게 된다.

프로그래밍 언어
프레임워크
API 문서
에러 로그
기술 블로그
공식 문서

이때 “개발 도메인에 특화된 AI”라고 표현할 수 있다.

정리하면 AI/검색에서의 도메인은 다음과 같다.

AI가 이해하거나 검색해야 하는 특정 지식 분야


마무리

도메인이라는 단어는 IT에서 매우 자주 사용되지만, 문맥에 따라 의미가 달라진다.

간단히 정리하면 다음과 같다.

구분도메인의 의미
인터넷 주소사람이 기억하기 쉬운 웹사이트 이름
DNS도메인을 IP 주소와 연결하는 이름 체계
이메일이메일 주소에서 @ 뒤의 영역
네트워크같은 정책으로 관리되는 네트워크 영역
비즈니스/서비스서비스가 다루는 업무 영역
DDD소프트웨어가 해결해야 할 핵심 문제 영역
데이터베이스컬럼이 가질 수 있는 값의 범위
보안/웹 정책쿠키, 인증, 요청 허용 범위의 기준
AI/검색특정 지식 분야

결국 도메인을 이해할 때 가장 중요한 것은 문맥이다.

도메인 구매했다라고 하면 웹사이트 주소를 의미하고,
주문 도메인 설계하자라고 하면 비즈니스 로직 영역을 의미한다.
의료 도메인 AI라고 하면 의료 지식 분야에 특화된 AI를 뜻한다.

따라서 개발자는 도메인이라는 단어를 볼 때 단순히 “인터넷 주소”로만 이해하면 안 된다.
어떤 분야에서 사용되는지에 따라 의미를 구분해서 이해해야 한다.

참고자료

인터넷 주소 / DNS

이메일 도메인

네트워크 도메인

비즈니스 / 서비스 도메인

DDD에서의 도메인

데이터베이스 도메인

보안 / 웹 정책

AI / 검색 도메인