본문 바로가기

OOAD

(3)
Domain Driven 과 Model Driven 도메인 드리븐 설계와 모델 드리븐 설계 간의 차이는 무엇인가? 이름이 비슷하고 두 개념이 서로 경계를 넘나들기 때문에 이 두 개념은 종종 혼동된다. 하지만 이 두가지 개념은 서로를 강력하게 해주는 소프트웨어 개발을 접근하는 서로 다른 방법이다. 도메인 드리븐 설계는 소프트웨어 개발의 핵심이 다루고자 하는 주제(subject matter)의 지식이라는 전제와 해당 다루고자 하는 주제를 이해하는 유용한 방법을 찾는 것으로부터 시작되었다. 해결해야만 하는 복잡성이 도메인의 복잡성 그 자체이다. - 기술적인 아키텍처도 아니고, 사용자 인터페이스도 아니고, 특정 성질의 것은 더욱 아니다. 이는 업무의 가장 핵심적인 개념에 대한 이해와 개념화(conception)를 둘러싼 모든 것을 설계하고 그러한 핵심을 지원하는..
설계 원리 (Design Principles) 현재까지 잘 알려진 설계 원리들은 다음과 같다. DRY (Don't Repeat Yourself) - 한번 이상 동일하거나 유사한 코드를 작성하지 말라. 'Once and Only Once' 원리라고도 함. SCP (Speaking Code Principle) - 코드는 그 목적과 상호교류해야 함. 코드에 있는 주석은 코드가 그 목적과 비효율적으로 상호교류함을 나타낼 수 있음. OCP (Open Closed Principle) - 설계 단위는 변화(adjustment)에 열려있어야 함. 그러한 변화(adjustment, 조정)은 기존 클라이언트를 쓸모없게 만들어서는 안됨. 상속은 이러한 목적을 달성하게 하는 메커니즘 중의 하나임. 하위클래스는 상위클래스의 클라이언트들이 유효하게 유지한 채로 변경이 될 수..
Persistence를 어떻게 번역해야하나? EJB 3 가 나오면서 Java Persistence API (JPA)가 등장하게 되었다. Persistent 는 Cobuild 사전에 다음과 같이 정의되어 있다. 1. Something that is persistent continues to exist or happen for a long time; used especially about bad or undesirable states or situations. 2. Someone who is persistent continues trying to do something, even though it is difficult or other people are against it. 첫번째는 별로 안좋은 의미로 '완고한', '고집이 센' 정도로 받아들일 수 ..

반응형