블로그 이미지
Welcom Back Tatter. 머샤머샤

카테고리

분류 전체보기 (140)
테터 (1)
悲歌 (12)
Lost & Found (1)
IT (126)
Total
Today
Yesterday

IBM Solution Day 2009에 다녀 왔습니다.

몸에 옷을 맞추는  편안함으로는, 현재의 경쟁적이고 어려운 상황을 극복 할 수 없습니다.
세계적인 표준(수준)이라는 옷에 몸을 맞추기 위해서 살을 깍고, 뼈를 깍는 노력을 하면, 세계적인 제품을 만들 수 있을 것입니다. 
- IBM Solution Day 2009 Keynote중에서 -

이번 IBM Solution Day의 핵심은, 인수로 IBM의 제품이된 Telelogic과 Jazz 플렛폼의 소개입니다만, 기존에 (상당기간동안)많은 매출이 있었던(그리고 이제는 Old Fashion이 되어버린) PVCS, ClearCase, ClearQuest에 대한 고민도 함께 느낄수 있는 상황인것 같습니다.

IBM의 차세대 먹거리인 Jazz Team Concert가 CVS+SVN+(Jira...)에 Eclipse ALM시장을 내준 상태에서, VSTS가 버티고 있는 VisualStudio시장을 공략하기에는 어려움이 많아보입니다.
물론, Telelogic이라는 좋은 솔루션이 새식구로 합류했지만... 시장의 확대는 고민이 되는 부분입니다.

여기에, 몇 년 동안 실루엣과 같은 국산 ALM도구들이 가지고 있는 틈새시장과 경쟁하는 것 또한 커스터마이징의 한계 때문에 요원한 것도 사실이고요.

몸에 옷을 맞추는 편안함이라는 단어에서, Global Standard한 제품을 써야지만 Global한 경쟁력을 가진다는 조금은 오만한 Keynote에 항의를 하고 싶습니다. :)

실루엣팀도 물론 지향하는 바가 Global한 표준을 따라가기 위해서 많은 고민을 하고있습니다만, ALM이라는 제품의 특성상 개발자, 개발조직 및 관리조직의 문화가 변화되지 않는데, 제품의 기능으로 그것을 강제하려 한다면, 그 제품에 대한 효용 혹은 실용은 급격히 떨어지게 되고, 이름만 있는 그리고 (도움이되게)사용되지 않는 제품이 된다는 것을 너무나 잘 알고 있습니다.

Jazz Team Concert가 Eclipse(+Add On, PlugIn)부흥 시점에 맞추어, 4년정도만 일찍 소개되었다면 어떤일이 있었을까? 하고 상상해 봅니다.
Posted by 머샤머샤
, |
이글은 이파피루스 대표이신 모던보이님의 글에 트랙백하기 위해서 씁니다.

이파피루스 대표께서 운영하는 블로그에 "버전관리시스템과 포스트모더니즘"이라는 글이 올라왔습니다. 물론 글의 내용은 본인도 상당히 공감하는 통제와 자유화의 관점에서 느끼는 소견이라 사족을 달고 싶지는 않습니다. (동감한다고 해야 할까요?)

하지만, CVS와 SourceSafe의 비교에서 일반 사용자(버전관리 시스템을 개발하는 사람은 아닌)분들이 조금 헷갈려 하시는 부분이 있어 언급하고자 합니다.

CVS와 SourceSafe로 대표되는 개인용 버전관리시스템의 가장 큰 차이점은 "무결성"을 유지하는 방법입니다.
여기에서 무결성이란, 현재 수정중인 소스를 여러 사람이 한꺼번에 수정 했을때, 혹은 이전 버전을 등록하려고 하는 등의 사용자의 실수를 방지하고, "버전관리 시스템"차원에서 결함이 없을을 보장하는 것 입니다.

크게 두가지 방법이 있습니다.
Lock-Modify-Unlock 방식과 Update-Modify-Commit 방식이 있습니다.

이해하기 쉽게 Lock방식은 "내가 수정 하는 동안 다른 사람은 아무도 수정하지 못한다."입니다. 이 방식으로 사용하는 버전관리 도구는 SourceSafe, PVCS가 대표적입니다만, SourceSafe는 2005 이후로 공식적으로는 Update방식을 지원하는 것으로 되어 있습니다. :)

Update방식은 "수정하기 전에 내 소스를 최신버전으로 맞추고(Update) 수정을 완료 한 다음에 반영(Commit)할 때, 내가 수정하는 동안 다른 사람이 수정 했는지 확인하고 반영한다."입니다.

여기에서 중요한 점은 수정하기 전에 반드시 Update해서 최신버전으로 맞추어야 잘 작동한다는 것으로, Lock방식에 익숙한 사용자분들이 많이 어려워 하는 부분이기도 합니다. 미리 미리 Update하지 않면 충돌(Conflict)의 원인이 되고, 그 충돌을 해결하는 과정에서 (이게 쓸만하네, 못쓰겠네, 소스를 날려 먹었네, 등등 여러 상황이 연출 됩니다.)

여기에서 일반 사용자분들이 생각하지 못하는 핵심은.
"Lock 방식이 우수하거나, Update 방식이 우수한 것이 아니라. 작업영역(소스를 체크아웃 받는 영역)이 공용으로 사용하는 폴더인지, 사용(개인)폴더 인지에 따라 더 적합한 방식이 결정되는 것입니다."

Update방식은 개인 작업영역을 고려하여 만들어진 방식입니다.
(쉽게) 우리나라 전산실에서 주로 하는 형태인 개발용 Unix Server에서 공용ID 하나로 개발하는 환경에서 Update방식을 지원하는 CVS를 사용하는 것은 (않되는 것은 아니겠지만) 상당히 난해 할 수 있습니다.

반면에 Lock방식인 SourceSafe나 PVCS는 몇십 혹은 몇백명의 개발자들이 투입되는 대형 SI프로젝트에서는 병렬개발 혹은 개발 퍼포먼스에 많은 문제가 발생합니다.라이브러리 등에서 대기하거나, Lock잡고 풀어주는것을 잊어 버리거나 Lock을 모니터링 하기 위해서 Scan하는 시간이 너무나 길어지는(가장 일반적인 어려움 입니다.) 현상이 발생 합니다.

여담이지만, SourceSafe나 PVCS는 Desktop용으로 설계된 제품이기 때문에, 일정 규모이상의 사용자가 사용하는 것은 당연히 무리가 있습니다. 10명 정도의 팀이 사용하기에는 비용대비 무난한 솔루션이지만 30명 혹은 100명이 사용한다면 다른 관점에서 접근하는 것이 좋습니다.

결론적으로 CVS방식 혹은 SourceSafe방식. 어떤 방식으로 버전을 관리 할 것인지 결정하는 핵심은 작업영역의 공용/사용 여부와 사용방식의 차이입니다. 어떤 솔루션이 더 우월(우수)해서 그런것은 아닐 것입니다.

그런 관점에서 CVS가 모더니즘적인 느낌이라는것은 저도 100% 공감하는 바입니다. :)
(하지만 시대의 흐름에 따라 도구의 기능은 자꾸만 변해하는 것이겠지요. 받아들이고, 만들어 내고...)

우리팀이 만들고 있는 실루엣의 경우에는 1.x 버전에서는 Lock방식으을 지원 했지만, 2.x에서는 Update방식중 일부를 포함해서 함께 지원하고 있습니다. CVS처럼 완전 Auto Merge를 지원하지는 않지만, 개별 소스의 변경 혹은 Merge 필요여부 상태를 알려주고, 사용자가 필터링해서 작업 할 수 있도록 하고 있습니다. 한국 개발자들의 눈높이에 맞춘기능이라고 할까요 :)
Posted by 머샤머샤
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함