[업무 이해] Plastic SCM

  1. Plastic SCM 이란?
  2. Plastic SCM 특징
  3. Plastic SCM의 기능
    1. Repository
    2. 변경 사항 반영하기
    3. 변경 사항 내려받기
  4. 마치며

Plastic SCM 이란?


  • Git과 마찬가지로 형상 관리를 제공하는 플랫폼의 일종이며, Command를 통해 관리 할 수 있지만, Git과는 반대로 기본적 Tool에서 GUI를 제공해줘 편리하게 형상 관리가 가능하다.

Q. 형상 관리란?

  • 소프트웨어 개발 프로세스 단계에서 소프트웨어의 변경점을 체계적으로 추적하고 관리하는 것을 의미한다.
  • 단순 변경점만을 관리하는 것이 아닌 요구 사항, 설계 문서, 소스 코드 등에 대한 형상을 만들고 체계적으로 관리한다.

Plastic SCM 특징


  • 중앙 집중식 운영
  • 분산 작업
  • 비교 및 병합 도구
  • GUI 제공
  • 모든 GUI에서 구현된 리포지토리의 분기, 병합 및 변경 사항을 나타내는 타임라인 제공
  • ACL 기반 보안: 시스템의 모든 개체는 액세스 제어 목록으로 보호될 수 있습니다.
  • 대기 시간이 긴 네트워크 지원: 플라스틱이 사용하는 네트워크 프로토콜은 고속/고지연 네트워크에 최적화되어 있습니다.

짧지만 상반기 인턴을 진행하며 사용해본 PSCM의 가장 큰 특징이자 장점은 GUI인 것 같다. GUI 제공으로 diff(비교) 작업도 수월하고, 뿐만 아니라 잘 관리된 형상에서는 이전 Changeset을 쉽고 빠르게 가져올 수 있다. 이 모든 것을 GUI로 사용자에게 제공해주다보니 개발에 있어 중요한 형상 관리를 손쉽게 가져가는 것 같다.

Plastic SCM의 기능


Plastic SCM의 기본적인 기능을 Git을 대상으로 비교 설명 해보겠다.

Repository

  • Git에도 각각의 Repository 개념이 있듯이 PSCM 상에도 Repository 개념이 있다. 이는 저장소를 의미하고, 하나의 저장소에는 여러 파일이 담길 수 있다. 이때, PSCM에서는 xlink라는 개념이 있는데 이 xlink를 이용해서 다른 Repository의 Changeset에 접근할 수 있다.

변경 사항 반영하기

  • 일반적으로 Git에서 변경 사항을 반영하려면 Command로 add, commit, push, pr 등의 작업을 거쳐야 한다.
  • Plastic SCM에서는 사진에서와 같이 ‘Pending changes’ 라는 탭에서 이루어지는데, 이곳에서 변경 사항을 Checkin을 하면 변경 사항이 반영 되게 된다.
  • git에서의 Commit Message는 PSCM에서의 Checkin comments와 같고, push / pr은 Checkin과 같다.
  • Comments의 경우 여러 사람이 협업을 하는 공간이기 때문에 정해진 틀에서 명확하게 작성하는 것이 좋다.

변경 사항 내려받기

  • Git에서는 Fetch / Pull 명령어를 이용해 원격 저장소의 변경 사항을 내려받는다. PSCM에서는 사진에서와 같이 ‘Branch Explorer’라는 탭에서 원하는 Branch의 Changeset을 GUI를 통해 손쉽게 Switch 하여 내려 받을 수 있다. (물론 Git도 Command만 잘 안 다면 원하는 Commit ID, Branch의 변경 사항을 내려받는게 가능하다.)
  • 사진에 보이는 기다란 가로 줄이 해당 Repository의 Branch이고, 각각의 원이 해당 Branch의 Changeset(CommitID)이다.

마치며


  • Git도 GUI를 제공하는 여러 프로그램이 있지만, 내 개인적인 생각으로는 Plastic SCM의 GUI에는 훨씬 못 미치는 것 같다. 속도, 편의성 등 Plastic SCM이 훨씬 더 편리하게 느껴졌다. 하지만 이러한 PSCM도 결국엔 비용 문제가 있다고 한다… 이런 이유를 포함한 여러가지 이유로 인해 회사에서는 Plastic SCM에서 Git Enterprise로 이관 한다고 한다. 나는 형상 관리 이관 작업에 참여하여 작업중 불필요하게 반복되는 수작업을 최소화하기 위해 자동화 Tool을 제작하였으며, 좀 더 효율적으로 이관할 수 있도록 작업에 참여하였다.