버전 관리 시스템 개념(Version Control System) 버전 관리 시스템(Version Control System, VCS)은 파일의 변경 이력을 저장하고, 여러 사용자가 동시에 작업 및 협업할 수 있도록 돕는 소프트웨어 도구입니다. 주로 소프트웨어 개발 프로젝트에서 코드 변경을 추적하고, 개발자들이 이전 버전으로 되돌릴 수 있게 해줍니다. 버전 관리 시스템의 주요 유형 중앙집중식 버전 관리 시스템(Centralized Version Control System, CVCS) - 중앙 서버에서 저장소를 관리하고, 개발자들이 서버와 통신하여 코드 변경 내역을 저장하고 업데이트합니다. 이 방식의 대표적인 예로는 Subversion(SVN)이 있습니다. 분산 버전 관리 시스템(Distributed Ve..
버전관리(Version Control) 우리가 무엇인가 작업을 했는데 잘못된 길로 가버려서 다시 돌아가고 싶을 때 혹은 협업으로 인해서 프로그램이 엉망진창 꼬일 경우가 있다. 이런 것들을 관리해주는 프로그램을 버전관리(혹은 소스관리) 프로그램이라고 하며, 아직도 SI쪽에서 많이 사용되는 SVN과 최근에 오픈소스의 트렌드를 만들어 준 깃(Git)이 존재한다. 버전관리는 내가 어떠한 작업 내역을 버전관리 툴에 올리고, 해당 작업에 대해서 버전을 기록한다. 이렇게 협업으로 작업하다가 만약 프로젝트가 꼬이거나 잘못된 방향으로 개발을 할 경우 특정 버전을 지정하여 되돌아 갈 수 있다. 사실 사용하기 편리한 버전관리 프로그램을 고르자면 SVN이라 할 수 있고 매우 적은 지식만으로 SVN을 사용하는데 전혀 지장이 없..
오픈소스의 발전과 복잡해진 소프트웨어 개발 환경들이 맞물려진 현재 대다수 프로젝트들은 ALM(Application LifeCycle Management) 솔루션을 적용하거나, ALM의 환경을 직접 구성하여 프로젝트를 진행하는 것이 대다수라 할 수 있다. 소규모 프로젝트야 Git 정도만 공유하고 개발을 할 수 있겠지만, 10명 이상 혹은 PM 등이 포함되어 다양한 의사소통을 해야 하는데 파티션이 분리되어 의사소통이 쉽지 않을 경우 이슈 및 진행 사항에 대한 관리가 쉽지 않을 수 있다. 이럴 경우 ALM을 적용하는 것을 고려해봐야 한다. ALM은 개발의 전과정을 가시화하고, 관리 및 빌드 등이 수월하도록 만들어진 종합 개발 솔루션 정도로 인식해도 될 것이다. 특정 솔루션 하나를 지칭하는 것이 아니라 다양한 ..
What do “branch”, “tag” and “trunk” really mean? Trunk would be the main body of development, originating from the the start of the project until the present. Branch will be a copy of code derived from a certain point in the trunk that is used for applying major changes to the code while preserving the integrity of the code in the trunk. If the major changes work according to plan, they are usua..