본문 바로가기

Homo Architect55

테스트, 이젠 옵션이 아닌 필수이다. 프로젝트 진행 중에 수많은 산출물들과 수많은 작업들이 있지만, 가장 주요한 그리고 필수적으로 있어야 되는 작업과 산출물은 주로 설계과 소스 코드로 초점을 맞출 수 있습니다. 그 이외에 개발에 지연을 주는 요소들은 모두 선택적인 작업이나 산출물들이 됩니다. 설계 산출물 중에서도 대부분이 클래스 다이어그램을 중심으로 하는 정적 모델을 필수 산출물로 선정하고, 시퀀스 다이어그램과 같은 동적 모델에 대해서도 선택 산출물이라고 얼버무리는 경우도 많습니다. 기본적으로 다이어그램은 선택과 필수라는 식의 접근 방식보다는 해당 산출물이 어떤 이유에서 필요하며 어떤 결과물들을 내기 위해서 사용되어야 하는지에 대한 타당성이 먼저 있어야 하며, 그와 같은 결과물들은 내려면 시퀀스 다이어그램과 같은 동적 모델을 그릴 수 밖에 .. 2011. 7. 11.
배포 크기와 컴포넌트 크기 일반적으로 배포를 하는 시점에서는 다양한 자원들이 관여됩니다. DB 관점은 제외하더라도 Web 애플리케이션과 관련된 것만 보면, 화면에 관련된 자원들이 있으며 (html을 비롯한 이미지, 동영상, jsp 등), 비즈니스 로직을 처리하는 자원들(.class, .jar, .war, .ear 등)과 다양한 설정 파일(.xml, .properties 등)들이 있습니다. 이러한 배포 대상들은 종류에 따라서 배포되는 위치가 달라질 수도 있으며, 동일한 서버를 서로 다른 IP 주소로 운영할 경우에는 동일한 파일이라도 그 내용이 조금씩 차이가 발생할 수 있습니다. 따라서, 배포는 파일의 종류가 다양할수록, 그리고 운영하는 서버가 다양해질수록 상당히 시간이 걸리고 힘든 작업이 됩니다. 특히, class 단위로 배포하는 .. 2011. 7. 4.
기능 분해 방식 모듈과 컴포넌트 위키에서는 기능 분해(functional decomposition)에 대해 원초적인 기능을 기능 분해한 각 부분들로 재구성될 수 있는 방식으로 기능적인 관계를 구성 요소로 해결하는 절차라고 소개하고 있다. 일반적으로 분해의 과정에서 구성 컴포넌트(여기서는 하나의 구성 요소로 판단됨)를 식별하는 식견을 얻는 목적으로 진행한다고 되어 있다. 이러한 분해 과정을 거쳐서 최종적으로 특정 수준의 모듈화(modularity)를 식별하게 되는데, 여기서의 모듈은 독립적이거나 서로 상호관계가 없는 것이다. 그 하단에서는 이러한 분해 방식이 나오게 된 원리에 대해서 소개되어 있는데, 어느 한 기능이 5개의 요소로 나뉘는 경우, 이들의 관계는 4의 5승이 되어 총 1024가지의 관계를 갖게 된다. 하지만, 이를 적절한 형.. 2011. 5. 25.
수백가지의 프로토타입을 만드는 신차 개발과 SW 개발 어느 트위터의 글에 '자동차는 하나의 모델에 대해 수백가지의 프로토타입을 만든다고 하는데, 소프트웨어는 얼마나 많은 프로토타입을 만드느냐"라는 내용을 본 적이 있습니다. 신차를 만드는데 다양한 디자인과 내용물들을 구성하는데 있어서 얼마나 많은 시도를 하고, 실패를 하는지를 잘 보여주는 글이었습니다. 하지만, SW를 만드는 입장에서 우리는 하나의 프로젝트에서 얼마나 많은 프로토타입을 만들고, 시도하고 실패하는지를 물어보는 대목에서 많은 생각을 하게 만듭니다. SW 개발에서 정말 우리는 신차를 개발하는 것과 같이 수백번의 프로토타입을 만들고 맘에 안들면 바꾸는 작업을 할 수는 없는 것일까요? 먼저 이러한 개발 방식이 SW 개발 방식과 유사하다는 것을 말해야 할 것 같습니다. SW 개발 방식은 100g의 철을.. 2011. 5. 20.
반응형