본문 바로가기

기반시스템/빌드/릴리즈

한방에 빌드 Visual Studio나 Eclipse를 실행해야만 빌드를 할 수 있습니까? "Yes"라고 대답하는 개발자들은 대부분은 이것이 무슨 문제인지 모르고 있는 상황입니다. Joel Test 12개 항목 중 하나를 차지할 정도 한방에 빌드를 만들어 내는 것은 중요합니다. Visual Studio나 Eclipse에서 버튼 하나만 누르면 빌드가 된다고 이것을 한방에 빌드를 만들어 내는 것이라고 착각하면 곤란합니다. 일단 Command line이 아니고 빌드를 위해서 사람의 손을 통해서 무슨 프로그램을 실행해야 한다면 한방의 빌드와는 거리가 먼 겁니다. 그럼 왜 한방에 빌드를 만들어 낼 수 있을까요? 빌드는 반복적인 작업이며 대단히 귀찮은 작업이면서 전문적인 작업이기도 하고 실수하기 쉽기도 하며 개발에서 많은 시간.. 더보기
Build Script를 C언어로 작성하기 Build Script를 Script언어가 아닌 C언어로 작성하시거나 그런 경험이 있으십니까? 저는 Build Script를 C언어로 작성하는 것을 본 적이 있습니다. 이 경우에 Build Script라고 하기에 좀 그렇군요. Build Program이라고 해야 할까요? 누구나가 Build Script라고 부르는 이유는 Script언어로 작성하기 때문이기도 합니다. 물론 IDE에서 공식 빌드를 하는 것이 아니고 Build Script를 작성한 것은 긍정적으로 볼 수 있지만 Build Script를 사용하기 위해서 다시 Build를 해야 한다면 우습네요. Build Script를 C언어와 같이 Build가 필요한 언어로 작성하는 경우는 이러한 경우가 있을 수 있습니다. C언어는 기가 막히게 잘 아는 Scr.. 더보기
Daily Build를 하십니까? Daily Build는 많은 혜택을 줍니다. 소프트웨어가 항상 빌드 가능한 상태를 유지할 수 있도록 해주며 모든 소스코드가 매일 통합되므로 통합의 혼란을 줄여주며 개발자들의 개발진척도를 피부로 느끼게 해줍니다. 또 유닛테스트를 자동으로 매번 시행하여 기본적인 테스트를 해줍니다. 요즘은 Daily가 아니고 CI툴을 이용하여 빌드 주기를 조절하고 추가적인 작업들도 하지만 개념은 Daily Build와 크게 다르지 않습니다. CI툴은 이를 좀더 편하게 UI와 몇몇 기능을 제공하고 있습니다. 여기까지는 대부분의 개발자들이 알고 있는 내용이기도 합니다. 하지만 Daily Build를 언제부터 시작하느냐에 대해서는 의견이 명확하지 않더군요. 저는 Daily Build는 설계가 끝나고 구현 첫날부터 Daily Bui.. 더보기
빌드와 컴파일의 차이 kenu님의 블로그에 빌드와 컴파일에 대한 차이를 묻는 글이 올라와서 간단히 설명해보려고 합니다. http://okjsp.tistory.com/1165643615 컴파일 : 소스코드 파일 등의 원시파일을 실행파일, 라이브러리 등의 Object 파일로 바꾸는 작업 빌드 : 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정 컴파일은 빌드의 부분 집합입니다. 빌드 과정은 제품마다 서로 다르지만 간단한 예를 하나 들어보면 다음과 같습니다. 보통 아래 과정은 Build Script에 의해서 한번에 자동으로 실행됩니다. 실제 예는 아래 나열한 것보다 수십배는 더 복잡합니다. ^^ 소스코드관리시스템에 태그(베이스라인) 작성 작성된 태그(베이스라인) 체크아웃을 통해 빌드 전용시스템으로 소소.. 더보기
빌드가 먼저일까? 베이스라인 설정이 먼저일까? 빌드와 베이스라인 순서에 대해서 이슈가 있다는 글을 보고 아래 글을 작성합니다. 몇몇 빌드관련 솔루션들이 빌드를 해서 성공을 하면 베이스라인(Tag, Label)을 설정하는 것이 있더군요. 이는 원칙에 어긋나는 겁니다. 원칙은 베이스라인을 설정한 후에 해당 베이스라인을 가지고 빌드를 하는 것입니다. 작은 소프트웨어는 사실 이러한 것이 거의 문제가 되지 않습니다. 하지만 대규모 프로젝트는 빌드에 24시간이 넘게 걸리는 것도 있습니다. Windows NT 개발팀은 Daily Build가 48시간이 걸려서 몇대의 장비가 교대로 Daily Build를 수행했다고 할 정도 입니다. 이 경우 빌드가 끝나고 나서 베이스라인을 설정하려고 하면 이미 소스코드는 엄청나게 바뀌어 있게 됩니다. 베이스라인 설정, 태깅 한 후.. 더보기
Broken tree 소프트웨어의 빌드가 안 되는 상황을 Broken Tree라고 합니다. 소프트웨어를 개발하는 회사라면 Broken Tree의 발생을 엄격하게 규제해야 합니다. 소스코드관리시스템 안의 소스코드는 항상 빌드가 가능한 상태로 존재해야 합니다. 그리고 언제든지 꺼내서 빌드를 하면 빌드가 되어야 합니다. 개발자들은 버그를 고치거나 새로운 기능을 추가할 때 소스코드관리시스템에서 최신 소스코드를 가져와서 소스코드를 고치고 개발자 테스트를 마친 후 소스코드를 체크인 하는 것만으로 임무가 끝나지 않습니다. 내가 소스코드를 수정하는 사이에 누군가가 다른 소스코드를 수정했을 수도 있으니 꼭 다시 한번 최신 소스코드가 빌드가 되는지 확인을 해야 합니다. 믈론 한두명이 개발한다면 이런 일은 거의 없겠지만, 꽤 큰 규모의 회사나 .. 더보기
소프트웨어 프로젝트에서 빌드를 어떻게 하시나요? 소프트웨어를 개발하고 계신다면 빌드를 어떻게 하고 계시나요? 여기서 제가 말하고 있는 "빌드"는 "공식빌드"입니다. "공식빌드"란 소프트웨어를 개발하는 프로젝트나 절차에서 공식 Output을 만들어 내는 것입니다. "공식빌드"가 아닌 것은 "엔지니어링 빌드"라고 합니다. 이는 개발자가 자신의 작성한 코드를 테스트하기 위해서 비공식적으로 하는 빌드입니다. 그럼 원래 질문으로 돌아가서 "공식빌드"를 어떻게 하고 계십니까? 혹시 IDE(통합개발환경)에서 빌드를 하고 계시나요? Visual Studio나 Eclipse의 IDE를 이용해서 빌드한 결과물이 공식적으로 릴리즈가 되고 있습니까? 그러면 잘못되고 있는 겁니다. "공식빌드"는 IDE에서 이루어지면 안됩니다. "공식빌드"는 빌드 전용 장비에서 커맨드라인 통.. 더보기