애자일 관련해서 공부하다 보면, 아래의 용어들이 자주 거론 됩니다.
통합(Integration)
빌드(Build)
릴리즈(Release)
배치(Deployment)
이 4개 용어가 서로 연관성이 많고 의미가 겹치는 부분도 있는 것 같습니다.
그래서 명확히 구분하는게 어렵군요.
우선 작업순서 기준으로 보면 아래와 같지 않을까 생각합니다.(순전히 제
생각입니다.^^)
빌드(Build) ==> 통합(Integration) ==> 릴리즈(Release) ==> 배치(Deployment)
또한, 관리주체(또는 연관성) 기준으로 보면
빌드(Build)와 통합(Integration)은 개발자,
릴리즈(Release)와 배치(Deployment)는 고객과 밀접한 관계가 있는 것 같습니다.
그런데, 웹 애플리케이션 개발에서는 빌드(Build)작업이
통합(Integration),릴리즈(Release),배치(Deployment)를 모두 포함 하는게
아닌가 하는 생각도 듭니다.
여러분들은 어떻게 정의하시나요?
--
Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 abqna+un...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
우리 회사의 예를 간단히 요약하면,
integration(build준비와 간단한 테스트) --> build(formal test와 build server에
checkin) --> release(build server에 모든 테스트를 패스했다고 표시하고 release가능하게 변경)
의 순서로 진행합니다.
우리 회사의 예를 자세히 설명하면,
사내에 여러 component를 개발하는 팀이 있다고 할때,
[Integration team] 어떤 제품을 출시하기위해서는 이런 component들의 알맞은 버전이 합쳐져서 빌드가 되도록
script를 수정하고 version control 서버에 수정내용을 checkin을 하고, 기본기능에 대해서 테스트
(integration test)합니다. (원하는 기능을 포함하고 문제없이 동작하는지 확인)
[Build team] integration과정에서 기본적으로 테스트가 끝난 component들을 사용해서
(integration단계서 checkin된 script를 사용해서) build를 합니다. (integration단계에서도 빌드
를 하지만 그것은 build팀이 빌드를 할수있도록 구성하면서 테스트하고 간단한 기능을 테스트 하는 것이고, build팀에서 하
는 빌드와 다른 점은 공식적인 의미를 담고 있는 것이 다르다고 할수 있습니다.) build가 끝나면 image(binary
image?)가 나오는데 이것을 빌드 서버에 checkin을 합니다. 책임자의 승인이 있은뒤에 테스트 팀에 이 이미지가 전달되
고 정식으로 테스트(formal test)를 진행합니다.
테스트후에 패스하면,
[release] 테스트팀이 해당 image가 모든 test에 패스한 경우에 build팀은 빌드 서버에서 해당 image의 상태
를 테스트에서 패스했다고 표시하고 PM에게 비로소 release해도 된고 연락을 하고 release가 이뤄지게 됩니다.
On 4월30일, 오후9시14분, Sangchel Hwang <k16w...@gmail.com> wrote:
> 시스템을 *통합*하기 위해서 하는 작업이 *빌드*이고,
> 빌드된 결과를 확인하기 위해서 시스템에 올리는걸 *배치*라고 부르고,
> 여러번의 빌드중 특정 시점에 고객에게 돈을 받기 위해 진행하는 빌드를 *릴리즈*
> 라고 보는건 어떨가요. 그냥 제 생각합니다. ^^;
>
> 2010/4/30 이지연 <ezone...@gmail.com>
>
>
>
>
>
> > 계홍님 메일에 덫붙여서
> > 각 활동의 단위가 차이점인 것 같아요.
>
> > 빌드 - 개인 단위의 활동
> > 통합 - 팀 내지는 같이 개발하는 사람단위의 활동
> > 릴리즈 - 관계부서 간의 활동
> > 배치 - 회사와 고객 간의 활동
>
> > 저도 릴리즈는 개발팀에서 테스트팀으로 넘길 때 사용하는 단어였어요~ ^^
>
> > 2010년 4월 30일 오후 2:47, gyehong park <gyehongp...@gmail.com>님의 말:
>
> > 개발 중에 나타날 수 있는 상황으로 보면 어떨까 싶습니다.
>
> >> 여러 가지 기능을 추가하려고 할 때, 한 가지씩 따로 테스트를 하면 버그 등을 해결하기 쉽겠죠. 사람들에게 따로 따로 줄 수 있으니
> >> 할당도 쉽습니다. 그런데, 가끔은(혹은 자주) 따로 따로는 잘 동작하던 것이 모아 놓으면 잘 안되는 문제가 발생하곤 합니다. 그래서
> >> 가능하면 빨리 통합해서 해야 한다는 말이 나온 것입니다.
>
> >> 빌드도 마찬가지인데, 가끔은 컴파일을 안하고 코딩하기도 합니다. 눈으로 버그를 열심히 찾기도 하죠. '왜 컴파일을 안하냐?' 라고
> >> 이상하게 생각하실 수도 있는데, 빌드에 오랜 시간이 걸리는 프로젝트도 많습니다. 예를 들어 10분만 걸린다고 해도, 한줄 고치고 빌드하기
> >> 어렵겠죠? 그래서 빌드 서버를 조금 좋은 컴퓨터로 따로 두기도 하구요. 빌드하는 동안 다른 부분을 또 수정하기도 합니다. 이것이 문제를
> >> 복잡하게 만들기도...
> >> 코딩 측면에서 보면 빌드 안하고 열심히 개발하다가 코딩 량이 많아지면, 빌드 후에 발생한 버그를 찾기 어려워지는 상황이 발생합니다.
> >> 또 빌드가 오래 걸리면 문제가 되는 것이 배치 후에 나타난 버그인 경우 심각한 문제로 비춰지기도 합니다. 고객에게 최소 빌드하는
> >> 시간동안은 문제 수정을 못하는 거죠. 고객입장에서는 얘네들 이런 간단한 버그 수정하는데 왤케 오래걸려가 되기도 하는 것이죠.
> >> 코딩 측면의 빌드 문제는 코딩을 할 때는 프로젝트를 따로 만들어서 하면됩니다.(이후 통합을 가능한 빨리해야겠죠?) 하지만, 이런
> >> 환경을 만드는 것이 어려운 경우가 많습니다. TDD도 비슷한 문제를 안고 있는 경우가 있습니다. TDD가 되면 이 문제도 자연스럽게
> >> 해결됩니다. 빌드 타임을 간단히하고, 줄이는 것은 잘~ ^^;;;;;
>
> >> 릴리즈는 저 같은 경우 테스트쪽에 넘길 때 많이 사용한 용어인듯. 릴리즈도 보면, 릴리즈를 테스트할 수 있는 환경 구축이 중요할 수
> >> 있습니다. 전에 웹과 연동하는 어플의 경우, 어플 개발팀이 사용하는 웹서버 환경, 웹개발팀이 사용하는 웹서버 환경, 테스트 팀이 사용하는
> >> 웹서버환경, 고객이 테스트할 수 있는 배치전 웹서버 환경이 구축되어 있었습니다.
>
> >> 테스트가 잘 되 끝나면, 실전 배치를 할 수 있도록 배치 준비를 하고, 고객은 이곳에서 테스트를 하고, 고객이 배치를 승인하면, 실제
> >> 사용자는 업데이트를 받아서 사용할 수 있습니다.
>
> >> 대충, 이런 개발 상황이 비슷비슷한 용어를 사용하는 것이리라 생각합니다.
>
> >> 2010/4/30 정형택 <mrjun...@gmail.com>
>
> >> 안녕하세요.
> >>> 제대로 초보적인 질문하나 올릴까 합니다.
> >>> 하지만, 제 입장에서는 꽤 헷갈리는 문제이기도 합니다^^
>
> >>> 애자일 관련해서 공부하다 보면, 아래의 용어들이 자주 거론 됩니다.
> >>> 통합(Integration)
> >>> 빌드(Build)
> >>> 릴리즈(Release)
> >>> 배치(Deployment)
>
> >>> 이 4개 용어가 서로 연관성이 많고 의미가 겹치는 부분도 있는 것 같습니다.
> >>> 그래서 명확히 구분하는게 어렵군요.
>
> >>> 우선 작업순서 기준으로 보면 아래와 같지 않을까 생각합니다.(순전히 제
> >>> 생각입니다.^^)
> >>> 빌드(Build) ==> 통합(Integration) ==> 릴리즈(Release) ==> 배치(Deployment)
>
> >>> 또한, 관리주체(또는 연관성) 기준으로 보면
> >>> 빌드(Build)와 통합(Integration)은 개발자,
> >>> 릴리즈(Release)와 배치(Deployment)는 고객과 밀접한 관계가 있는 것 같습니다.
>
> >>> 그런데, 웹 애플리케이션 개발에서는 빌드(Build)작업이
> >>> 통합(Integration),릴리즈(Release),배치(Deployment)를 모두 포함 하는게
> >>> 아닌가 하는 생각도 듭니다.
>
> >>> 여러분들은 어떻게 정의하시나요?
>
> >>> --
> >>> Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> >>> 이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
> >>> 그룹에서 탈퇴하려면 abqna+un...@googlegroups.com<abqna%2Bunsu...@googlegroups.com>로
> >>> 이메일을 보내주세요.
> >>> 더 많은 옵션을 보려면http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
>
> >> --
> >> Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> >> 이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
> >> 그룹에서 탈퇴하려면 abqna+un...@googlegroups.com<abqna%2Bunsu...@googlegroups.com>로
> >> 이메일을 보내주세요.
> >> 더 많은 옵션을 보려면http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
>
> > --
> > Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> > 이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 abqna+un...@googlegroups.com<abqna%2Bunsu...@googlegroups.com>로
> > 이메일을 보내주세요.
> > 더 많은 옵션을 보려면http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
>
> --
> Pragmatic Story,http://pragmaticstory.com
>
> --
> Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> 이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
> 그룹에서 탈퇴하려면 abqna+un...@googlegroups.com로 이메일을 보내주세요.
> 더 많은 옵션을 보려면http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.