Post

소프트웨어 개발 - 통합 구현 관리

#통합 구현 관리

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.