본문 바로가기

전체 글196

시스템 설계를 바라보는 두가지 관점 시스템 구축시 설계(Design)를 바라보는 두가지 관점이 존재한다. 하나는 시스템의 청사진을 제시하고, 이를 통해 시스템의 전반적인 구조나 역학을 보기 위함이고, 다른 하나는 산출물로써의 관점이다. 전자의 관점은 시스템의 진화의 모습을 다양한 각도를 통해서 시스템의 내부 구성이 아키텍처의 원칙과 건전성을 유지하는지를 추상화가 높은 뷰에서 보는 시도로 동일한 뷰에서 작성된 설계도는 시간축의 흐름에 따라서 변경의 모습을 가지며, 시간의 흐름에 따라서 다양한 뷰가 추가되기도 한다. 하지만, 후자는 특정 시점(통상 감리나 중간 정산을 위한 시점)에서 한 스냅샷을 유지하는 것으로 이 시점의 문서는 해당 시점 이후의 고객이나 시스템을 운영하는 사람이나 개발하는 사람에게도 크게 도움이 되지 않을 수 있다. 즉, 산.. 2011. 8. 17.
프로젝트 개발/운영팀 구성과 시스템 구성 Conway의 법칙은 특정 시스템을 만드는 조직이 궁극적으로 해당 시스템의 내부 모듈(서브시스템)을 결정한다는 것입니다. 특히, 대형 시스템의 경우 특정 한 회사가 모든 시스템을 만드는 것보다는 여러 회사가 모여서 시스템을 만들기도 하며, 혹은 한 회사 내에서도 서로 다른 팀을 구성하여 시스템을 구축하게 됩니다. 이러한 시스템의 개발에 관련된 조직 구성의 형태는 그대로 시스템의 형태에 영향을 미쳐서 나누어진 개발조직/팀 별로 그 모듈이나 시스템이 구성되는 결과를 초래합니다. 이는 비단 대형 시스템의 경우 뿐만 아니라, 자그마한 소규모 프로젝트 역시 개인별로 그 영역을 나누었을 때에도 마찬가지입니다. 특히나, 기존의 다른 사람이 만든 클래스나 컴포넌트를 최대한 재사용하려는 노력보다 그와 유사한 클래스나 컴.. 2011. 8. 12.
방어적 프로그래밍 시스템에서 데이터는 다양한 경로를 통해서 내외부로 흘러들어가며, 이는 해당 데이터를 처리하는 코드의 견고성과 건전성을 해치는 원인되기도 합니다. 특히, AS-IS 시스템을 TO-BE 시스템으로 전환하는데 있어서 데이터 마이그레이션과 같은 작업은 적게는 수백개에서 많게는 수천개에 달하는 테이블의 매핑으로 인해서 수많은 오류 데이터를 낳게 됩니다. 이는 AS-IS와 TO-BE의 매핑이 그리 간단하고 쉬운일이 아니기 때문에 발생할 수 있는 오류들 중에 가장 큰 비중을 차지하고 합니다. His Hand by h.koppdelaney 일반적으로 어느 특정 경로를 통해서 입력과 출력의 대상이 되는 데이터를 처리하는 코드는 정해진 비즈니스 규칙에 의해서만 동작하도록 만들어져 있기 때문에 이와 같이 다른 경로를 통해서.. 2011. 8. 5.
비즈니스 로직의 진화와 아키텍처의 진화 SW 아키텍처는 SW를 지지하는 구조적인 측면에서 개발 초반에 어느 정도 확정이 된다면, 어느 시점까지는 해당 아키텍처 상의 SW를 지탱해줄 수 있는 여력이 만들어집니다. 개발 시점에는 비즈니스 로직의 변화가 제일 심하며, 이에 따라서 아키텍처 역시 같이 진화를 거듭하게 되며, 시스템 오픈 시점에는 SW 아키텍처가 운영을 할 수 있는 상태로 그 균형을 유지하게 만듭니다. 하지만, 운영시점에 있어서는 개발 기간 동안에 예기치 못했던 문제와 다양한 비즈니스 환경의 변화로 인해서 비즈니스 로직의 급격하지는 않지만, 서서한 변화를 겪게 됩니다. 여기에서 비즈니스 로직을 어떻게 변화시키느냐에 따라서 SW 아키텍처는 그 무게를 지탱할 수 있는지 혹은 변칙적인 변화를 수용해서 만들어진 SW 아키텍처의 원칙들이 하나 .. 2011. 8. 2.
반응형