Quantcast
Channel: Eternity's Chit-Chat
Browsing latest articles
Browse All 15 View Live

도메인 특화 언어와 단위 테스트 - 3부(下)

내부 DSL(Internal DSL) 내부 DSL은 호스트 언어가 가진 제약 내에서 DSL을 구축한다. 호스트 언어에 대한 의존성은 양날의 검과 같다. 별도의 파서나 도구를 개발하지 않고도 호스트 언어가 제공하는 컴파일러만 있으면 쉽게 DSL을 구축할 수 있다. 그러나 DSL의 표현력이 호스트 언어의 표현력에 의해 제약을 받기 때문에 외부 DSL에 비해...

View Article



진화적인 설계 참고자료

예전에 블로그에 연재하다 중단했던 '진화적인 설계'를 쓸 때 참조했던 참고자료 목록을 올립니다.작년에 Toby님께서 요청하셨었는데 깜빡 잊고 있다가 어제 만나뵌 자리에서 다시 상기시켜 주셔서 이렇게 늦게나마 자료를 올립니다.참고자료들의 목록을 훑어 보니 이때는 꽤나 열심히 자료를 뒤적여 보고 꽤나 진지하게 고민을 했었던 모양입니다. (자료중에 제가 저...

View Article

도메인 특화 언어와 단위 테스트 - 4부(上)

4부 소스코드 planet-part-4.zip 테스트 도메인에 특화된 언어 지금까지 살펴 본 것처럼 픽스처로 사용할 객체의 구조가 복잡하고 그로 인해 테스트의 결과를 예측하기 어려울 경우 테스트 케이스를 작성하려는 개발자의 의지는 좌절된다. 테스트를 생성하기 위해 미로처럼 복잡한 픽스처의 내부 구조를 이해해야 할 경우 테스트 케이스의 작성을 미루는 경향이...

View Article

도메인 특화 언어와 단위 테스트 - 4부(下)[完]

테스트 케이스 리팩토링 TEST DATA BUILDER를 구현했으므로 이제 이전에 작성한 테스트 케이스를 리팩토링하자. 먼저 대륙의 수가 정확한 지를 검증하는 ContinentSpecification의 테스트 케이스부터 살펴 보자. ContinentSpecification은 Continent가 명세를 만족하는 지만 검증하므로...

View Article

단일 접근 원칙(Uniform Access Principle)을 통한 캡슐화 - (上)

속성과 메서드, 그리고 캡슐화은행 도메인에서 계좌(account)의 주된 용도는 고객의 잔액(balance)을 관리하는 것이다. 객체 지향 분석/설계의 핵심은 실세계의 개념과 유사한(그러나 완전히 동일하지는 않은) 추상 모델을 구축하는 것이므로 유비쿼터스 언어(UBIQUITOUS LANGUAGE)에 포함된 어휘인 account와 balance를 사용해서...

View Article


Image may be NSFW.
Clik here to view.

단일 접근 원칙(Uniform Access Principle)을 통한 캡슐화-(下)[完]

단일 접근 원칙(Uniform Access Principle) 은행 계좌 예제가 변경에 취약한 이유는 Account의 balance 속성을 외부에서 직접 변경할 수 있었기 때문이다. 따라서 balance와 관련된 설계 결정을 변경할 경우 public 속성에 의존하고 있는 많은 코드들이 연쇄적으로 영향을 받게 된다. 이를 방지하는 일반적인 방법은...

View Article

역할, 책임, 협력

얼마 전에 제주대학에서 대학생들을 대상으로 특강할 기회가 생겨 만든 자료입니다. 강의 내용은 객체지향 애플리케이션을 설계하기 위한 "책임-주도 설계(Responsibility-Driven Design, RDD)" 방법을 설명한 것입니다. 강의 대상이 대학생들이다 보니 가능하면 이해하기 쉽도록 내용을 꾸몄습니다. 구현 예제는 시간이 부족해서 새로운 예제를...

View Article

도메인 주도 설계의 본질

오랜만에 포스팅하네요. 쿠팡에 있을 때 기존 코드를 리팩토링하면서 도메인 주도 설계의 개념을 적용한 사례를 발표한 내용입니다. 작년에 Daum에서 발표했던 자료인데 slideshare에만 올려 놓고 블로그에는 올리지 않아 늦게나마 공유합니다. http://w.... 글 전체보기

View Article


객체지향의 사실과 오해

주변 분들은 알고 계시겠지만 제가 처음으로 집필한 객체지향 책이 출간되었습니다. 책의 제목은 "객체지향의 사실과 오해"이고 부제는 "역할, 책임, 협력 관점에서 본 객체지향"입니다. 제목에서 알 수 있는 것처럼 객체지향에 관해 널리 퍼져 있는 오해를 .... 글 전체보기

View Article


도메인 특화 언어와 단위 테스트 - 3부(上)

3부 소스코드 소프트웨어의 본질적인 복잡성 프레더릭 브룩스는 그의 기념비적인 논문 “은총알은 없다(No Silver Bullet)”에서 소프트웨어 개발과 관련된 작업을 본질적인 작업(essential task)과 부차적인 작업(accidental t.... 글 전체보기

View Article
Browsing latest articles
Browse All 15 View Live