소프트웨어 릴리즈는 그 성격에 따라서 몇 가지 형태로 구분이 됩니다.
소프트웨어는 그 종류가 셀 수 없이 많아서 획일적으로 얘기할 수는 없어도, 릴리즈를 구분하여 부르는 것은 필요합니다. 릴리즈를 구분하다는 것은 현재 릴리즈가 어떠한 것이고, 그에 따라서 어떠한 프로세스를 따라야 하고, 어떠한 기대값을 가져야 하는지 그 이름만 들어도 알 수 있게 합니다.
하지만, 팩키지를 개발하는 소프트웨어 회사는 나름대로 릴리즈 구분에 익숙해져 있지만, SI회사, 게임회사, 포탈 등의 서비스 회사, 금융회사들은 릴리즈는 그냥 릴리즈라는 생각을 하고 합니다. 따라서 수많은 릴리즈를 함에도 불구하고 각 릴리즈를 부르는 버전도 없는 경우가 허다하고, 개발자가 임의대로 릴리즈를 하는 경우도 많습니다.
그럼 릴리즈를 어떻게 구분하여 부르면 의사 소통에 도움이 될지 알아보죠.
업그레이드 릴리즈 (Upgrade release)
계획된 일정에 따라서 제품의 주요한 기능이 바뀌어서 릴리즈 되는 것을 일컫습니다. 그 규모와 성격에 따라서 메이져 또는 마이너 업그레이드라고 하고 정상적인 개발 프로세스를 거치며 테스트로 전 기능에 걸쳐서 철저하게 이루어 지는 것이 보통입니다.
패치 릴리즈 (Patch release)
특정 기능에서 발생한 버그나 작은 기능을 개선한 것들을 모아서 릴리즈 하는 것을 말합니다. 보통 계획적으로 일정을 잡거나 업그레이드 릴리즈 후 고객들의 반응을 보고 패리 릴리즈 일정을 잡기도 합니다. 보통 유지보수 개발자들이 개발을 담당하고 테스트로 업그레이드 릴리즈 때보다는 간소화 하기도 합니다.
핫픽스 (Hotfix)
심각한 버그가 발견되어서 긴급하게 특정 고객을 대상으로 또는 전체 고객에게 버그를 수정한 버전을 전달하는 것을 말합니다. 이 경우 사안이 긴급하여 개발 및 테스트 프로세스가 상당부분 생략되며, 이로 이한 위험부담을 어느 정도 감수하는 릴리즈를 말합니다.
또 제품의 완성도에 따라서 알파, 베타, RC 릴리즈로 나뉠 수 있습니다.
알파 릴리즈는 제품의 기능은 구현이 다 되었으나 버그는 좀 있을 수 있습니다. 하지만, 제품을 더이상 써 볼 수 있는 정도의 심각한 버그는 없어야 합니다.
베타 릴리즈는 제품의 심각한 버그는 거의 없어서 기능을 거의다 정상적으로 사용할 수 있는 상태를 말합니다.
RC 릴리즈는 제품을 출시할 수 있는 정도로 사소한 버그가 몇개만 포함된 버전을 말합니다.
이렇게 릴리즈를 나누는 이유는 각 릴리즈에 따라서 들어가는 비용과 개발 프로세스가 다르고, 리스크가 다르기 때문입니다. 이러한 구분이 없이 그냥 개발자가 소프트웨어를 수정하는 대로 릴리즈를 하고 있다면, 테스트 등 릴리즈에 들어가는 비용을 들이지 않는 주먹구구식 개발일 가능성이 높습니다. 하지만 이러한 마구잡이식 릴리즈가 결국 더 많인 비용을 이미 지불하고 있다는 것을 알아야 합니다.
MS에서 제로데이어택을 막기위해 배포하는핫픽스도 저렇게 많은 절차를 건너뛰고 배포되는걸려나요? 확실히 저러한 배포판들을 릴리즈 하기 위한 자동화 시스템이 구축되어있다면 좋겠다는 생각이 드는군요..
답글삭제구차니님 안녕하세요.
답글삭제각 회사마다 패치/핫픽스의 프로세스는 다릅니다. 따라서 절대 비교는 할 수 없어도, 핫픽스가 기타 다른 릴리즈보다 절차가 짧기는 마찬가지 입니다. 따라서 빌드/릴리즈가 자동화 되어 있고, 테스트가 상당부분 자동화가 되어 있다면 Hotfix를 릴리즈하더라도 좀더 안정적인 버전을 내놓을 수 있습니다.
안녕하세요. 염치없이 초대장좀 얻을수 있을까 해서 이렇게 글을 남겨봅니다.
답글삭제현재 미국에서 박사학위중인 학생입니다. 한국에서 친구들과 가족들과 공유할수 있고 또 제 취미인 사진을 효과적으로 올릴수 있는 블로그를 찾고 있던중 티스토리가 가장 적합하다 생각되더라고요. 근데 초대장 받기가 엄청 힘들군요.
혹시 가능하시다면 [email protected]으로 부탁드릴께요.
블로그도 잘보고 갑니다^^ 저도 컴퓨터 사이언스를 전공으로 하고 있어서 눈에 띄는 내용들이 많내요. 그럼 행복하세요~