avatar
🐽Buri-log

도메인이 뭔가요?

6 months ago
·
5 min read

도메인이 뭐냐면..

개발을 할때도 도메인, 데이터베이스 구조를 설계할 때도 도메인, 프로젝트 기획할때도 도메인, 여기저기서 다 도메인이라는 단어를 쓰는데 개념이 명확하지 않아 헷갈려서 정리해봤슴다

1. 프로젝트 구조(Architecture):

  • 프로젝트 구조에서 도메인은 주요 비즈니스 개체를 나타냅니다. 일반적으로 소프트웨어 시스템에서 도메인은 해당 시스템이 다루는 중요한 주제 영역을 반영합니다. 도메인은 프로젝트의 핵심 부분이며, 이를 기반으로 비즈니스 로직을 구현하게 됩니다. 예를 들어, 전자상거래 웹 애플리케이션의 도메인은 상품, 주문, 사용자 등과 같은 주요 개체들로 구성될 수 있습니다.

2. 스프링(Spring):

  • 스프링에서의 도메인은 주로 엔티티 클래스로 표현됩니다. 엔티티 클래스는 데이터베이스의 테이블과 매핑되는 객체를 나타냅니다. 스프링 애플리케이션에서 도메인 클래스는 주로 비즈니스 로직을 구현하고, 데이터베이스와의 상호 작용을 담당합니다. 스프링의 ORM(Object-Relational Mapping) 기술인 Hibernate를 사용하면 도메인 객체와 데이터베이스 테이블 간의 매핑을 쉽게 구현할 수 있습니다.

3. 데이터베이스(Database):

  • 데이터베이스에서의 도메인은 해당 데이터베이스가 다루는 데이터의 유형을 정의합니다. 도메인은 데이터의 속성과 제약 조건을 정의하는 데 사용됩니다. 예를 들어, 사용자 이름이나 이메일 주소와 같은 속성은 데이터베이스에서의 도메인에 해당할 수 있습니다. 또한 데이터의 유효성을 검사하기 위한 제약 조건(예: NOT NULL, UNIQUE)도 도메인에서 정의됩니다.

4. 기타 도메인 개념들:

  1. 도메인 주도 설계(Domain-Driven Design, DDD): 소프트웨어 개발 방법론 중 하나로, 비즈니스 도메인을 중심으로 설계하는 방법론입니다. 도메인 주도 설계는 비즈니스 요구 사항을 반영하고 복잡성을 줄이기 위해 도메인 모델을 사용합니다.

  2. 도메인 객체: 소프트웨어에서 특정 도메인을 나타내는 객체를 의미합니다. 도메인 객체는 비즈니스 로직을 포함하고 해당 도메인에 특화된 행위를 수행합니다.

  3. 도메인 서비스: 특정 도메인과 관련된 비즈니스 로직을 제공하는 서비스입니다. 도메인 서비스는 도메인 객체와는 달리 특정 개체에 속하지 않는 독립적인 로직을 수행합니다.

  4. 도메인 이벤트: 도메인에서 발생하는 중요한 사건을 나타내는 이벤트입니다. 도메인 이벤트는 비즈니스 로직의 흐름을 추적하고 기록하는 데 사용될 수 있습니다.

혹시 틀린 부분이 있다면 댓글 부탁드립니다.







부리부리몬 주니어 탈출기