한방에 빌드
'기반시스템 > 빌드/릴리즈' 카테고리의 다른 글
| 한방에 빌드 (2) | 2009/08/06 |
|---|---|
| Build Script를 C언어로 작성하기 (2) | 2009/02/24 |
| Daily Build를 하십니까? (0) | 2009/02/04 |
| 빌드와 컴파일의 차이 (6) | 2008/11/14 |
| 빌드가 먼저일까? 베이스라인 설정이 먼저일까? (8) | 2008/11/12 |
| Broken tree (0) | 2008/11/12 |


|
|
| 한방에 빌드 (2) | 2009/08/06 |
|---|---|
| Build Script를 C언어로 작성하기 (2) | 2009/02/24 |
| Daily Build를 하십니까? (0) | 2009/02/04 |
| 빌드와 컴파일의 차이 (6) | 2008/11/14 |
| 빌드가 먼저일까? 베이스라인 설정이 먼저일까? (8) | 2008/11/12 |
| Broken tree (0) | 2008/11/12 |
| 맥에서 Subversion 사용하기 (3) | 2010/04/20 |
|---|---|
| 소스코드는 어디 있나요? (13) | 2010/03/29 |
| 베이스라인 (2) | 2009/08/04 |
| 이 소스코드는 나 밖에 못 건드려! (10) | 2009/07/19 |
| 누가 소스코드를 몰래 바꿔놨다. (0) | 2009/07/13 |
| 소스코드관리 상세 조사 결과 리포트 (6) | 2009/03/08 |
구차니님 안녕하세요. 개발팀 규모가 아무리 작아도 Baseline은 설정해죠. ^^ CVS의 단점 중의 하나가 프로젝트의 규모가 커지면, Tag, Branch 생성에 시간도 오래 걸리고, 시스템 공간을 많이 차지하는 것입니다. 대규모프로젝트를 하다보면 CVS의 불편함을 종종느끼게 됩니다.
| 베이스라인 (2) | 2009/08/04 |
|---|---|
| 이 소스코드는 나 밖에 못 건드려! (10) | 2009/07/19 |
| 누가 소스코드를 몰래 바꿔놨다. (0) | 2009/07/13 |
| 소스코드관리 상세 조사 결과 리포트 (6) | 2009/03/08 |
| 사라진 소스코드 (4) | 2009/02/28 |
| Merge Tool(머지툴) 비교 - (3way merge 기능) - 수정 (25) | 2009/02/25 |
| Build Script를 C언어로 작성하기 (2) | 2009/02/24 |
|---|---|
| Daily Build를 하십니까? (0) | 2009/02/04 |
| 빌드와 컴파일의 차이 (6) | 2008/11/14 |
| 빌드가 먼저일까? 베이스라인 설정이 먼저일까? (8) | 2008/11/12 |
| Broken tree (0) | 2008/11/12 |
| 소프트웨어 프로젝트에서 빌드를 어떻게 하시나요? (8) | 2008/11/10 |
안녕하세요? 올리신 글 잘 읽었습니다. 그런데 얼핏 읽어서는 "왜" 문제가 되는지 감이 잘 오지 않습니다. 좀 더 구체적인 사례를 들어주시면 도움이 많이 될 것 같은데요... 감사합니다.
이병준님 안녕하세요.
왜 문제가 되는지는 본문에 있습니다만...
작은 프로젝트에서는 거의 문제가 되지 않기 때문에 문제를 겪어본 경험이 없거나 감이 안올 수도 있습니다.
원칙은 태깅(베이스라인)을 한것과 빌드하여 릴리즈한 것은 완전히 동일해야 합니다. 그것이 Configuration Identification의 기본 원칙입니다. 왜그런지는 감이 안오면 실제로 대규모 프로젝트를 해보던지 소프트웨어 개발 프로세스의 전과정을 모두 겪어보면 됩니다.
그렇지 않다면 당장 지금 문제를 겪을 일을 없을 겁니다.
이 글을 올린 이유도 이것이 이슈가 된다는 한 글을 보고 트랙백으로 올린 겁니다. ^^
네 본문에 무슨 말씀하신지는 알겠습니다만... 성공적으로 마쳐진 빌드에 태그를 설정하게 되면 태그 설정 시점에 소스 코드가 엄청나게 바뀌어 있게 된다고 하셨는데요. 이런 상황에서 문제가 될 만한 것을 생각해 본다면, 태그에 설정된 날짜가 실제 빌드를 시작한 날짜와 일치하지 않는다는 것 정도가 될 것 같은데, 그것이 문제가 된다는 말씀이신지요?
태그(베이스라인)은 기준선입니다. 그런데 빌드를 하고 태깅을 하면 그 기준선이 방금 빌드를 한 것과 다른 것이 될 수 있다는 뜻입니다. 태그(베이스라인)은 빌드와 완전히 일치를 해야 한다는 말입니다. 날짜가 같아야 한다는 것을 넘어서 Configuration Identification이 보장이 되어야 한다는 뜻입니다. ^^
친절한 답변 감사드립니다. 그런데 계속 궁금증이 생기네요. ^^; 트랙백 거셨다는 원글을 좀 알려주시면 이해하는데 도움이 될 것 같습니다. 미리 감사드립니다~
이병준님 트랙백 주소는 http://blog.naver.com/tb/sonjae76/10033773331 인데, 해당 포스트는 찾기가 어렵네요. - -;
참고로 SVN에서는 사후 태깅도 지원합니다.
SVN이 사후 태깅이 가능한 이유는 CVS 처럼 파일 단위의 버전 관리가 아닌 저장소 중심의 리비전을 관리하는 관계로 빌드 당시의 소스 리비전만 알고 계시면 언제든지 사후 태깅도 가능합니다.
그러나, 프로젝트의 중요성이 크다면 사전 태깅을 하거나 빌드 자동화 스크립트를 이용하여 자동 태깅이 되도록 하는 것이 좋습니다.
PinkPapa님 안녕하세요.
PinkPapa님은 이 팀블로그의 블로거 중 한분이시고 제가 알고 있는 최고의 빌드/릴리즈/SCM(Software Configuration Management)에 대한 전문가이십니다. 물론 최고의 개발자이면서요. ^^
좋은 지적이시네요. SVN은 Revision 번호만 알면 언제든지 태깅을 할 수 있죠.
제가 컨설팅을 할 때는 항상 원칙을 강조해서 설명을 합니다. 그래야 각인이 되더군요.
그렇게 해도 항상 예상치 못한 오류나 실수가 자주 생기더군요.
소프트웨어의 빌드가 안 되는 상황을 Broken Tree라고 합니다.
소프트웨어를 개발하는 회사라면 Broken Tree의 발생을 엄격하게 규제해야 합니다.
소스코드관리시스템 안의 소스코드는 항상 빌드가 가능한 상태로 존재해야 합니다.
그리고 언제든지 꺼내서 빌드를 하면 빌드가 되어야 합니다.
개발자들은 버그를 고치거나 새로운 기능을 추가할 때 소스코드관리시스템에서 최신 소스코드를 가져와서 소스코드를 고치고 개발자 테스트를 마친 후 소스코드를 체크인 하는 것만으로 임무가 끝나지 않습니다. 내가 소스코드를 수정하는 사이에 누군가가 다른 소스코드를 수정했을 수도 있으니 꼭 다시 한번 최신 소스코드가 빌드가 되는지 확인을 해야 합니다.
믈론 한두명이 개발한다면 이런 일은 거의 없겠지만, 꽤 큰 규모의 회사나 프로젝트에서는 종종 발생하는 문제 입니다.
항상 빌드가 가능한 소스코드를 유지하기 위해서 CI (Continuous Integration)솔루션을 사용하기도 합니다.
빌드가 안 되는 코드를 체크인한 개발자는 모든 업무를 제쳐놓고 빌드가 가능하도록 만들어야 합니다.
Broken Tree를 만드는 것은 개발자가 저지르는 가장 심각한 잘못 중의 하나입니다.
글이 좀 무거운데, 호랭이 블로그에서 재미 있는 카툰을 발견했네요. 재있게들 보세요.
| Build Script를 C언어로 작성하기 (2) | 2009/02/24 |
|---|---|
| Daily Build를 하십니까? (0) | 2009/02/04 |
| 빌드와 컴파일의 차이 (6) | 2008/11/14 |
| 빌드가 먼저일까? 베이스라인 설정이 먼저일까? (8) | 2008/11/12 |
| Broken tree (0) | 2008/11/12 |
| 소프트웨어 프로젝트에서 빌드를 어떻게 하시나요? (8) | 2008/11/10 |
우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..
수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..
'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..
우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..
최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..
우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..
우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..
며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..
프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..
"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..
한방에 빌드 만들기.. 완전 순수히 귀찮아서 만들기 시작했는데 한번 스크립트로 만들고 나니 이거 없었으면 어떻게 했냐 싶습니다. 명령 한방으로 빌드, 셋업, CVS 관리까지 한번에 끝나니..
그래서 팀에 자주 하는 말이 있습니다. 프로그래머는 귀차니스트가 되어야한다. 반복적인 작업 귀찮아.. 자동으로 할 수 있는 방법없나?? 라고 말이지요.
아직 daily 빌드는 하지 못했는데, 글을 읽다가 다시 생각이 나네요.. 이것도 시도해봐야겠네요.
Whitekid님 안녕하세요.
귀찮아서 자동화하지 않는 개발자도 많습니다. ^^