소프트웨어 개발 - 통합 구현 관리
#통합 구현 관리
IDE 도구
코딩, 디버그, 컴파일, 배포 등 프로그램 개발과 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어
IDE 도구의 기능
- 개발 환경 지원
- 컴파일
- 디버깅
- 외부 연계
- DB 연동
IDE 도구의 대표적 종류
- 이클립스 (Eclipse)
- 비주얼 스튜디오 (Visual Studio)
- 엑스 코드 (Xcode)
협업 도구
개발 관련 소통을 위해서 지속적으로 커뮤니케이션을 수행하기 위한 도구
협업 도구의 기능
- 개발자 간 커뮤니케이션 (개발자 간 작업 공유, 오류 현상 공유 등 )
- 일정 및 이슈 공유 (소스 코드 구현 도중 발생하는 오류 및 이슈와 프로젝트 일정 공유)
- 개발자 간 집단 지성 활용 (새로운 아이디어를 개발자들 간에 공유)
형상 관리 도구
형상 관리?
소프트웨어 생명주기 동안 발생하는 변경 사항을 체계적으로 관리하여 소프트웨어의 품질 보증을 향상시키는 관리적 활동
- 개발 과정의 변경 사항을 관리
- 관리항목: 프로젝트 요구 분석서, 소스코드, 운영 및 설치 지침서
- 유지보수 단계뿐만 아니라 개발 단계에도 사용할 수 있음
■ 형상 관리 절차
식별 → 통제 → 감사 → 기록
형상 관리 도구?
소프트웨어 변경 사항을 관리하기 위해서 형상 식별, 통제, 감사, 기록을 수행하는 도구
- 소스 코드나 문서 버전 관리, 이력 관리, 추적 등 변경 사항을 체계적으로 관리할 수 있음
■ 형상 관리 도구 기능
- 체크인: 수정한 소스를 저장소로 업로드하는 기능
- 체크아웃: 저장소로부터 최신 버전을 PC로 다운받는 기능
- 커밋: 소스를 저장소에 업로드 후 최종적으로 업데이트가 되었을 때 형상 관리 서버에서 반영하도록 하는 기능
■ 형상 관리 대표적인 도구들
◆ CVS (Concurrent Versions System)
- 가장 오래된 형상 관리 도구
- 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행하는 형상 관리 도구
- 기능:
- 변경사항 동기화
- 파일 단위 관리
- 장점:
- 직관적이고 비교적 단순한 명령 세트
- 단점:
- 텍스트 기반 소스 코드 위주 지원
- 등록된 파일 및 디렉토리 변동이 불편함
- 커밋 실패 등에 대한 롤백 기능 미지원
◆ SVN (Subversion)
- 중앙 집중형 클라이언트-서버 방식으로 CVS의 단점을 보완한 형상 관리 도구
- 기능:
- CVS 기능 제공 (CVS 명령어 사용가능)
- 바이너리 파일 관리 (실행파일과 같은 바이너리 파일 지원)
- 커밋 실패 시 롤백 기능 지원
- 장점:
- 디렉토리 파일을 자유롭게 이동 가능
- CVS에 비해 빨라진 속도
- Gzip으로 압축하여 공간 절약 가능
- 다양한 플러그인 API 제공
- 단점:
- Trunk, Branch, Tag가 모두 물리적 저장 위치 점유
- 잦은 커밋으로 인해 리비전 번호가 크게 증가
- 개별 개발자만의 개발 이력을 가질 수 없음
◆ Git
- 기능:
- 로컬 / 원격 형상 관리
- 커밋 시 롤백 가능
- 장점:
- 저장소의 완전한 복사본을 로컬에 저장 가능
- 로컬 저장을 통해 오프라인 작업 가능
- 일시적인 작업에 대한 이력 관리가 쉬움
- 단점:
- 대용량 코드 관리에 부적합
- 한 번에 diff 명령어를 통한 변경사항을 보기 어려움 ㅜㅡ ㅜ
This post is licensed under CC BY 4.0 by the author.