CategoryDimensions CM

Cherry Pick Merge

Dimensions CM 14.2 버전부터 Cherry Pick Merge 기능을 지원합니다. 다양한 목적의 개발 스트림이 진행될 경우 한쪽 스트림에서 변경된 사항을 다른 스트림으로 적용해야 합니다. 이때 모든 변경사항을 일괄 적용하는 것이 아니라 Cherry Pick Merge 기능을 이용하여 특정 개발 코드만 쉽게 합칠 수 있습니다.


아래 그림은 RELEASE 스트림에서 CR_3에 관련된 변경사항만 골라 MAINTENANCE 스트림으로 MERGE하는 것을 보여주고 있습니다.



보다 쉬운 이해를 돕기위해 다음 Cherry Pick Merge에 대한 동영상을 확인해보세요.





Dimensions CM 14.3: Pulse Agile 기능 살펴보기

Dimensions CM 14.3에 새롭게 추가된 Pulse Agile 기능을 소개하는 동영상입니다.
Pulse Agile을 활용하면 다음과 같은 애자일 작업을 수행할 수 있습니다.

  • Requests를 Backlog에서 관리
  • Iteration(스프린트)안에서 Request 처리
  • 메트릭스 확인
  • Request의 상태를 시각적으로 확인 및 추적
  • Iteration 사이 request의 움직임을 관리
  • Dimensions CM request 라이프사이클과의 통합


모든 소스를 한 곳에? 달걀에 좋지 않듯 코드에도 좋지 않습니다.



하나의 리파지토리(Repository)? 아니면 많은 리파지토리? 대답은 둘 다 아닙니다.

다음은 요즘 가장 많이 질문받는 것 중에 하나입니다.


"모든 소스코드를 꼭 하나의 리파지토리에 관리해야 하나요?"

이는 복잡한 질문입니다. 먼저 답을 찾기 전에 우선 왜 고객들이 이런 질문을 하는지 이해하도록 노력해 볼까요.


IT는 주로 중앙 집중화(Centralization), 최적화(Optimization) 이런 단어를 좋아합니다. 한 곳에 모든 코드를 모아 두는 것은 중앙 집중화 및 최적화를 위한 분산 데이터의 차세대 관리 방법처럼 보입니다. 모든 것을 한 곳에 두는 것은 더 나은 액세스 관리를, 더 나은 백업 및 복구를 관리하고, 모든 사람이 코드의 재사용을 극대화 할 수 있음을 의미합니다.


하지만, 이는 오늘날의 개발자의 행동에 직접적인 영향을 끼칩니다. 크고 작은 IT 조직의 개발자들이 자신을 위해 또는 팀을 위해 오픈소스, 오픈코드 관리시스템을 다운로드하는 것을 흔히 볼 수 있습니다. 특정 위치에 하나의 리파지토리를 구성하는 것 대신에 광대한 리파지토리의 디지털 열도(Archipelago)를 만드는 처럼 모든 서버 그리고 개발자들의 하드 드라이브에 구성된 리파지토리 또한 볼 수 있습니다. 이는 마치 다윈에 의해 기록된 핀치새처럼 팀과 팀사이의 프로세스와 표준의 근간이 진화되고 있는 것 같습니다.


이는 딜레마입니다. 회사들은 단일 리파지토리 전략을 추진하지만, 개발자들은 코드의 로컬 컨트롤과 소유권을 원한다는 것입니다.


회사가 원하는 것은 무엇일까요?

하나의 리파지토리를 원한다고 얘기할 때, 진정 회사가 원하는 것은 무엇일까요? 늘 그렇듯 회사는 여러 문제를 해결하기 위해 노력하며, 일반적으로 다음과 같을 것 입니다.


  • 리파지토리에있는 모든 Artifacts에 대한 가시성
  • 중앙 액세스 제어관리
  • 거버넌스 지침과 감사보고 요구사항에 대한 적합성
  • 업무 구분에 맞는 Artifacts의 세그먼트화
  • 코드 공유 및 리팩토링 활동 지원
  • 엔터프라이즈 대상의 광범위한 영향 분석
  • 오용, 남용 그리고 악의적인 활동에 대한 통제
  • 지속적인 리파지토리 백업


위에 나열된 것들은 자연스레 Architectural 한 것은 아니며, 모두 기능적인(Functional) 요구사항들입니다. 하나의 리파지토리 구성으로는 이런 요구사항들을 만족하기 쉽지만, 팀 기반으로 분산된 리파지토리 구성으로는 달성하기에 매우 어렵고 어떤 경우에는 불가능합니다.


개발자가 원하는 것은 무엇일까요?


개발자들은 보다 속도있게 개발하기 위해 최소한의 테크놀로지와 최소한의 프로세스만을 필요로 합니다. 일전에 페이스북 창업자이자 CEO인 마크 주커버그는 "Move fast and break things"이라고 얘기했는데 이 의미는 다음과도 같습니다.


  • 예산 승인없이 획득할 수 있는 솔루션
  • 자신의 요구에 맞게 사용하기 쉽고 유연한 리파지토리
  • 최소한의 프로세스, 통제 및 제어
  • 쉬운 관리 (또는 없거나)
  • 단순한 라이선스 (또는 없거나)
  • LAN 및 WAN을 통해 빠른 체크 아웃과 체크인 (특히 최신버전 내려받기)


다시 한번 얘기하자면, 이 또한 Architectural 한 것이 아니며, 단지 요구사항 리스트입니다. 마치 회사의 가버넌스 요구와 상충된것처럼 보이지만 공통점이 있고 모두의 요구사항을 충족시킬 수 있는 적절한 테크니컬 솔루션이 존재합니다.


놓친 부분들...


개발자들은 본인이 개발한 코드가 개발에 사용됐던 플랫폼이 아닌 다른 곳에서 서비스되는 것을 꺼려합니다. 메인프레임 개발자는 COBOL 코드를 윈도우에서 구동하는 것을 절대 원치 않을 것이고, 유닉스 개발자 또한 마찬가지일 것 입니다. 중국 베이징에 있는 개발자들은 자신의 코드가 불가리아에서 호스팅되는 것을 원치 않을 것이고, 미국 보스턴에서 관리되는 것 또한 원치 않을 것 입니다. 그외 또, 수 많은 코드 페이지와 어쩌면 ASCII에서 EBCDIC으로의 컨버전 문제가 잇따라 나타날 것 입니다.


오늘 날 대부분의 개발자들은 그들이 사용중인 개발용 플랫폼에 디자인된 코드 분석 도구를 사용합니다. 이 얘기는 코드를 계속 그 플랫폼에 놓고 사용한다는 얘기이며, 다른 의미로는 하나의 리파지토리에서 다시 분산된 플랫폼으로 코드를 중복하여 이용한다는 의미도 됩니다.


하나의 리파지토리 vs. 여러 분산된 리파지토리? 이런 관점보다는 소스 코드 리파지토리가 회사의 지적 재산이라는 것을 고려해야 합니다. 이는 회사가 제공하는 제품이나 서비스보다 더 가치있고 중요한 자산이기 때문에, 적대적인 외국 정부, 파렴치한 경쟁자, 불만을 품은 직원 그리고 조직적인 범죄의 타겟 및 초점이 되고 있습니다.


안전하고 견고한 SDLC: 차세대 표준 리파지토리


SDLC는 Software Development Life Cycle의 약어입니다.

미래의 리파지토리는 안전한 데이터 관리에 중점이 된 Best practice의 형태로 설계되어야 합니다. 리파지토리의 보호가 가장 중요하며, 다음 조건을 꼭 충족해야 합니다.


  • 단일 포인트 액세스 제어
  • 강력한 감사기능
  • Artifacts 암호화
  • Artificats, 로그, 감사 추적, 보고서 및 소프트웨어 자체 임의 변경에 대한 탐지


이상적인 리파지토리 아키텍처


이상적인 리파지토리 아키텍처를 만드는 것은 리파지토리가 하나 또는 여러개? 이런 문제가 아닙니다.

여기 모든 기업과 모든 개발자의 요구를 충족할 핵심 요소들이 있습니다.


  • 코드의 침투 및 노출에 대한 방어가 된 안전한 리파지토리
  • 프로세스 중심의 플랫폼에 상관없이 적용되는 하나 이상의 개발 프로세스 그리고 모든 개발 방법론을 지원
  • 견고하고 변경할 수 없는 로깅 및 감사 추적
  • 사용자 및 툴 관리의 단일 포인트
  • 개발자가 선택한 플랫폼에 저장되는 Artifacts
  • 해당 플랫폼에 최적화 된 본래의 유틸리티에 의한 백업
  • LAN과 WAN을 통한 고속 성능
  • 사용자 부하, 리파지토리 크기, 관리되고 추적되는 버전과 변경의 양에 상관없는 고속 성능
  • 코드중복을 줄이고 오용을 제한하면서 필요에 따른 코드의 최소한의 캐싱


우리는 이것을 '단일 가상 리파지토리(Single Virtual Repository)'라고 부릅니다.


관리와 운영 관점에서 보면 하나의 리파지토리처럼 보이지만, 내부를 들여다보면 SCCM 소프트웨어는 각각의 플랫폼, 각자의 위치에서 모든 Artifacts를 관리하고 있습니다.


개발자 관점에서 보면, 자신의 코드는 팀과 함께 배치되어 빠른 접근이 가능합니다. 또한 코드 분석 도구가 코드 복제를 따로 하지 않고 바로 실행할 수 있다는 것을 의미합니다. 각 팀은 그들이 갖고 있는 또는 위임 가능한 프로세스를 가질 수 있기에, 프로세스와 액세스 규칙이 특정 프로젝트 또는 Artifacts 레벨에 정의될 수 있습니다.


중앙 제어를 하지만, 분산된 데이터를 유지하는 것 입니다.


Why Serena


세레나는 세계적으로 가장 진보하고 성공적인 소프트웨어 변경 및 구성 관리(SCCM) 솔루션을 제공합니다.


메인프레임 개발자를 위한 전설적인 ChangeMan ZMF 솔루션이 있으며, "어디에서나 개발하고, 어디에든 배포한다"라는 접근 방식으로 메인프레임에서 개발할 수 있음은 물론이거니와 Eclipse 기반의 IDE를 이용하여 z/OS부터 z/Linux, Unix 시스템 서비스 그리고 Websphere 애플리케이션 서버까지 어떠한 메인프레임 플랫폼이라도 배포와 실행을 수행할 수 있습니다.


분산 환경의 경우, 타의 추종을 불허하는 테크놀로지, Dimensions CM  솔루션이 있습니다. 이는 전 세계적으로 국방, 정보, 금융, 보험, 제약 분야와 같은 가장 진보적으로 알려진 조직에 의해 사용중입니다. 그 뛰어난 기능은 개발자에게 매우 세련된 도구를 제공하여 코드 품질을 유지하면서 속도있는 개발을 돕습니다.


ChangeMan ZMF와 Dimensions CM은 '단일 가상 리파지토리(Single Virtual Repository)' 중심으로 설계되었고 개발자와 회사 거버넌스 팀에게 바로 그들이 원하는 것을 제공합니다.


그리고, 개발 영역이 메인프레임과 분산환경에 걸쳐 점점 확장되는 엔터프라이즈를 위해 Serena Release Control 솔루션은 개발 및 배포활동에 관련된 여러 플랫폼에 걸친 싱글 포인트 관점의 단일 가상 리파지토리를 제공하며, ChangeMan ZMF, Dimensions CM 뿐만 아니라 다른 제 3의 리파지토리들 또한 제어할 수 있도록 합니다.


세레나는 30년 이상 SCCM 시장을 리드하고 있습니다. 전 세계적으로 가장 정형화된 대기업들(Highly Regulated Large Enterprises, HRLEs)의 매우 복잡한 개발 업무를 뒷받침하는 경험을 토대로 소스 코드 리파지토리의 설계 및 구현에 있어서 압도적인 우위를 지키고 있습니다.


빛 좋은 개살구 같은 시간이 갈수록 성능이 저하되는 저렴해 보이는 솔루션에 속지 마시고, 단일 리파지토리의 단순함이 전부가 아님을 유의하시기 바랍니다.


단일 가상 리파지토리는 개발자와 IT 거버넌스의 요구를 충족하는 유일한 솔루션이며, 세레나는 견고한 SDLC 환경을 위해 이 솔루션을 당장이라도 제공할 수 있는 준비되어있는 유일한 존재입니다.


References: http://www.serena.com/blog/2015/08/source-in-one-basket/

'Dimensions CM' 카테고리의 다른 글

Cherry Pick Merge  (0) 2016.12.08
Dimensions CM 14.3: Pulse Agile 기능 살펴보기  (0) 2016.09.06
What's New in Dimensions CM 14.2?  (0) 2015.10.16
Dimensions CM 14  (0) 2014.12.26

What's New in Dimensions CM 14.2?

Serena Dimensions CM 14.2에 대한 Overview 동영상입니다. Release 테마 및 제품에 새로 추가된 기능을 소개합니다.


Dimensions CM 14

Dimensions CM 14에서는 다음과 같은 새로운 혁신적인 기능이 포함되어 있습니다.


* 혁신적인 ChangeSet의 기능

* 시각적인 Change & Branch 그래프

* 통합된 동료 검토 기능

* Continuous Integration 도구와 밀착 결합

* 모바일 개발 지원

* Araxis를 이용한 최고 수준의 파일 Compare 및 Merge

* 개인 라이브러리 캐시(Personal library cache)와 delta 파일 전송

* 클라이언트 배포 자동화


Serena Dimensions를 CM은 검증된 프로세스 기반의 소프트웨어 변경 및 형상 관리 제품입니다. 비용 효율적으로 병렬 개발의 복잡성을 제거하고 change & branch 시각화를 통해 끊임없이 통합과 자동화를 수행합니다. 충돌을 최소화하고 위험을 제거하면서 높은 수준의 릴리스 준비를 보장하고 팀의 속도를 향상시킬 수 있습니다.








Change & Branch Visualization


여러 릴리스에 걸친 Stream과 변경 이력들을 시각화함에 따라 현재 변경들의 상태가 무엇인지, 어떤 변경이 작업중인지, 어디에 위치하는지, 왜 그러는지에 대한 가시 정보(visibility)를 개발팀 및 릴리스팀에게 제공합니다. 그리고 재작업을 최소화하고 충돌을 감소시키며 결과적으로 팀 속도를 향상시킵니다.




Integrated CI


Continuous Integration 도구와 밀접히 결합하여 각 Changeset에 연계된 CI의 Build 및 단위 테스트 상태정보를 실시간으로 확인할 수 있습니다.





Expert Tool Chain


단순 CI를 넘어 단위 테스트, 정적 분석 또는 종속 취약점 도구로 부터 발견된 결과물 또는 취약점에 대한 피드백을 개발팀에게 제공합니다. 대시보드의 KPI 지표를 보거나 동료 검토의 코드 비교 안에서 발견된 결과물을 볼 수 있습니다.




Collaborative Peer Review


웹 기반의 협력적인 동료 검토 기능은 best practice 반영을 통해 품질을 향상시키고, In-line 코멘트 기능과 주석 기능을 활용해 팀워크 및 협업을 촉진시키며, 보다 빠른 전달을 가능하게 합니다.





Annotation View


소스 파일의 코드 라인에 주석 관리를 함에 따라 변경이 필요할 시점에 보다 쉽게 찾을 수 있습니다. 파일의 변경 리스트를 열람하며 누가, 언제, 내용을 추가했는지, 삭제했는지, 수정했는지 또한 어떤 변경 요청서가 연계되어 있는지 확인이 가능합니다.





Best of breed Araxis File Merge


비교하고, 이해하고, 다른 소스 파일 리비전을 자신있게 합치세요. 2-way, 3-way compare/merge 기능을 통해 빠르고 정확하게 작업하세요. Windows 또는 Mac OS X 환경에서 XML, HTML 파일, Microsoft Office(Word및 Excel)과 PDF 형태의 문서를 지원합니다.




Extended Development Platform Support Appcelerator


모바일 개발 플랫폼의 네이티브 통합을 지원하며 Apple의 Xcode와 같은 다른 IDE 또한 통합 및 상호 운용성을 지원합니다. Safari 지원의 추가로 Mac OS X 클라이언트에서 Dimensions CM을 사용할 수 있습니다.




Immutable Baselines


매우 신속한 Baseline 작업은 현재의 구성 정보를 확보하고, 롤백을 지원하는 릴리스에 대한 기록의 중요한 시스템을 제공하며, 배포의 반복성과 무결성을 보장합니다.


Application Component Security


강력한 서비스 관리 보안 및 액세스 제어를 통한 애플리케이션 속도를 지원하는 Dimensions CM은 불필요한 개발 충돌을 방지하고, 복잡하고 보다 규모있는 애플리케이션의 관리능력을 향상시킵니다.


Personal Library Cache and Delta Transfers


개인 라이브러리 캐시(Personal library cache)와 파일 전송의 delta 파일 압축 방식은 지역적으로 분산되어 있는 개발팀들에 경쟁 상대가 없는 성능 개선을 제공하며, 중앙화된 SCCM의 장점을 유지하면서 분산 버전 제어의 성능을 제공합니다.


Give the Best of Both Worlds


성능 저하없이 Dimensions CM의 확장성, 보안 및 거버넌스와 함께 Subversion 클라이언트를 수용합니다. Dimensions CM Bridge를 이용하여 보다 확장된 개발 도구 통합을 이루며 집중화된 가시성과 통찰력을 경험해 보세요.


Enterprise Scalability & Security Role


제어를 통해 기업 보안 정책과 관행이 충족될 수 있도록 하며, 또한 메타데이터와 파일에 대한 암호화 및 보안을 보장합니다.




Comprehensive Traceability and Audit


Audit trails을 자동화하고 포착하는 것은 Dimensions CM의 메인스테이입니다. 관련 Health와 Quality 지표와 함께 별도의 비용없이 종합적인 추적 및 감사 기록을 제공합니다. No touch Compliance 이제 달성할 수 있습니다.







« Newer posts Older posts »