본문 바로가기

배포4

빌드 시간을 더 빠르게 하라 빌드의 통합은 형상관리도구, 워크스페이스의 소스코드 관리 도구, 배포 바이너리 버전 관리 도구 등을 통해서 상당 부분 자동화를 시킬 수 있다. 빌드는 단순히 형상관리에 있는 소스 코드들을 모두 가지고 와서 실행 파일로 컴파일을 만들어주는 의미만 포함되는 것은 아니다. 물론, 이러한 자동화 역시 전체 소스 코드의 깨짐 현상을 방지할 수 있고, 이를 지속적으로 반복적으로 수행한다면 소스 코드 깨짐 현상에 대한 위험은 줄일 수 있을 것이다. 문제는 전체 소스 코드의 크기가 적고, 어느 정도 인내할 수 있는 시간 동안 빌드를 한다면 괜찮겠지만, 소스 크기가 상당하고 많은 사람들이 만들어내는 소스 코드 (심지어 서로 다른 지역에 있는 사람들이 만들어내는 소스 코드와 같이 빌드하는 경우) 라면 상황이 달라진다. 실.. 2012. 5. 12.
Balanced shipping is a feature 조엘 온 소프트웨어의 블로그에는 The Duct Tape Programmer라는 제목으로 쓴 글에서 "shipping is a feature"라는 내용이 나온다. Duct Tape은 짐을 쌀때 주로 사용되는 강력한 테이프로 한번 물건을 접착시키면 완전히 고정시키는 테이프이다. Duct Tape 프로그래머는 이와 같이 특정 기능을 구현할 때 실질적으로 필요한 내용만을 빠르고 정확하게 구현하는 사람을 말한다. 즉, overengineering과 같은 불필요한 작업을 최소화시키고, 현실적으로 사용자에게 필요한 기능만을 제한 기간 내에 구현하는 사람을 뜻한다. Day 121 :: i will no longer censor myself for the sake of your comfort by Meredith_Fa.. 2012. 3. 8.
컴포넌트 식별/구성과 빌드 프로세스, 그리고 의존관계 SW 아키텍처에서 최소한의 빌드 단위를 결정하는 것은 이제 중요한 이슈이다. 현재의 SW 아키텍처에서 빌드 단위는 하나의 애플리케이션 (자바의 경우 war) 단위 안에 물리적으로 모든 소스 코드를 위치하는 형태로는 잦은 비즈니스의 변화와 이에 따르는 응대를 하기란 쉽지 않기 때문에 재사용 가능한 단위의 컴포넌트를 최대한 많이 그리고, 최대한 확장 가능한 형태로 구성해야 한다. 이러한 컴포넌트를 식별하고 구성하는 행위들은 궁극적으로 빌드 단위에 영향을 미치게 되며, 이는 빌드 프로세스에 직접적으로 영향을 미친다. 컴포넌트는 재사용 단위를 높이고 의존관계를 최대한 느슨한 형태로 구성하게 되지만, 이는 그 말 자체가 균형을 이루기 힘든 상태임을 알 수 있다. 재사용 단위를 높이는 것은 궁극적으로 컴포넌트의 의.. 2012. 3. 5.
배포 크기와 컴포넌트 크기 일반적으로 배포를 하는 시점에서는 다양한 자원들이 관여됩니다. DB 관점은 제외하더라도 Web 애플리케이션과 관련된 것만 보면, 화면에 관련된 자원들이 있으며 (html을 비롯한 이미지, 동영상, jsp 등), 비즈니스 로직을 처리하는 자원들(.class, .jar, .war, .ear 등)과 다양한 설정 파일(.xml, .properties 등)들이 있습니다. 이러한 배포 대상들은 종류에 따라서 배포되는 위치가 달라질 수도 있으며, 동일한 서버를 서로 다른 IP 주소로 운영할 경우에는 동일한 파일이라도 그 내용이 조금씩 차이가 발생할 수 있습니다. 따라서, 배포는 파일의 종류가 다양할수록, 그리고 운영하는 서버가 다양해질수록 상당히 시간이 걸리고 힘든 작업이 됩니다. 특히, class 단위로 배포하는 .. 2011. 7. 4.
반응형