본문 바로가기

CI5

빌드 시간을 더 빠르게 하라 빌드의 통합은 형상관리도구, 워크스페이스의 소스코드 관리 도구, 배포 바이너리 버전 관리 도구 등을 통해서 상당 부분 자동화를 시킬 수 있다. 빌드는 단순히 형상관리에 있는 소스 코드들을 모두 가지고 와서 실행 파일로 컴파일을 만들어주는 의미만 포함되는 것은 아니다. 물론, 이러한 자동화 역시 전체 소스 코드의 깨짐 현상을 방지할 수 있고, 이를 지속적으로 반복적으로 수행한다면 소스 코드 깨짐 현상에 대한 위험은 줄일 수 있을 것이다. 문제는 전체 소스 코드의 크기가 적고, 어느 정도 인내할 수 있는 시간 동안 빌드를 한다면 괜찮겠지만, 소스 크기가 상당하고 많은 사람들이 만들어내는 소스 코드 (심지어 서로 다른 지역에 있는 사람들이 만들어내는 소스 코드와 같이 빌드하는 경우) 라면 상황이 달라진다. 실.. 2012. 5. 12.
컴포넌트 식별/구성과 빌드 프로세스, 그리고 의존관계 SW 아키텍처에서 최소한의 빌드 단위를 결정하는 것은 이제 중요한 이슈이다. 현재의 SW 아키텍처에서 빌드 단위는 하나의 애플리케이션 (자바의 경우 war) 단위 안에 물리적으로 모든 소스 코드를 위치하는 형태로는 잦은 비즈니스의 변화와 이에 따르는 응대를 하기란 쉽지 않기 때문에 재사용 가능한 단위의 컴포넌트를 최대한 많이 그리고, 최대한 확장 가능한 형태로 구성해야 한다. 이러한 컴포넌트를 식별하고 구성하는 행위들은 궁극적으로 빌드 단위에 영향을 미치게 되며, 이는 빌드 프로세스에 직접적으로 영향을 미친다. 컴포넌트는 재사용 단위를 높이고 의존관계를 최대한 느슨한 형태로 구성하게 되지만, 이는 그 말 자체가 균형을 이루기 힘든 상태임을 알 수 있다. 재사용 단위를 높이는 것은 궁극적으로 컴포넌트의 의.. 2012. 3. 5.
TDD, CI, CD 올해 Jolt Awards의 The Best Books에서는 6권의 최고의 책을 선정했고, 그 중에서 Jez Humble과 David Farley가 쓴 Continuous Delivery를 가장 최고의 책(Excellent Book)으로 선정했다. [관련 기사] 기사에서도 말했듯이 이책은 기존 Continuous Integration에서 코드로부터 할 수 있는 모든 것을 자동화시키는 개념을 더 확장하여(응용하여) 가상화(virtualization) 개념을 도입해 배포로 인한 무중단 서비스를 가능하게 하는 방식을 이야기하고 있다. CD에서의 테스트는 오로지 단위테스트(unit test)를 말하고 있으며, 그 테스트 수행 속도 역시 빨라야 한다. 즉, 단위테스트를 하는 범위(coverage)를 최대한 독립적.. 2011. 8. 27.
테스트, 이젠 옵션이 아닌 필수이다. 프로젝트 진행 중에 수많은 산출물들과 수많은 작업들이 있지만, 가장 주요한 그리고 필수적으로 있어야 되는 작업과 산출물은 주로 설계과 소스 코드로 초점을 맞출 수 있습니다. 그 이외에 개발에 지연을 주는 요소들은 모두 선택적인 작업이나 산출물들이 됩니다. 설계 산출물 중에서도 대부분이 클래스 다이어그램을 중심으로 하는 정적 모델을 필수 산출물로 선정하고, 시퀀스 다이어그램과 같은 동적 모델에 대해서도 선택 산출물이라고 얼버무리는 경우도 많습니다. 기본적으로 다이어그램은 선택과 필수라는 식의 접근 방식보다는 해당 산출물이 어떤 이유에서 필요하며 어떤 결과물들을 내기 위해서 사용되어야 하는지에 대한 타당성이 먼저 있어야 하며, 그와 같은 결과물들은 내려면 시퀀스 다이어그램과 같은 동적 모델을 그릴 수 밖에 .. 2011. 7. 11.
반응형