Loading...
Skip to Content

아기돼지 3형제 이야기로 도메인 모델 쉽게 이해하기

아기 돼지 삼형제

 한 때 아기 돼지 삼형제가 살던 마을은 평화롭고 안전한 곳이었습니다. 각각이 자신의 집을 가지고 행복하게 지내고 있었죠. 첫째 돼지는 급하게 짚으로 집을 짓는데, 그의 집은 튼튼하지 못했습니다. 둘째 돼지는 조금 더 나은 나무로 집을 짓지만, 여전히 견고하지 않았습니다. 그리고 막내 돼지는 지혜롭게 벽돌을 사용하여 튼튼한 집을 건설했습니다.

이 마을에는 고개를 내민 늑대가 있었습니다. 늑대는 각 집을 시험해보려고 했고, 첫째와 둘째 돼지의 집은 쉽게 무너졌습니다. 하지만 막내 돼지의 벽돌로 지은 집은 늑대의 공격에도 견뎌냈습니다.

이 이야기를 통해 우리는 세 가지 다른 접근 방식을 볼 수 있습니다.
첫째 돼지는 트랜잭션 스크립트와 같았습니다. 그는 급하게 작업을 마치고 빠르게 결과를 얻으려고 했지만, 그 결과는 충분히 견고하지 않았습니다.
둘째 돼지는 액티브 레코드와 비슷했습니다. 그는 더 나은 방법을 찾아 노력했지만 여전히 결함이 있었습니다.
그리고 막내 돼지는 도메인 클래스와 같았습니다. 그는 기반을 확실히 다지고 튼튼한 구조를 만들었습니다.

트랜잭션 스크립트는 마치 지푸라기집과 같습니다.

지푸라기로 만든 집은 단순하고 빠르게 만들 수 있지만, 강력한 방어 기능이나 내구성이 부족합니다. 마찬가지로 SQL등으로 직접 비즈니스 규칙을 처리하는 트랜잭션 스크립트는 각각의 기능을 단순하게 처리하고, 데이터베이스와의 상호작용을 직접 다루지만, 복잡한 비즈니스 규칙이나 도메인의 복잡성을 다루기에는 부족할 수 있습니다.

액티브 레코드는 통나무집과 유사합니다.

통나무로 만든 집은 강건하고 단단하지만, 여전히 몇 가지의 결점이 존재할 수 있습니다. 액티브 레코드도 비슷하게 데이터베이스 레코드와 객체를 직접 연결하여 데이터베이스 조작을 편리하게 만들 수 있지만, 비즈니스 로직과 데이터베이스 접근이 혼재되어 있어 유지보수가 어려울 수 있습니다.

도메인 클래스는 벽돌로 지은 집과 같습니다.

벽돌은 견고하고 안정적인 구조를 제공하며, 변화와 도전에 잘 대응할 수 있습니다. 도메인 클래스는 비즈니스 규칙과 도메인 객체를 중심으로 설계되어 있어 도메인 로직과 데이터베이스 접근을 분리시키고, 시스템의 복잡성을 다루기에 적합합니다. 이러한 구조는 유연성과 확장성을 제공하여 소프트웨어 시스템을 안정적으로 유지하고 발전시킬 수 있습니다.