본문 바로가기

Homo Design

(8)
대칭적 signature와 비대칭적 signature 인터페이스 설계에서 오퍼레이션은 그 나름대로 책임을 가지게 된다. 즉, 해당 오퍼레이션을 호출하기 위해 입력받는 정보에 대해서는 호출하는 측(이하 클라이언트)에서 그 데이터가 올바로 들어갔는지를 점검할 책임이 있으며, 입력된 정보를 가지고 출력 정보를 형성하는 측(이하 서버)에서는 반환 정보에 대해서 올바른 값이 들어갔는지를 점검할 책임이 있다. 다시 말해서, 오퍼레이션은 사전 조건(precondition)과 사후 조건(postcondition)에 만족한 상태가 되어야 클라이언트와 서버가 원활하게 정보를 주고 받을 수 있다. 이와 같은 책임성에 기반해서 설계하는 방식을 '계약에 의한 설계(design by contract)'라고도 한다. 메시지를 주고 받는 양측은 서로 조건에 만족시킬 책임(respons..
설계, 누구를 위한 활동인가 작업을 수행하는 사람들은 늘 흔적을 남기기 마련이며, 이를 SW에서는 산출물이라고 말한다. 즉, 어떠한 활동을 하든지 간에 그 흔적이 어떠한 형태로든 존재하기 마련인 것이다. SW 개발하는 입장에서 설계와 구현의 정확한 구분을 한다는 것은 사실 거의 불가능한 영역이기도 하다. 설계를 개발 단계 중에 정해진 기간으로 놓고 그 단계 내에서 산출물을 강요하는 식의 방식은 설계의 본연의 목적을 잃을 가능성이 너무나도 높다. Anonymity; and the Internet. by Stian Eikeland 우리는 어떤 일을 하게 될때 머리속으로 먼저 무엇을 어떻게 수행할지를 가늠해본다. 좀더 깊이 생각하는 사람은 다양한 대안들을 생각해보고 각각의 장단점을 비교하여 사전 시뮬레이션까지도 고려하여 최적의 해결책이라..
시스템 설계를 바라보는 두가지 관점 시스템 구축시 설계(Design)를 바라보는 두가지 관점이 존재한다. 하나는 시스템의 청사진을 제시하고, 이를 통해 시스템의 전반적인 구조나 역학을 보기 위함이고, 다른 하나는 산출물로써의 관점이다. 전자의 관점은 시스템의 진화의 모습을 다양한 각도를 통해서 시스템의 내부 구성이 아키텍처의 원칙과 건전성을 유지하는지를 추상화가 높은 뷰에서 보는 시도로 동일한 뷰에서 작성된 설계도는 시간축의 흐름에 따라서 변경의 모습을 가지며, 시간의 흐름에 따라서 다양한 뷰가 추가되기도 한다. 하지만, 후자는 특정 시점(통상 감리나 중간 정산을 위한 시점)에서 한 스냅샷을 유지하는 것으로 이 시점의 문서는 해당 시점 이후의 고객이나 시스템을 운영하는 사람이나 개발하는 사람에게도 크게 도움이 되지 않을 수 있다. 즉, 산..
테스트케이스, 유스케이스, 그리고 인터페이스 식별 분석 활동은 주어진 환경에서 시스템이 가지는 인터페이스를 식별하는 작업을 주로 합니다. 하지만, 방법론 상에서는 이러한 식별 과정에 대한 언급보다는 주로 그 결과만을 이야기하고 있습니다. 식별 과정은 다소 분석/설계자의 경험적인 지식이 크게 좌우되기는 하지만, 유스케이스를 통해서 어느 정도는 해당 업무 비전문가라도 인터페이스 식별은 가능합니다. 다만, 그러한 식별 과정에 대한 지식은 가지고 있어야 되겠죠. 유스케이스 활용에 대해서 부정적인 의견도 있긴 하지만, 이를 잘 활용하면 인터페이스 식별에 크게 도움이 됩니다. 유스케이스는 다이어그램을 그리는 행위보다 비즈니스의 경우의 수를 정리하는 과정이라고 보면 됩니다. 예를 들어, 계좌이체를 하는 비즈니스는 그 행위가 은행에서 직원을 통해서 수행하는 경우와, ..
Responsive Design - Kent Beck 올해 많은 세미나 중에 Software 공학의 대가라고 불리는 사람들의 방한은 큰 사건이 아닐 수 없다. 특히, 이러한 대가들이 모두 Agile, TDD, Refactoring을 공통적으로 이야기하고 있으며, 국내에서 그러한 주제에 대해서 관심의 시각이 늘어나고 있다는 것이 가장 주목할 만한 사건들인 것 같다. 다음은 Kent Beck 세미나의 주요 내용들이다. - Responsive Design은 테스트하기 쉬워야 한다. - 설정이나, 배포하기 어려운 구조 역시 설계 문제로 보아야 한다. - 개발의 목표(goal)은 기능의 안정된 흐름(steady flow of feature)을 추구해야 한다. 이는 responsive design을 통해 달성될 수 있다. - 기능을 추가하는 것(adding featu..
설계 패턴을 선택하는 방법 설계 패턴에 대해서 처음 접하거나 익숙하지 않을 경우, 특정 설계 문제를 해결하는 패턴을 선택하는데 있어서 어려움이 따른다. 디자인 패턴 책에서는 특정 문제에 적합한 설계 패턴을 선택하는 접근 방법에 대해서 다음과 같이 설명되어 있다. 1. 설계 패턴이 어떻게 설계 문제를 해결하는지를 고려하라. 2. 의도(intent) 절을 잘 읽어보라. 3. 패턴들끼리 어떤 관계가 있는지를 이해하라. 4. 유사한 목적(purpose)를 가지는 패턴들을 숙지하라. 5. 재설계에 대한 원인을 파악하라. 6. 설계에서 변동성이 있어야 되는 것이 무엇인지를 고려하라. 의도 (purpose) 설계 패턴 변동될 수 있는 부분 생성 Abstract Factory 제품 객체들에 대한 군(family) Builder 복합 객체를 생성..
설계 패턴 (Design Pattern) 사용법 설계 패턴을 사용하는 방법은 GoF 책의 첫부분에 단계별로 다음과 같이 적혀있다. 1. 개괄적으로 한번 패턴을 훑은다 : 패턴이 해당 문제에 적합한지를 따져보기 위해 적용(Applicability)와 결론(Consequences) 부분을 특별한 주의를 갖는다. 2. 다시 되돌아가서 구조(structure), 구성요소(participant), 구성요소간 관계(collaborations)에 대해 숙지한다 : 패턴에 있는 클래스들과 객체들에 대해 이해하고 서로 어떤 관계가 있는지를 확인한다. 3. 코드에서 패턴의 구체적인 예를 살펴보기 위해 예제 코드(Sample Code) 부분을 본다 : 코드에 대한 공부는 패턴이 어떻게 구현되지는지를 배우는데 도움이 된다. 4. 어플리케이션 범주에서 의미있는 패턴 구성요소..
첫단어 (First Word) 인간이란 언어를 통해 의사소통을 하는 능력을 가지고 있으며, 이는 인간의 문화를 극적으로 발전시키는 원동력이기도 하다. 이러한 언어는 말, 문자, 손짓, 행동 모두를 의미하게 된다. 헬렌 켈러의 이야기를 보면 헬렌 켈러가 어떻게 처음에 말을 시작하는지에 대해서 자세하게 묘사되어 있다. 헬렌 켈러는 Miracle Worker라는 제목으로 영화와 TV 드라마로 제작되었으며, 여기에는 앤 설리반 교사의 헌신적인 노력이 잘 나타나 있다. - 1962년에 나온 영화 - 관련 사이트 : http://www.imdb.com/title/tt0056241/ - 2000년 TV로 제작된 드라마 - 관련 사이트 : http://www.imdb.com/title/tt0246786/ 위의 드라마에서 앤 설리반 교사가 헬렌 켈러..

반응형