핵심 도메인 설계: 현실을 코드로 추상화하기
왜 도메인 객체부터 만들어야 할까요?
좋은 소프트웨어 설계는 '무엇을' 다룰 것인지 먼저 정의하고, '어떻게' 다룰 것인지를 나중에 결정합니다.
여기서 '무엇'에 해당하는 것이 바로 도메인 객체입니다.
마치 집을 짓기 전에 설계도부터 그리는 것과 같습니다.
어떤 방이 있고, 각 방은 어떻게 연결되는지에 대한 설계도(User, Issue 객체)가 명확해야, 그 설계도를 바탕으로 배관 공사(Service)를 하고 전기 공사(Controller)를 할 수 있습니다.
'무엇을' 다룰지 알아야 '어떻게' 다룰지 결정할 수 있기 때문입니다.
package com.puzzlix.solid_task.domain.user;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String name;
private String email;
private String password;
}
package com.puzzlix.solid_task.domain.issue;
public enum IssueStatus {
TODO, IN_PROGRESS, DONE
}
package com.puzzlix.solid_task.domain.issue;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Issue {
private Long id;
private String tittle;
private String description;
private IssueStatus issueStatus;
// 추후 연관관계 필드
private Long projectId;
// 누가 요청(보고)
private Long reporterId;
// 담당자(누군가에게 할당 되어 처리 됩니다)
private Long assigneeId;
}
package com.puzzlix.solid_task.domain.project;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Project {
private Long id;
private String name;
private String description;
}'JAVA' 카테고리의 다른 글
| SRP (Single Responsibility Principle) - 단일 책임 원칙 (0) | 2025.10.15 |
|---|---|
| 객체 지향 설계 - S.O.L.I.D 원칙 (0) | 2025.10.15 |
| 프로젝트생성 (0) | 2025.10.15 |
| 디자인 패턴 - 전략 패턴 (0) | 2025.10.02 |
| 디자인 패턴 - 어댑터 패턴 (0) | 2025.10.02 |