MSDN Virtual Lab에서는 Microsoft Team Foundation Server 2010 제품을 온라인으로 트레이닝 받을 수 있는 서비스가 있습니다. Team Foundation Server 2010 을 설치할 여력이 되지 않거나, 제품을 직접 시연하고 싶은 사용자에게 가상 환경을 제공해 주고, 가상 환경에서 여러 시나리오를 따라해 볼 수 있습니다.

이 MSDN Virtual Lab 환경은 Internet Explorer 만 있으면 곧바로 서비스를 체험할 수 있습니다. 다만, 이 서비스는 가상의 환경으로 제공이 되기 때문에 가상 환경에서 실습이 끝난 이후에는 생성된 팀 프로젝트와 데이터는 모두 삭제가 됩니다.

실습은 모두 3가지의 모듈로 제공이 됩니다.

   

먼저 실습을 하고자 하는 모듈의 주소를 Internet Explorer 를 통해 접속을 합니다.

   

Launch Virtual Lab을 선택하면 아래와 같은 팝업이 뜨는데, 실습 환경의 가상 환경을 제공하기 위한 준비를 합니다. 아마도 실습을 하기 위한 스냅샷으로 돌아가고 있겠지요..?

   

이 가상 환경 실습은 원격 데스크톱 연결을 이용하는데, Connect 버튼을 클릭하면 곧바로 가상 환경을 원격 데스크톱 세션을 통해 접속이 됩니다.

   

접속이 되면 가상 환경 접속에 접속할 수 있는데, 마치 Hyper-V 관리 콘솔과 같은 화면이 나타납니다. 물론 단 하나의 VS2010CTP 라는 가상환경에만 접근할 수 있습니다.

   

아래오 같이 가상 환경이 접속이 되면, 텅 빈 윈도우 바탕 화면이 나타나는데, Start 버튼을 클릭하면 우리가 실습에 필요한 모든 소프트웨어가 설치가 되어 있습니다. 우측의 패널에는 실습 단계를 차례대로 진행할 수 있고, 상단에 HTML과 PDF 문서를 다운로드 받을 수 있습니다.

   

사실 Team Foundation Server 2010의 MSDN Virtual Lab 서비스가 나온지는 좀 되었지만, 아직 많이 알려지지는 않은 듯 합니다. 소프트웨어 패키지를 구매하고 설치하고 MSDN을 통해 기능을 익힐 수 있지만, 이렇게 가상화 서비스를 이용해 부담 없이 하드웨어나 환경적인 제약 없이 실습 공간을 제공해 주는 것을 보면 Before Services 가 짱 이네요.

(BE란 ? 고객들이 제품 구매에 앞서 제품을 직접 써보거나 충분히 경험해 본 다음 구매를 결정할 수 있도록 하는 다양한 체험 프로그램 서비스를 말한다. 기존 서비스 방식인 애프터서비스(AS)는 고객들이 제품을 구매한 후 제품에 대한 차후 서비스를 받을 수 있다. )

 

본격 TFS 스릴러, 쏘울(3) - 신의 한 수.

Team Foundation Server 2011. 6. 13. 09:00 Posted by 알 수 없는 사용자

- Previously on TFS Thriller Ssoul.

쏘울의 컬렉션을 연결하는 데 성공한 보람과 세식. 덤앤 더머, 반짝반짝 모래알 같은 그들도 뭉치니 미션을 해결할만한 지혜는 나오는 듯 하다. 초보자를 고려한듯 친절하게 아주 천천히 조금씩 교모해지는 쏘울의 미션. 그들은 집에 갈 수 있을까?


- 신의 한 수.

자 이제 쏘울이 또 뭐라고 하는지 들어볼까?”

왠지 집에 가라고 할 거 같아서 두근두근 거리는데?”

퍽이나

fu**?”

? mot*** fu**?”

(저자 주 : 발음을 잘 해보시면, 이해 가능한 하급 말장난 패턴입니다. 방송심의위원회의 규정을 준수하기 때문에 별표처리한 것 양해바랍니다.)

폭풍 같은 개드립이 휩쓸고 지나간 자리는 적막만이 감돌았다.

우리 쏘울 이야기나 들어볼까.”

그러지

2번 동영상 파일을 재생했다. 이제 조금씩 익숙해지는 쏘울의 오토튠 목소리.

그래그래그래. 여기까지 잘 온 거 같군. 자네들도 바보는 아닌 거 같애. 자 그럼 이번에는 재밌는 퍼즐을 하나 풀어볼까? 나름 쏘우 패러디인데 퍼즐 하나 없으면 섭하겠지? 자 지금부터 퍼즐을 설명할 테니 잘 들으라고. 과제물 폴더의 Lab2폴더를 열어봐. 그러면 List라는 텍스트파일이 있어 그걸 열어봐.”


어때? 익숙한 C#코드가 보이지? 자 이제, 비주얼 스튜디오로 가서 아까 다운로드한 프로젝트를 열어봐.”


"
그래 내 애정이 담긴 환영 메시지가 보이겠지. 감동의 눈물은 잠시 접어두라고. 자 그럼 저 환영 메시지를 지우고, 아까 내가 준비한 텍스트파일 안의 내용을 거기다 붙여."


좋아 다 되었겠지. 이제 퍼즐을 설명해주지. 두 목록을 하나의 목록으로 합쳐야 하네. 아이디 목록의 첫 번째 항목과 이름 목록의 첫 번째 항목, 그리고 다음은 두 번째 항목끼리 그렇게 말이지. 그리고 합친 목록의 항목을 한 줄에 하나씩 출력하는 거야. 각 항목의 속성들은 쉼표로 구분해서 말이지. , 해서는 안 되는 게 몇 가지 있어. 작성한 코드를 절대로 지워서는 안되네. 한 번의 체크인과 두 번의 변경 내용 취소로 코드 작성을 완료해야 하네. , 백 스페이스 키나 delete키를 눌러서는 안 된다는 거지. 그리고 배열의 인덱스를 사용해도 안 돼. 그리고 마지막으로 Main메서드 안의 코드는 10줄 이내여야 하네. 이 제약사항만 지키면 되는 거지. 그럼 행운을 빌어.”

난생 처음 받아보는 황당한 요구사항에 둘은 잠시 생각에 잠겨 허우적 대고 있었다. 그리고 세식이 먼저 말문을 열었다.

그러니까 집에 안 보내 준다는 거네?”

너 예전에 천국이 너네 집이라고 했었지? 지금 당장 입주할래?”

왜 그러냐능!! 가정이 있는 몸 이해 못하냐능!!”

그래~ 빨리 집에 가야 되니까 이거부터 해결하자고~”

그래! 집에 가야지! 합시다!”

잠깐 생각하는 시간을 갖고, 이번에도 세식이 먼저 입을 열었다.

그럼 일단 지금 상태로 체크인 해두자. 코드 지우지 말라고 했으니까 초기 상태는 저장해놔야 다시 시작을 하지.”

, 좋은 생각이군.”


오케이 체크인은 됐고. 이제 둘을 합쳐야 되는데.”


무의식 중에 for문을 작성하던 보람은 소스라치게 놀랐다.

“꺄악!!! 어머나!!!!!!!!!”

야 인덱스 쓰지 말라 그랬자나~ 왜 그러셩~”

일단 다시 원상 복구 시키자고…”


오케이 다시 돌아왔다.”

이제 변경 취소 한번 남았군.”

두 목록을 합쳐야 하는데 인덱스를 사용하면 안된다라... 그럼 LINQ를 사용하라는 말인 거 같은데.”

“LINQ는 니가 더 잘알잖아. 뭐 좋은 거 없어?”

이게 두 목록을 하나로그리고 각 목록의 항목을 하나로 합치면서뭔가 기억날 듯 말 듯 하네.”

봐바. 여기 각 목록이 나란히 일렬로 있다고 했을 때, 순차적으로 각 목록의 항목이 하나씩 만나서 새로운 항목을 만든다는 거잖아? 이런 거 처리하는 거 없어?”

오호설명을 들으니 Zip이 생각나는데?”

그렇게 코드를 조심조심 심사숙고하며 작성해 나가기 시작했다.

우선 결과로 나오는 타입이 기존에 존재하지 않는 타입이니까 var타입으로 받고, 아이디 목록을 기준으로 이름 항목을 가지고 하나씩 붙이게…”


항목을 합치는 람다식이 첫 번째 목록의 항목과 두 번째 목록의 항목을 받아서 TResult라는 타입의 새 항목을 만드는 거니까…”


이렇게 작성하고, foreach로 출력하면 되겠군.”


~ 작성 끝? 확실한 겨?”

아마그렇지 않을까?”

떨리는 손으로 ctrl+F5를 누르자.


오케이. 떴다!”

…..”

근데 있잖아이거 샘플 데이터를 유심히 보니, 쏘울의 취향을 알 것도 같은데…?”

뭔데?”

일단, 콩과 2는 홍진호를 가리키는 거고, 한승연은 스타 팬들의 1대 아이콘, 아이유는 2대 아이콘 이었단 말이지. , 쏘울은 스타에 매우 열광하는 사람이 아닐까 하는 거고…”

원빈이랑 김두현은?”

글세 원빈은 잘 모르겠고김두현은 수원 블루윙즈 선수이고, 등번호가 4번이었단 말이지. 그러니까 수원 서포터가 아닐까 하는 생각이 드는 군.”

그래서 누군지 알겠엉?”

전혀.”

왜 아는 거 처럼 말해?”

어쩌라고.”

쏘울의 미션을 또 하나 해결한 보람과 세식. 과연 집에는 언제쯤

본격 TFS 스릴러, 쏘울(2) - 쏘울 컬렉션.

Team Foundation Server 2011. 6. 8. 15:42 Posted by 알 수 없는 사용자
- Previously on TFS Thriller Ssoul.

덤 앤 더머 같이 심각한 상황에서도 농담따먹기 하면 클릭클릭으로 난관을 해쳐가던 보람과 세식. 그들 앞에 쏘울의 두번째 미션이 떨어졌다. 미리 만들어서 분리해놓은 팀 프로젝트 컬렉션이 있으니 그걸 연결하고, 그 안에 저장된 소스를 다운로드 하라는 것.


- 쏘울 컬렉션.


근데 팀 프로젝트 컬렉션이 뭐냐?”

글세 컬렉션이니까, 뭐 이렇게 모아놓은 걸 컬렉션이라고 하잖아? 그러니까 팀 프로젝트를 모아 놓은 걸 말하는 거 아닐까?”

오오미 세식이가 이렇게 똑똑할 줄이야.”

여러분 이게 바로 박세식입니다.”

적절한 패러디로군.”

내가 좀 적절하지. 야 그건 이제 됐고, 빨리 컬렉션 파일이나 찾아보자. 나 빨리 집에 가야 돼.”

보람은 세식의 귀소본능을 뒤로하고 C드라이브의 과제물과 Lab1폴더를 열었다.


"음
. 일단 데이터베이스 파일이네. 일단은 SQL서버에 연결해봐야 겠다."

여기 친절하게 매니지먼트 스튜디오 설치 파일도 같이 넣어놨고만. 웃어야 할지 모르겠다.”

보람과 세식은 우선 매니지먼트 스튜디오를 설치하고, Tfs_ssoul 파일을 데이터베이스에 연결하기 시작했다.


오케이 연결은 끝났고 이제 TFS에서 연결해야 되는데, 어떻게 해야 되는 걸까

여기 TFS 관리 콘솔 인가 하는 거 있네, 관리 작업이니까 여기서 하는 거 아닐까?”


오오미 좋은 생각이군. , 여기 팀 프로젝트 컬렉션 항목이 있네.”

여기 보니까 컬렉션 연결이 있는데? 이거 아닌가?”

눌러 보지 뭐


오 데이터베이스 자동으로 찾아주는데? 역시 로컬에 같이 깔아놓으면 편하구만


준비 검사 통과 좋고

오케이, 연결 완료. 안에 팀 프로젝트가 뭐가 있나 볼까.”


"이름 짓는 거 참 특이하고만
. ssoulTeam이라…"

일단 이거 비주얼 스튜디오에서 여는 게 급선무로군.”

“아! 나 예전에 누가 이거 쓰는 거 봤는데 팀 탐색기 안에서 연결하고 하는 거 같더라.”


"오호 좋은 정보 감사
. 팀 탐색기에.. 팀 프로젝트에 연결이라는 버튼이 있군."


오케이 이렇게 팀 프로젝트 컬렉션 선택하고 연결


와 연결 됐다. 이제 소스 코드만 다운 받으면 되지?”

. 소스 코드는 아마도 소스 제어쪽에서 가능할 거 같은데더블 클릭하면 열리겠지?”


오 열렸다.”

로컬 경로라는 부분이 눈에 확! 들어오는 데.”

나도 확! 들어온다. 눌러봐


오케이 맞는 거 같네. 로컬 경로 어디에 다운하라고는 안 했으니까 그냥 C ssoulTeam 폴더로.”

좋아 좋아. 끝이다.”

. 고생했네 친구.”

뭐 고생은 같이 했지.”

그럼 우리 이제 집에 갈 수 있는 거야?”

그러니까 그건 쏘울 마음이라고.”

과연 두 친구는 이 방을 나가서 집으로 갈 수 있을까.(BGM - 인생 극장 엔딩)

본격 TFS 스릴러, 쏘울(1) - 검은 물체의 정체.

Team Foundation Server 2011. 6. 3. 09:00 Posted by 알 수 없는 사용자
- Previously on TFS Thriller Ssoul.

이유도 모른 채 어둡고 축축한 방에 갇혀 쏘울이 내는 미션을 해결해야 하는 보람. 이해할 수 없는 문제는 이해하려고 노력하지 않는 것이 제 맛. 상황을 이해하기 보다 미션 해결을 하려하는 순간, 등 뒤에서 검은 물체가 부시럭 거리는 소리와 함께 움직였다. 과연 그 물체의 정체는.


- 검은 물체의 정체.

소리가 난 곳에서 뭔가 거대한 검은 물체가 일어났다. 옛날에 유행하던 유령의 모습 처럼 사람이 비닐을 뒤집어 쓴 것 같은 모양을 하고 있었으며, 몸뚱이에서 팔 같은 게 튀어나오기도 했다. 그리고 잠깐을 버둥거리더니

아 쫌, 이거 좀 벗겨달라고!!”

보람의 귀에 익숙한 소리가 들려왔다. 반신반의하며 살금살금 다가가서 비닐을 살포시 벗겨주었다.

? 야 너 여기서 뭐하냐

검은 물체는 보람의 친구인 세식이었다.

글세 나도 그게 궁금한데, 당췌 내가 왜 여기 있는 건지.”

일단 보람은 지금까지 자신이 보고 들은 것들을 세식에게 친절하게 알려줬다. 굳게 잠긴 문, 분해되어 있던 컴퓨터, 컴퓨터의 암호, 쏘울, 그리고 TFS.

그래서? 나 집에는 언제 갈 수 있는 건데?”

그걸 내가 알겠냐.”

!!! 와이프한테 또 늦게 들어온다고 혼나겠네~!!”

야 지금 늦게 들어가는 게 문제냐? 상황파악이 안돼? 우리가 이 방에서 나갈 수 있을지 없을지도 모르는 상황이라고

….. 우리가 누구한테 원한 살만한 게 있었나?”

글세. 원한이라. 이 정도의 사건에 휘말릴 만큼 센 원한은 없는 거 같은데.”

그럼 투한은?”

야 너 그냥 다시 비닐 뒤집어쓰고 있어라.”

그렇게 그들은 늘상 하던 무의미한 언어 유희질을 잠깐 나눈 뒤에 다시 축축하고 냄새나는 현실로 돌아왔다.

그래서 지금 쏘울이라는 놈이 여기다가 TFS를 설치하라고 했단말이지?”

그런 셈이지.”

근데 이거 윈도우 7이잖아? 여기에 TFS 설치되던가?”

되던가? 그래도 되니까 해보라고 한 거 아닐꺼나?”

그렇게 이야기 하며 ISO이미지를 마운트 시켰다. 그리고 설치 이미지의 폴더를 살펴봤다.


오 여기에 TFS-x64라고 있네, 여기 한번 들어가봐


역시 설치는 setup이 제 맛이지


야 여기 설치 기능 물어보는데?”

일단 잘 모를 때 설치는 무조건 전부 선택으로 하는 거야.”

그렇게 설치가 진행되고, 성공 메시지가 나타났다.

오오미 설치가 끝났군.”

구성 버튼을 누르자 구성 마법사가 시작되었다
.

야 보람 여기 몇 가지 옵션 있는데? 아마 우리는 기본 일까나?”

설명을 읽어보니 기본 맞는 거 같지?”


이 메시지는 뭐지…?”

글세? 윈도우 버전 한번 확인해봐.”

오호라, 이게 윈7 서팩1 이니까 TFS보다 나중에 나온 버전이라는 말이군? 뭐 문제 있겠어? 다음!”


SQL 서버가 안 깔려있으니 설치까지 해주나 본데?”

예전에 듣기로 TFS가 설치가 쫌 어렵다고 하던데 편해졌나 보군.”
 

통과 통과 좋아.”


완료 완료 좋아

그렇게 그들은 이 상황이 어떤 상황인지도 잊은 채로
, 통과와 완료에 들떠 있었다. 역시 남자는 장난감을 좋아하는 동물인 걸까.


오케이 서버는 끝난 거 같고, 뭐 빌드에 필요한 서비스가 있는 모양이군.”

근데 뭐 지금까지 그냥 클릭클릭하고 넘어왔잖아. 이거도 그럴 거 같은데.”


"클릭
."


"클릭
."


"클릭
."


"통과 통과"


"완료 완료"


그러게 진짜 클릭클릭 하면 통과 통과 완료 완료 고만

그런 이제 우리 집에 갈 수 있는 거야?”

글세그건 쏘울이 어떻게 나오냐에 따라 다르겠지.”

그렇게 보람은 동영상 파일이 있는 폴더를 열고
, 1번 파일을 재생했다. 다시 스피커에선 오토튠 목소리가 흘러나왔다. 그리고 이번엔 배경 음악도 깔려있었다.

안녕하신가 보람씨. 아 이제 세식씨도 일어났으려나? 어때? 배경 음악이 깔리니깐 오토튠에 대한 거부감도 줄어들지? 아까 0번 찍고 나서 모니터링을 해보니까 오토튠이 좀 귀에 거슬리더라구. 그래 이걸 봤다는 건 TFS설치는 성공했다는 거겠지? 물론 성공했겠지. 윈도우 7 TFS 설치는 그냥 클릭만 하면 넘어가는 거니까 말이지. 좋아 이제 또 과제를 주지. C드라이브에 보면, ‘과제물이라는 폴더가 있고 거기에 보면, ‘Lab1’이라는 폴더가 있지. 그 폴더 안에 보면, 내가 ssoul이라는 팀 프로젝트 컬렉션을 분리해 놓은 게 있어. 그걸 지금 설치한 TFS에 연결하고, 그 안에 있는 팀 프로젝트의 소스를 하드 디스크에 다운로드 해. 그게 다음 과제야. 그럼 잘 해결하길 바래.”

영상이 끝나고 세식과 보람은 잠깐 멍한 상태로 버퍼링을 하고 있었다
.

야 그럼 우리 집에 못 가는 거야?”

넌 집에 보물 숨겨놨냐. 왜 자꾸 집 타령이야.”

있지. 우리 아들 내미.”

"아들 내미 보고 싶으면 일단 과제부터 해결할 생각을 하자
. 안 그러면 여기가 우리 집이 될지도 모르니 말이지.”

커헉.”

본격 TFS 스릴러, 쏘울(0) - 프롤로그.

Team Foundation Server 2011. 6. 1. 09:00 Posted by 알 수 없는 사용자

- 본격(이라고 쓰고 막장이라고 읽는다) TFS 스릴러, 쏘울이란?

이 시리즈는 Team Foundation Server 2010을 주제로 연재되는 본격 스릴러입니다. 왜 아티클이 이딴 형식으로 연재되는가하는 생각을 가지신 분들이 있을 것 같습니다-_-. 저 자신도 글을 쓰면서 왜 이렇게 써야 하는지 의문을 가지고 있으니까요. 산을 힘들게 오르는 사람들에게 왜 그렇게 힘들게 산을 오르느냐고 물어보면, '산이 저기 있으니까 오른다'고 대답했다는 이야기가 있습니다. 진짜 인지 우스갯소리인지는 명확하게 알 수 없지만, 제가 이딴 본격 스릴러 형태로 TFS 아티클을 쓰는 것도 비슷한 이유입니다. 평범한 소시민 주제에 평범하게 하는 걸 별로 안 좋아하는 편이기 때문이죠. 이해가 되시나요? 아마 이해가 안 되실 겁니다. 한 철학자에게 '당신은 대체 누구요?'하고 물었더니 '나도 그게 알고 싶소!'라고 답변했던 것 처럼 말이죠. 아마도 이 시리즈가(글쓴이의 수준이) 막장이 될거라는 불안감을 해소하기 위해서 여러분의 정신을 혼미하게 만들고 싶은 마음이 있나 봅니다. 정신이 혼미한 상태에서 읽으면 글의 수준을 가늠하기 힘들기 때문이죠. 어헣.

아무튼, 이 시리즈는 계속해서 스릴러라는 장르를 유지한 채로 진행해볼 생각입니다. 어느날 갑자기 스릴러가 아니라 매뉴얼 형태로 글이 바뀌어 있다면, 저의 도전정신을 높게 평가해서 피식하고 웃어 넘겨 주시기 바랍니다. 허허허허. 이 시리즈의 대상은 TFS 2010을 시작하는 분들 입니다. 그럼. 이제 쏘울이 시작됩니다. 저와 함께 TFS를 만져보시죠 :)



------------------------------------------------------------------------------------


축축한 공기가 기분 나쁘게 폐를 드나드는 불쾌한 느낌을 느끼며 그는 눈을 떴다. 그리고 그의 눈 앞에는 뭔가 이상한 장면이 눈앞에 펼쳐지고 있었다. 그는 할 말을 잃은 채로 방안을 둘러봤다. 한 쪽에는 이불 같은 것이 쌓여있고, 문은 철제 문으로 전자장치로 잠겨있는 것 같다. 그리고 창문은 아무 조그맣고, 오랫동안 청소를 안 한듯 먼지가 가득 껴있었다. 그리고 책상이 하나 놓여있다. 이렇게 방안을 둘러보고 나서야 스스로에게 질문을 할 여유가 생겼다.

여긴 어디지?’

생각의 끈을 잡으려 노력하면서 일어나려는데 뒷 목 언저리가 쑤셔왔다.

뭐지…?’

일어나려던 생각을 접고 앉아서 생각을 잡으려 노력했다. 그러자 어제 회사 회식이 있었고, 회식을 마친 뒤에 집에 가기 위해서 택시에 올라탔던 것이 기억났다.

설마납치 같은 건가?’

거기까지 생각이 미치자 일단은 방을 벗어나야 겠다는 결론에 이르렀다. 그리고 시선이 잠겨있는 문에 고정됐다.

저 문을 어떻게 하면 열 수 있을까?’

그렇게 문을 쳐다보며 분석을 시작했다.

쏘우 같은 공포영화에서나 나올법한 전형적인 문이군. 아마도 만지면 전기 충격이 오지 않을까?’

이런 생각을 하다가 문득, 자기 자신이 한심하게 느껴졌다. 그래서 손잡이에 손을 가져가면서 생각했다.

참 내이런 상황에서 잘도 그런 생각을 하는 구어러러호가올ㄴ기ㅏ헉!!!!!!!’

바닥에서 1분정도를 떼굴떼굴 굴렀을까. 정말 전기 충격이 있을 줄은 몰랐기 때문에 그는 무척이나 당황한 모습이었다. 도대체 이 상황은 뭘까. 그리고 정신을 차릴 무렵 방 한 구석에 큰 박스 하나가 보였다. 조심조심 박스로 다가서서는 박스를 열어봤다.

…? 이런 곳에 왜…?’

박스 안에는 컴퓨터 부품과 케이스, 그리고 모니터 및 기타 등등의 부품이 들어있었다. 그는 반사적으로 컴퓨터를 조립하면서 자신의 정체성을 분명히 하고 있었다. 그는 분명 컴퓨터와 매우 익숙한 환경에서 사는 사람이리라.

컴퓨터 조립을 끝내고 나자 그의 표정이 다시 어두워졌다. 사람은 뭔가 몰두할 일이 생기면 근심을 잠시 잊어버리는 법이다. 그래서 사람은 일에 미친 듯이 몰두하기도 하는 것이다. 현실에서 격리된 세상에서 머물기 위해서 말이다. 컴퓨터 조립에 몰두했던 그의 정신이 몰입에서 헤어나오는 순간, 불쾌하고 불확실한 현실과 다시 마주하게 되었다. 하지만, 그는 곧 자신이 몰두할 수 있는 일이 하나 더 있음을 발견했다.

좋아일단 전원을 켜보자고. 혹시 이 컴퓨터 안에 뭔가 있을지도 모르니 말이지.’

그렇게 책상 위로 컴퓨터를 옮기고 전원을 넣었다. 그랬더니 역시나 익숙한 윈도우 마크가 그를 반겼다.

뭐야다 세팅한 컴퓨터를 일부러 다시 분해해서 나뒀단 말인가꼼꼼한 놈이고만..?’

그렇게 윈도우가 부팅되고, 로그인 창이 나타났다. 그리고 순간 그는 멈칫했다. 로그인 창에 나타난 것은 그가 평소에 회사에서 사용하던 아이디였기 때문이다. 잠깐을 머뭇거리던 그는 익숙하게 비밀번호를 입력했고 윈도우는 환영합니다라는 메시지로 그를 반겼다. 그리고 바탕화면이 나타났다. 그의 눈이 조급하게 바탕화면을 훑었다. 그리고 그의 예상대로 바탕화면에는 하나의 폴더가 있었다. 폴더의 이름은 강보람씨 보셩’. 그렇다 이 남자의 이름은 강... 보람은 생각에 잠겼다.

내 회사 아이디와 비밀번호, 그리고 내 이름까지 알고 있다누굴까. 뭐 하자는 걸까.’

폴더를 열자 동영상파일이 여러 개 나타났다. 동영상 파일에는 번호가 붙어있었다. 침을 한번 삼키고, 0번 파일을 열었다. 그리고 스피커에서 왠 오토튠 처리된 목소리가 흘러나왔다.

안녕 보람씨. 당신이 왜 여기에 갇혀있는지 궁금하겠지. 하지만 그건 천천히 이야기 하자구. , 우선 내 소개를 먼저 할까? 내 이름은 쏘울. 이름을 들으면 삘이 딱 오지? 그래 바로 그 쏘우의 모방 범죄를 하고 있는거지. 낄낄낄. 그래 쏘우를 봤으면 이제 자네한테 어떤 일이 닥칠지는 예고편을 안 보여줘도 잘 알 수 있겠지?”

오토튠으로 내는 소리를 무반주로 듣고 있자니 환장할 노릇이었다. 하지만, 보람은 지금 그런 걸 가릴 처지가 아니었다. 당장이라도 멱살잡이 하고 오토튠에서 해방되고 싶지만, 상대는 모니터 안에 있으니 할 수 없는 법.

그래 이제 슬슬 미션이 뭔지 궁금해지겠지. 쏘우에서도 미션이 주어지고 성공하는 사람만 생존했으니 말이지. 자넨 프로그래머니까 좀 프로그래머 다운 미션을 주지. 자 그럼 이제 우리 즐거운 첫 번째 미션을 수행해 볼까? 자네가 지금 영상을 보고 있는 컴퓨터는 Windows 7이 깔려있어. 그리고 폴더에 필요한 파일도 ISO 이미지로 준비가 되어 있지. 우선 여기에 TFS가 동작할 수 있게 설치하는 것으로 첫 번째 미션을 시작해보자고. , 그리고 노파심에서 하는 이야기 인데, 내가 늘 지켜보고 있으니까 말이지 농땡이나 허튼 생각은 하지 말라고. 미션을 잘 수행해주면 그 방에서 나올 수 있게 해줄게.”

영상이 끝나고 보람은 멍한 상태로 모니터를 쳐다보고 있었다.

? TFS? 미션? 쏘울?!?!?!?! 스토리는 막장 드라마 수준이구만그래 일단 방법이 없는 거 같으니 해보자고.”

그렇게 단념하고 폴더에서 ISO이미지를 찾아서 마운트 하려는 순간 등 뒤에서 부스럭 거리는 소리가 났다. 깜작 놀란 나머지 자리에서 팔짝 뛰어서 떼굴떼굴 구르고 소리가 난 쪽을 쳐다보았다. 그리고 소리가 난 곳에서는


- 차회예고

부스럭 거리는 소리에서 나타난 것은 거대한 검은 물체. 과연 그 물체는 무엇일까. 과연 보람은 그 검고 거대한 물체와 쏘울의 미션에서 살아남을 수 있을까?

VSS 마이그레이션 전략

Team Foundation Server 2011. 1. 18. 08:30 Posted by POWERUMC

Visual Source Safe 마이그레이션 이전에

많은 분들이 예전에 Visual Source Safe(이하 VSS) 를 사용하시면서, 현재는 이 VSS가 많은 골치거리라고 느끼시는 분들이 많이 계실 겁니다. 사실 소스 제어를 떠나서 VSS는 안정성 면에서 굉장히 불리하죠. 가장 흔하게 겪는 안전성의 문제는 파일 시스템 기반의 소스 제어 데이터베이스가 꼬이는 겁니다. 왜 꼬이는지는 알고 싶지 않지만, 오래 쓰면 쓸수록 꼬입니다.

제가 겪었던 꼬이는 대표적인 문제가 체크인 상태가 다른 사람에겐 체크인 상태가 아니라는 것이죠. 아무리 다른 사람이 최신 버전을 가져와도 그 소스 코드는 예전에 체크인 되었던 소스 코드이고, 불가피하게 강제로 다시 체크인해야 하기도 합니다. 뭐, 여기까지는 정말 가벼운 일상적인 문제이죠? 더 심한 경우는 복구 불능..!

최근 들어서, VSS의 이런 문제 때문에 많이 고생하시는 분들이 다른 소스 제어 제품으로 갈아타려는 준비를 많이 하십니다.

   

왜 VSS에서 이런 문제가 발생하나…?

사실 어쩔 수 없습니다. 지금에야 VSS가 실컷 얻어터질 수 밖에 없지만, 사실 예전에도 뚜렷한 대안이 있었던 것도 아닙니다.

VSS아니면 CVS(Concurrent Versions System) 인데, 이 CVS도 그 기능 자체의 구현이 충실하지 않아 문제점을 얘기하자면 VSS나 크게 별반 다를 것이 없었습니다. 참고로 Wikipedia 의 과거 소스 제어 제품을 보면 다음과 같지요. 즉, 당시에 VSS 보다 더 뛰어난 제품도 찾기 힘들었고, 현대의 이슈인 안정성과 성능, 보안의 요소는 어디를 뒤져봐도 없었습니다. 즉, 당시에는 어떤 제품을 선택하든 똑같은 문제를 겪었을 테니까요.

   

다만, VSS 제품은 VSS 2005 버전까지 오면서 많은 부분에서 보완이 되었지만, 사용자의 요구사항에 매우 소극적으로 대응했던 점에서 아쉬움이 남습니다.

아래는 조만간 나오게 될 백서의 내용 중의 일부이니 참고하세요.

   

 

일반적으로 '형상관리'라는 의미의 소스 제어는 소스 제어(Source Control), 버전 컨트롤(Version Control), 소프트웨어 환경 관리(Software Configuration Management)라고 불립니다. 향후 소스제어는 서버/클라이언트 아키텍처로 변경되면서 개발 조직에서 소스를 공동으로 개발하고 공유할 수 있게 되었습니다.

초기 Microsoft 에서는 소스 제어를 위한 소프트웨어로 Visual SourceSafe(비주얼 소스세이프) 를 내놓게 되었습니다. Visual SourceSafe는 처음 One Tree Software 라고 불리는 회사에서 여러 운영체제를 지원하는 소스 제어 솔루션을 만들었는데, Microsoft 는 이를 1994년에 인수하여 즉시 Visual SourceSafe 3.1 버전을 내놓았습니다. 그 이후로, Visual SourceSafe 4.0, 5.0, 6.0, 2005 버전까지 지속적으로 지원을 하다가, Visual SourceSafe 2005버전을 마지막으로 이 제품의 업데이트는 이루어 지지 않고 있습니다.

Microsoft는 그 이후에 내부적으로 소스 제어 뿐만 아니라 버그 추적/품질 관리/제품 계획에 사용되는 솔루션을 만들었고, 그 이름은 "Product Studio" 라는 제품입니다. 이 제품은 Microsoft 내부적으로 사용하기 위한 제품이었고, 이 제품을 통해 노하우를 발전시켜 비즈니스 프로세스, 개발 등 전반적인 모든 개발 활동을 아우를 수 있는 "Visual Studio Team System, Team Foundation Server" 를 시장에 내놓게 되었습니다.

   

VSS to TFS2010 마이그레이션 전략

일단 아쉽지만 VSS와 같은 제품 군은 TFS(Team Foundation Server)에 100% 마이그레이션이 힘들 수 있습니다. 왜냐하면 VSS는 파일 시스템의 파일 단위 체크인 방식인데, TFS제품은 변경 집합(ChangeSet) 기반의 소스 제어 구조를 가집니다. 변경 집합은 변경이 일어난 묶음의 세트를 얘기하며, 이 변경 집합 덕분에 분기(Branch)/병합(Merge)/이력/관리가 매우 용이합니다. 덕분이 3-ways 방식의 병합이 매우 안정적으로 동작할 수 있고요.

VSS to TFS로 마이그레이션이 100% 보장할 수 없는 예를 들자면, 고객의 데이터베이스 스키마에 "주소"가 없는데, "주소" 컬럼이 생겼다고 주소를 가짜 데이터로 입력할 수 는 없는 노릇입니다. 게임을 예로 들면, 게임 시스템에 새로운 스킬이 생겼다고 종족/레벨/서버를 막론하고 모두가 이 스킬을 습득할 수 없는 것과 마찬가지입니다.

기존의 VSS는 레이블(Labeling) 방식의 이력 관리를 하였기 때문에, 이것을 변경 집합(ChangeSet) 기반으로 바꿀 수는 없습니다. 그래서 100% 마이그레이션이 힘든 한 가지 원인이기도 합니다. 그렇게 때문에 VSS to TFS로 마이그레이션을 결심하였다면, "퀑 대신 닭", "짜장면 대신 짬뽕","아이폰 대신 블랙베리" 라는 심정으로 100%를 기대하시면 오히려 독이 될 수 있답니다.^^

아래는 VSS to TFS 마이그레이션 전략을 메트릭스로 표현해 보았습니다. 물론, 이것 보다 더 많은 고려 사항이 있습니다만, 대략 아래의 정보에 답할 수 있다면 마이그레이션은 가능하다고 말씀 드리고 싶네요.

   

   

Team Foundation Server 및 .NET 플랫폼 기술 문의

언제든지 저희 Visual Studio Korea 공식 팀 블로그에 문의를 주시기 바랍니다. 저희가 모든 것을 가이드해 드릴 수는 없지만, 저희 팀의 다양한 분야의 기술 전문가들이 성의껏 여러분들을 도와드리고 있습니다. 저희 팀은 언제나 새로운 기술에 목말라있고, 먼저 고민하고 뼈저리고 값진 노하우를 경험한 컨설팅/개발/교육 및 강사 출신의 분들과 Microsoft MVP 활동을 하고 계신 많은 분들이 계십니다.

더불어, Microsoft 의 Social Forums 인 http://social.msdn.microsoft.com/Forums/ko-kr/categories/ 에 오시면 많은 전문가들의 생생한 고급 답변을 들을 수 있습니다.


여러분에게 안타까운 소식과 좋은 소식 가지를 전해 드리고자 합니다. 먼저 안타까운 소식을 하나 전해드리도록 하겠습니다.

 

안타까운 소식, Microsoft 내놓은 초기 소스 제어(Source Control) 제품인 VSS(Visual Source Safe) 지원이 중단 되었습니다. 들어가기 앞서, 일반적으로 '형상관리'라는 의미의 소스 제어는 소스 제어(Source Control), 버전 컨트롤(Version Control), 소프트웨어 환경 관리(Software Configuration Management)라고 불립니다. 향후 소스제어는 서버/클라이언트 아키텍처로 변경되면서 개발 조직에서 소스를 공동으로 개발하고 공유할 수 있게 되었습니다.

초기 Microsoft 에서는 소스 제어를 위한 소프트웨어로 Visual SourceSafe(비주얼 소스세이프) 내놓게 되었습니다. Visual SourceSafe 처음 One Tree Software 라고 불리는 회사에서 여러 운영체제를 지원하는 소스 제어 솔루션을 만들었는데, Microsoft 이를 1994년에 인수하여 즉시 Visual SourceSafe 3.1 버전을 내놓았습니다. 이후로, Visual SourceSafe 4.0, 5.0, 6.0, 2005 버전까지 지속적으로 지원을 하다가, Visual SourceSafe 2005버전을 마지막으로 제품의 업데이트는 이루어 지지 않고 있습니다.

 

하지만, Microsoft 이후에 내부적으로 소스 제어 뿐만 아니라 버그 추적/품질 관리/제품 계획에 사용되는 솔루션을 만들었고, 이름은 "Product Studio" 라는 제품입니다. 이 제품은 Microsoft 내부적으로 사용하기 위한 제품이었고, 이 제품을 통해 노하우를 발전시켜 비즈니스 프로세스, 개발 전반적인 모든 개발 활동을 아우를 있는 "Visual Studio Team System, Team Foundation Server" 를 시장에 내놓게 되었습니다.

 

즐거운 소식은, VSS 사용자를 위한 TFS2010 시리즈가 나왔다는 것입니다. 한국 MSDN 페이지에 대문짝만하게 걸려있는 문서가 바로 그것입니다.

 

 

 

 

 

이런 이음매가 없는 것을 연결시키는 하나가 영화에서 "To be continue…" 자막이죠… ^^ 마치 지금과 같은 VSS TFS2010 과의 이음매처럼 말입니다. Microsoft 에서 지원이 중단된 제품은 최대한 빨리 최신 버전으로 옮기는 것이 좋습니다. 유예기간과 지원에도 불구하고 버전을 쓴다는 것은 장애에 대해 이상 Microsoft 지원을 받지 않는다는 것과 마찬가지이고, 어떤 솔루션을 사용하든 이러한 절차는 대부분 통용되기 때문입니다. (물론 장애에 대해 그에 상응하는 비용을 지불하면 지원은 받을 있을 것입니다.)

 

 

그럼 간단히 "VSS사용자를 위한 TFS2010 시리즈" 목차를 살펴볼까요?

 

1. 일단 설치부터 해야 하겠지요?

1.        Visual Studio Team Foundation Server 2010 개요

2.1        Team Foundation Server 소개

2.2        Team Foundation Server 논리적 구조

2.3        Team Foundation Server 물리적 구조

2.        Visual Studio Team Foundation Server 2010 설치

3.1        설치 준비

3.1.1        Visual Studio Team Foundation Server 2010 설치에 필요한 필수 소프트웨어

3.1.2        Visual Studio Team Foundation Server 2010 필요한 최소 하드웨어 구성        

3.2        설치 전 필요 소프트웨어 구성

3.3        인터넷 정보 서비스(IIS 7.X) 설치하기

3.4        .NET Framework 3.5 설치하기

3.5        Visual Studio Team Foundation Server 2010 설치

3.6        Visual Studio Team Foundation Server 2010 Basic(기본) 구성

4.        사용자 계정 관리

4.1        Visual Studio Team Foundation Server 2010 보안

4.2        Visual Studio Team Foundation Server 2010 사용자 이해

4.3        Visual Studio Team Foundation Server 2010 역할

4.4        Visual Studio Team Foundation Server 2010 사용자 권한

4.5        Visual Studio Team Foundation Server 2010 사용자 추가하기        

4.5.1        Visual Studio Team Foundation Server 2010 사용자

4.5.2        팀 프로젝트 모음 사용자 추가

4.6        Visual Studio Team Foundation Server 2010 사용자 삭제하기

4.7        Windows 사용자 그룹 활용하기

4.7.1        Windows의 사용자를 그룹으로 연결하기

4.7.2        Visual Studio Team Foundation Server 2010 그룹 이용하기

 

 

2. 그럼 VSS TFS2010으로 마이그레이션도 해야하는데… 다음 목차를 보시죠.

1.        Visual Source Safe 개요        

1.1        Visual Source Safe 소개        

1.2        소스관리와 소스코드 형상관리

1.3        사용자 계정 및 보안

1.4        Visual Source Safe 사용과 개발환경 변화

2.        Visual Studio Team Foundation Server 2010 개요

2.1        Team Foundation Server 소개

3.        Visual Source Safe 마이그레이션 작업하기

3.1        Visual Source Safe 에서 Visual Studio Team Foundation Server 2010 이전

3.2        Visual Source Safe 사용자 정보 이전하기

3.3        자동화 마이그레이션 VSSConverter 사용

3.4        Visual Source Safe 정보 자동 이전하기

3.4        Visual Source Safe 소스 코드만 이전하기

3.4        Visual Source Safe 마이그레이션 주의사항과 문제 해결

 

 

3. 이제 적극적으로 활용해 봅시다.

1.        사용자 계정 관리

1.1        Visual Studio Team Foundation Server 2010 사용자 계정관리

1.2        Visual Studio Team Foundation Server 2010 사용자 이해

1.3        Visual Studio Team Foundation Server 2010 역할

1.4        Visual Studio Team Foundation Server 2010 사용자 권한

1.5        Visual Studio Team Foundation Server 2010 사용자 추가하기

1.5.1        Visual Studio Team Foundation Server 2010 사용자

1.5.2        팀 프로젝트 모음 사용자 추가

1.6        Visual Studio Team Foundation Server 2010 사용자 삭제하기

1.7        Windows 사용자 그룹 활용하기

1.7.1        Windows의 사용자를 그룹으로 연결하기

3.7.2        Visual Studio Team Foundation Server 2010 그룹 이용하기

2.        팀 프로젝트 구성

2.1        팀 프로젝트 소개

2.2        Visual Studio Team Foundation Server 2010 “팀 프로젝트 모음” 만들기

2.3        Visual Studio Team Foundation Server 2010 팀 프로젝트 만들기

2.4        Visual Studio Team Foundation Server 2010 팀 프로젝트 삭제하기

3.        작업 항목

3.1.        작업 항목 소개

3.1.1        작업 항목 이용하기

3.2.        Visual Studio Team Explorer 내 작업 항목

3.3.        Visual Studio Team Explorer 팀 작업 항목

3.4.        작업 항목 만들기

4.        소스 코드 관리

4.1.        소스 코드 관리소개

4.2.        소스 제어 탐색기 사용하기

4.3.        소스 코드 체크인 / 체크아웃

4.3.1        Visual Studio 에서 소스 코드 체크아웃

4.3.2        Visual Studio 에서 소스 코드 체크 인

4.4.        소스 코드 버전관리

4.5.        소스 코드 최신 버전 가져오기

4.6.        소스 코드 체크인과 작업 항목 연결

4.7.        소스 코드 체크인 정책

Team Foundation 2010 으로 업그레이드? 마이그레이션? 동기화?

많은 원성을 샀던 Team Foundation 2005 버전과 안정화된 Team Foundation 2008, 그리고 놀라우리만큼 강력해진 Team Foundation 2010… 약 5년 동안 Team Foundation Server 제품은 상당히 안정화되었고 테스트 분야에 상당히 공을 많이 들인 제품이 Team Foundation 2010 버전입니다. 더불어 함께 어울려야 하는 Microsoft SQL Server 2008 R2, SharePoint 2010, 그리고 함께 어울리면 간지나는 SCVMM 2008 R2(System Center Virtual Machine Manager), SCCM 2007 R3(System Center Configuration Manager) 등 모두 새로운 마이너버전으로 업그레이드 되었습니다.

특히 최근에 새롭게 Team Foundation 2010 을 도입하는 곳과, 이전에 쓰던 하위 버전에 대해서도 상위 버전으로 옮기기 위해 많은 문의를 주고 계십니다.

Team Foundation 2010 을 도입하거나 상위 버전으로 갈아타기 위해 업그레이드를 선택할지, 마이그레이션을 선택할지 현명한 선택을 위해 가이드해 드립니다.

   

제한 사항

본 포스팅에서 다루는 범위는 소스 제어에 국한된 범위입니다. SharePoint, MSSQL Reporting Services는 추가적인 업그레이드/마이그레이션 작업이 필요할 수 있습니다.

   

Team Foundation 2010 으로 업그레이드

가장 쉬운 방법이고, 데이터손실을 크게 걱정하지 않는 것이 업그레이드 입니다. 업그레이드는 TFS와 연동되는 SQL 서버의 데이터베이스 스키마가 일부 변경이 되면서, 이 범위의 데이터를 TFS2010 용 SQL 데이터베이스 스키마로 자동으로 변환하여 줍니다.

기존의 데이터베이스의 스키마를 변경하는 작업이므로 이전에 저장되었던 변경 집합(Changeset), 분기 및 병합(Branch and Merge) 의 정보를 그대로 안정하게 상위 버전으로 업그레이드할 수 있습니다.

이전에 사용하던 TFS AT(Application Tier) 는 없어도 무관하며, SQL Server의 데이터베이스만 있으면 업그레이드를 진행할 수 있습니다. 이 방법은 일전에 필자의 블로그에 포스팅으로 자세하게 가이드 하였으니 아래의 필자 포스팅을 참고하시기 바랍니다.

[HowTo] TFS 2005/2008 데이터베이스를 TFS 2010 으로 마이그레이션
http://blog.powerumc.kr/276

단, 업그레이드는 단어에서 의미하듯이 1회의 업그레이드 작업으로 상위 버전으로 업그레이드가 완료됩니다. 하위 버전에서 발생하는 추가적인 데이터의 업그레이드는 업그레이드 작업을 처음부터 다시 시작해야 한다는 의미이기도 합니다. 그렇기 때문에 전사적으로 TFS를 적용한 조직에서의 업그레이드는 일정시간의 TFS가 중지가 필요할 수 있습니다.

   

Team Foundation 2010 으로 마이그레이션

일단 골치 아픈 부분이 바로 마이그레이션 입니다. TFS 이전 버전의 AT(Application Tier)와 DT(Database Tier)가 모두 고스란히 존재해야 합니다. 양측의 TFS AT의 TFS API를 호출하여 서로간의 데이터를 마이그레이션하기 때문에 여차하면 일부 데이터 손실이 있을 수 도 있다고 합니다. (너무 겁먹지는 마시고요^^)

다만 이 마이그레이션은 One-Way 방식이기 때문에, TFS의 원본 서버(Source Server)와 대상 서버(Target Server)로 구분하여 진행하면 됩니다.

 글로벌 팀인 Visual Studio Ranger 에서 이 마이그레이션 작업을 쉽게 할 수 있는 도구를 CodePlex 사이트에 공개를 하였습니다. (http://tfsintegration.codeplex.com/) 이 TFS Integration 사이트에서 Download 로 이동하신 후에 설치 패키지를 설치하시면, 마이그레이션을 도와주는 도구를 설치하셔서 사용하시면 됩니다.

 마이그레이션은 TFS로 마이그레이션 이외의 File System, IBM Rational, SVN 제품간의 마이그레이션도 지원합니다.

   

   

   

Team Foundation 버전간의 동기화

Visual Studio Ranger 팀이 동기화까지 지원해 줄지는 몰랐습니다만, 참으로 기쁘기도 하네요. 동기화는 양측 TFS 서버간의 변경 이력이 생기면 이 데이터를 주기적으로(변경 즉시 동기화가 아님) 대상 TFS 서버와 동기화를 시도합니다.

 기존의 TFS<->TFS 간의 동기화도 지원하지만, File System, IBM Rational 제품, 그리고 SVN 간의 동기화도 지원합니다. 일전에 TFS<->TFS, TFS<->File System 간의 동기화는 잘 동작하는 것으로 확인을 하였습니다. (소스 제어 및 작업 항목간의 동기화)

   

참고

아래의 붉은 마킹을 한 다운로드 문서는 마이그레이션/동기화 작업을 하기 전에 반드시 필독하시기 바랍니다.

 

 

 

   

   

   


문제 발생

얼마 전, 집에서 몇 번의 누전 사고로 인해 집 서버의 컴퓨터가 여러 번 꺼지는 충격을 받았습니다. 그 이후로 잘 동작하는 줄 알았지만, Team Foundation Server 의 웨어하우스가 제대로 동작하지 않았습니다.

Team Foundation Administration Console 을 통해 확인해 본 결과 Warehouse Database 의 구성이 올바르지 않아 Rebuild 가 되지 않는 현상을 발견했습니다.

   

SQL Server 의 DT(Database Tier) 에서 확인해 본 결과, 아래와 같이 웨어하우스 파일에 오류가 발생하였습니다.

   

문제 해결

여러 번 집 서버 컴퓨터가 꺼지는 현상이 발생하여 이 파일을 복구 하기에는 좀 힘들어 보였습니다. 그래서 Tfs_Analysis 웨어하우스 데이터베이스를 새로 생성하는 방법이 어떨까 하고 검색을 해 보았습니다.

Failed to Process Analysis Database 'Tfs_Analysis'
http://social.msdn.microsoft.com/Forums/en/tfsgeneral/thread/9a2e4292-a719-43df-8757-dd90d5f60ab0

위 내용에서 확인할 수 있듯이, 기존 웨어하우스 데이터베이스를 삭제하면 자동으로 다시 만들어준다고 합니다. 하지만 위와 같은 오류가 나면 삭제도 안됩니다. 다른 데이터베이스 이름을 사용하기도 싫군요^^; 선뜻 데이터베이스를 삭제하기도 그렇고, 백업 오류도 발생하여 Hyper-V 의 스냅샷을 찍어두고 데이터베이스를 삭제하고 다시 만들어 보았습니다.

1. SQL Analysis 데이터베이스를 정지합니다.

   

2. 아래의 폴더로 이동한 후, Tfs_Analysis.0.db 폴더의 이름을 변경합니다.
%ProgramFiles%\Microsoft SQL Server\MSAS10.MSSQL2008\OLAP\Data

   

3. 다시 MSSQL Analysis 서비스를 시작합니다.

   

4. Tfs_Analysis 데이터베이스에서 마우스 오른쪽 버튼을 클릭한 후, 삭제를 선택합니다.

   

5. 개체 삭제에서 확인을 클릭합니다.

   

6. Team Foundation Administration Console 의 Application Tier-Reporting 메뉴로 이동한 후, Edit 를 클릭합니다.

   

7. 각 탭 메뉴에서 Test Connection 을 클릭하면, '기존의 데이터베이스가 없는 경우 새로 생성된다는' 메시지와 함께 테스트가 성공합니다.

   

8. 모든 구성을 완료하였으면, OK 버튼을 클릭합니다. 그럼, 새로운 Analysis Database 가 생성이 되는 작업을 진행합니다. 
   

9. MSSQL Analysis 서버에 Tfs_Analysis 데이터베이스가 새로 생성된 것을 확인할 수 있습니다.

   

10. Team Foundation Administration Console 의 Reporting 메뉴에서 Start Job 과 Start Rebuild 메뉴를 차례로 클릭해 줍니다.

   

11. 모든 웨어하우스와 관련된 서비스가 정상적으로 동작하는 것을 확인하고 작업을 완료합니다.

협업이 필요한 이유

최근의 소프트웨어 개발은 점차적으로 엔터프라이즈화 되어 가고 있습니다. 대용량/대규모화 되어가고 있는 현대의 소프트웨어 생태계에서 마치 새로운 트랜드로 자리잡고 있는 엔터프라이즈 2.0 이 자리를 잡고 그 규모를 넓혀가고 있습니다. 엔터프라이즈 2.0 은 Web 2.0 과 결합된 의미로써 즉, Enterprise social software(http://en.wikipedia.org/wiki/Enterprise_2.0) 라고 보아도 크게 의미는 다르지 않습니다.    

엔터프라이즈 소프트웨어는 대용량/대규모/보안 등의 핵심 키워드로 그 아키텍처가 매우 민감한 부분이기도 합니다. 하지만 엔터프라이즈 2.0은 기존 엔터프라이즈에 개방/공유 등을 강조하면서 바로 협업과 맞물리는 부분이기도 합니다. 그리고 이러한 움직임은 국가적인 차원의 거버먼트 2.0(http://blog.powerumc.kr/252)과 매우 유사하기도 합니다.    

즉, 중요한 것 중 현대의 소프트웨어 개발은 더 이상 폐쇄적인 환경을 거부하며, 최소한의 자원과 리소스를 아끼고, 남은 자원을 극대화하여 새로운 가치를 생산하고자 한다는 것입니다. 단지, 소프트웨어 개발은 개발자 역량만 훌륭하다고 되는 것이 아니며, 개발자간의 원활한 커뮤니케이션, 각 팀과의 원활한 커뮤니케이션, 더 나아가 조직과의 커뮤니케이션과도 연관 고리가 존재하게 됩니다.    

콩 심은 곳엔 콩이 나고, 팥 심은 곳엔 팥이 나야 하지만, 실제 프로젝트에서는 콩 심은 곳에 팥이 나기도 합니다. 협업을 하다 보면 협업 자체가 어려운 것이 아니라, 사람을 대하는 것이 가장 어렵다는 것을 느낄 수 있을 것입니다. 그래서 애자일(Agile) 한 방법론이 최근 팀과 조직에서 관심의 대상이 되는 것과 같은 이치입니다. 애자일 방법론을 잘 하기 위해서는 사람과 인간성을 이해하고 신뢰를 쌓는 것이지만, 그렇게 애자일하게 너그러운 사람과 팀, 조직은 그리 흔하지 않습니다.    

그렇다면 뭐가 문제일까요? 사람을 대하는 것이 어렵고, 고로 협업을 하는 것이 어렵고, 고로 전체 프로젝트를 수행하는게 어렵습니다. 개개인의 인격과 인간성을 존중하기엔 시간이 넉넉치 않을 뿐더러, 그들 간의 업무를 조율하는 것은 더 어려워지고, 점점 위태로운 프로젝트가 되기도 합니다. 물론 필자 또한 이런 문제의 발원지가 되기도 해보았고, 이것을 조율하는 입장도 되어 본 경험입니다.    

그럼 이미 답은 나왔습니다. 바로 "강제성" 을 부여하는 것입니다. 강제성이라고 하면 오히려 비 애자일하다고 할 수 있겠지만, 바꾸어 말하면 "당신 하나 때문에~" 애자일을 하는 것이 아니라는 것입니다. 가장 표준적이면서도 쉬운 방법을 통해 목표의 방향성을 가지고 간다는 것이 더 중요할 수 있기 때문입니다.

      

어떻게 커뮤니케이션을 할 것인가?

사람과 사람, 팀과 팀, 조직과 조직, 기업과 기업, 이들 간의 커뮤니케이션은 매우 다양합니다. 메신저, 이메일, 그 밖에 다양한 방법이 존재합니다.    

   

사람마다 선호하는 방법은 틀리겠지만, 개인적으로는 메신저야말로 가장 업무적으로 방해가 되는 커뮤니케이션 방법이라고 생각합니다. 언제나 급한 분들에게는 가장 좋은 커뮤니케이션 방법이 메신저가 될 수 도 있을 것입니다.    

제가 가장 좋아하는 커뮤니케이션 방법은 이메일입니다. 제가 이메일을 열람하고 싶을 때 보고 업무를 처리하면 되니까요. 하지만 이메일은 기록되고 보관되기 때문에 가장 책임감을 발휘해야 하는 커뮤니케이션 방법이기도 합니다. 하지만 요즘 스마트폰의 열풍으로 직장이든 가정이든 이메일을 볼 수 밖에 없는 현실이 되었죠^^;    

최근에는 SNS 와 같은 방법으로 커뮤니케이션을 하기도 합니다. 우리가 흔히 알고 있는 트위터(Twitter) 와 같은 Public SNS 도 존재하지만, 기업 내에서 사용할 수 있는 Private SNS 도 있습니다. 간단 명료한 메시지라는 강점으로 최근 유행하는 방식이기도 합니다.    

 

Team Foundation Server 의 구성 요소를 통한 커뮤니케이션

Team Foundation Server(이하 TFS) 는 단독적으로 사용할 때 보다 여러 가지 구성 요소를 갖출 때 비로소 가장 효과적인 커뮤니케이션 방법을 제공해 줍니다.    

최소한으로 TFS 는 SQL Server 를 필요로 하며, SQL Server 는 TFS 를 통해 소스 제어(Source Control), 리포팅(Reporting) 서비스를 제공해 줍니다. Team Foundation Server 를 사용하는 목적으로 SQL Server 라이선스를 일부 무료로 제공하기 때문에 가장 저렴한 비용으로 커뮤니케이션을 할 수 있는 방법입니다.

이를 이용하여 최소한으로 이행할 수 있는 여러 가지 기능이 있습니다.

  • 소스 제어(Source Control)
  • 소스 코드 브랜치(Branch)
  • 리포팅 서비스 및 데이터 웨어하우스(Reporting Services and Data Warehouse)
  • 일부 오피스(Office) 제품 연동

       

   

하지만 위의 방법으로는 조금 부족한 감이 있습니다. 마찬가지로 Team Foundation Server 를 사용하게 되면, SQL Server, Sharepoint Server 의 일부 라이선스를 무료로 제공하기 때문에 더욱 효과적인 커뮤니케이션 인프라를 구축할 수 있습니다. 특히 SharePoint 는 팀 포털과 문서 관리의 이점 뿐만 아니라, 팀 워크플로우를 개선할 수 있는 다양한 방법을 제공합니다. 특히 큰 규모에서는 의사 결정권이라는 막강한 권한이나 프로세스가 존재하게 되는데, SharePoint 는 이러한 워크플로우를 상당히 효과적으로 개선할 수 있는 솔루션이기도 합니다.

  • 소스 제어(Source Control)
  • 소스 코드 브랜치(Branch)
  • 리포팅 서비스 및 데이터 웨어하우스(Reporting Services and Data Warehouse)
  • 다양한 오피스(Office) 제품 연동
  • 팀 포털, 문서 관리, 팀 프로세스 개선

   

최근 가상화(Virtualization) 를 기반으로 클라우드 서비스가 매우 큰 개발 및 비즈니스 영역으로 자리잡고 있습니다. 소프트웨어 가상화는 물론이고 우리가 흔히 알고 있는 하드웨어 가상화 등 이러한 서비스 가상화를 통해 이전에는 상상하기 힘들거나 환경을 구성하기 힘든 영역까지 모두 커버하고 있습니다. Microsoft 에서는 이것을 가리켜 Dynamic IT 라고 칭하고 있습니다.

   

그 중, System Center 솔루션은 매우 다양한 역할을 수행합니다. 가상화 인프라와 서버 모니터링을 위해 다양한 솔루션은 아래와 같습니다.

솔루션

설명

SCVMM

(System Center Virtual Machine Manager)

물리적인 서버 또는 가상화의 서버를 관리, 배포, 최적화하는 솔루션이다. Hyper-V 또는 VMWare 등 여러 가상화 플랫폼을 지원한다.

SCOM

(System Center Operation Manager)

데이터센터의 운영을 중앙 관리를 위한 솔루션이다. 분산되어 있는 서버의 상태, 성능 정보, 구성 또는 보안 상태를 감지한다. 윈도우 운영체제와 리눅스(Linux), 유닉스(Unix) 운영체제 의 리소스나 그 하위 구성요소를 모니터링 할 수 있다.

SCCM

(System Center Configuration Manager)

운영체제 배포, 보안 패치, 서버/데스크탑 정책, 모바일 정책 등 총체적인 서버 및 클라이언트의 구성을 관리하는 솔루션이다. 기업의 네트워크 내의 모든 컴퓨터를 대상으로 강제 업데이트, 필수 구성 요소 등을 정책적으로 강제화 할 수 있다.

   

SCVMM(System Center Virtual Machine Manager) 은 가상화를 통한 동적 서버 관리, 가상화를 통한 유지 관리 계획, 가상화를 통한 테스트 및 개발 환경 의 작업을 관리하고 단순화 위한 가상화 관리 솔루션입니다. 가상화 서버를 관리를 용이하게 하고, 물리적인 서버를 가상화로 쉽게 전환하거나 가상 호스트에 여러 개의 물리적 서버를 통합할 수 있습니다.

특히 이 솔루션은 ALM(Application Lifecycle Management) 솔루션 중 Team Foundation Server 2010 에서 테스트 가상화를 사용하기 위해 필요한 구성 요소이기도 합니다.

   

SCOM(System Center Operation Manager) 는 분산되어 있는 데이터 센터를 통합 관리를 하며 윈도우 운영체제 뿐만 아니라 다양한 리눅스, 유닉스 기반의 운영체제를 지원합니다. 이 솔루션을 이용하면 특정 장애나 서비스 성능, 가용성을 보장하기 위해 자동으로 조치를 취하도록 할 수 있습니다.

   

SCCM(System Center Configuration Manager) 는 네트워크 인프라에 존재하는 클라이언트 컴퓨터, 서버 컴퓨터 등의 구성을 중앙에서 관리합니다. 예를 들어, 일부 클라이언트 사용자의 컴퓨터는 윈도우의 업데이트를 꾸준히 사용하지 않는 경우가 있습니다. 이러한 경우 강제적으로 업데이트를 수행하도록 정책적으로 관리를 할 수 있습니다. 그 밖에 윈도우 방화벽 설정, 자동 업데이트 및 백신 프로그램 등을 정책적으로 설치되거나 구성하도록 강제화 할 수 있습니다.

   

   

현재 협업을 위한 기본적인 기반 환경은?

단지, 필자가 오늘 하고 싶은 이야기는 여러분들에게 여러 가지 솔루션이 이를 대체할 것이라는 암시를 주는 것이 아닙니다. 단지 협업은 혼자만의 노력으로는 불가능 한 것이며, 이것을 뒷받침해 줄 수 있는 도구가 있다는 것에 감사할 뿐입니다.    

대부분의 우리나라 조직은 상하 수직적인 관계입니다. 일을 던져주고, 그것을 받고 일을 하는 수직적인 줄타기 방식은 작업의 결과를 매우 가시적이고 평가하기 쉬운 방법입니다. 그리고 이런 방식에 저 또한 매우 길들여져 있으며, 일을 수행하는 입장에서도 매우 수월합니다. 수행 결과를 보여주기도 쉽고, 처리하기도 쉽습니다.    

다만 수평적인 조직(절대적인 수평은 없을 것이지만)에서는 오히려 상하 수직적인 방식과는 다릅니다. 항상 중간 과정에 서로의 동의와 협력이 필요하며, 그 성과 또한 개인의 성과가 아닌 우리의 성과가 될 테니까요.    

하지만, 여러 조직과 기업이나 프로젝트에서 일을 해 본 경험으로, 절대적인 상하 수직적, 수평적인 조직은 없다는 것입니다. 그리고 필자 또한 어떤 것이 바람직한지 아직은 확신을 하기 어렵습니다. 다만, "그때 그때 잘~" 이라는 것밖에는 ^^    

팀워크(Team Work) 란 팀이 무너지지 않고 존재할 수 있는 가장 큰 힘을 발휘합니다. 반대로 팀 워크가 수년간 같은 방식이고 개선되지 않고 제자리에 머물러 있다면 썩은 우물과도 같습니다. 왜냐하면 시대가 변함에 따라 개개인의 커뮤니케이션 방식은 바뀔 것이며, 점차적으로 개선되어 지지 않는다면 팀 워크가 아닌 커뮤니케이션 자체의 문제의 한계에 부딪히게 될 것입니다.    

일단 오늘은 협업에 대해 썰을 풀어 보았습니다. 그리고 협업을 위한 많은 노하우를 여러분들에게 알려드리고 개선해 나가고자 합니다. 언제든지 불편한 내용이나 피드백을 주시면 참고하여 개선하고자 하도록 하겠습니다.

VS TFS 2010 설치편 - 설치전 IIS, .NET 설치

Team Foundation Server 2010. 5. 4. 09:00 Posted by 알 수 없는 사용자

 

팀장에게 VS TFS 설치보여주기 - IIS & NET

 

Visual Studio TFS 2010 설치하기저 IIS 설치부터 보겠습니다.

 

여기서는 다음과 같은 사양을 기준으로 합니다.

 

 - Windows Server 2008 이상

 - Workgroup 네트워크 환경 (AD 설치환경은 아닙니다.)

 

 

일단 서버 관리자를 실행합니다. 시작-> 관리도구-> 서버관리자 입니다.

 

 

 

서버 관리자에서 이제 IIS 닷넷을 설치합니다.

 

우선 IIS 입니다. 서버 관리자 왼쪽 트리메뉴에 역할을 선택합니다.

 

 

오른쪽에서 역할 추가가 있습니다.

 

그럼 역할 추가 마법사가 표시됩니다. - 절대 놀라지 마시고, "다음" 선택합니다.

 

이제 웹서버(IIS) 선택합니다.

이제 다음을 선택합니다.

 

그럼 웹서버 소개창이 뜹니다.

여기서 읽어보시고 "다음" 선택하십시요.

 

그럼 이제 웹서버에서 추가 기능을 선택하는 것이 표시됩니다.

 

 

여기서 2번째 응용 프로그램 개발을 확인하고 몇가지를 추가해 줍니다.

 

 

여기서 ASP.NET .NET 확장성을 추가해 줍니다. 그리고 다음.. 조금 아래로 내려가면

"성능" 있는데 여기서 "동적 콘텐츠 압축" 선택해 줍니다.

 

 

다음 설치 확인 창이 표시도고, 이상 없다면 "설치" 선택합니다.

설치가 완료 되면.. 이제 다음 .NET 설치합니다.

 

.NET 뭔지 .NET 3.5 설치되어야 합니다. Visual Studio 2010 .NET 4.0 까지 지원하는데 4.0 자기 설치 시에 설치합니다. 그럼 .NET 3.5 "서버 관리자"에서 왼쪽 메뉴에서 "기능" 선택합니다

 

 

기능의 오른쪽에 "기능추가" 있습니다.

 

 

여기서 기능 추가 마법사가 표시되고, 첫번째 "NET Framework 3.5.1기능" 선택합니다.

놀라지 마십시요. 여기서 새로운 창이 하나 표시됩니다.

선택하면 "추가 기능 마법사" 창이 표시됩니다.

 

 

여기서 "필요한 기능 추가" 선택합니다. 다음 "다음" 선택합니다.

설치 확인 창이 표시되고 "설치" 선택하면 설치를 시작합니다.

 

그럼 설치 필요한 것은 모두 끝났습니다.

 

VS TFS 2008 보다 쉽죠?? (물론 복잡한계정이나 기타 등등은 소스 관리 + @ 기능을 원한다면.. 계정도 알아두면 매우 매우 좋습니다. ^_^)

 

여기 까지는 그냥 Windows 기능에서 필요한 기능만 설치했습니다. 별다른 것은 없습니다.

 

ㅎㅎ 이제 다음은 TFS 2010 설치편 입니다. 설치도 정말 쉽습니다. 정말??? 다음에~~ Soon 입니다요~

Visual Studio Team Foundation Server 2010 설치 전 할일

Team Foundation Server 2010. 5. 3. 09:00 Posted by 알 수 없는 사용자

 

팀장 설득편 "VS TFS 2010" 이거 설치해봐1!!! - 설치 검토와  할일

 

반댈세 하는 팀장에게 드디어 설치를 보여줄 차례입니다. 사실 설치 전에 사전에 해야 하는 것은 다들 아시죠? 하드웨어의 준비입니다.

 

설치는 정말 단순합니다. 번째 설치하기 전에 설치 문서를 읽어 보면(아직 영문입니다 .) 설치 계정이나 환경에 대한 이야기가 있습니다. 여기서 설치 환경의 하드웨어 권장 사양을 확인합니다.

 

설치문서에 나온 권장 사양은 다음과 같습니다.

 

사용자

CPU

디스크

Memory

20 이하

1 개의 CPU

클럭 수 : 2.2 GHz

8 GB

2 GB

20 ~ 250 이하

1 개의CPU

클럭 수 : 2.6 GHz

230 GB

2 GB

250 ~ 450 이하

2 이상 CPU

클럭 수 : 2.8 GHz

500 GB

4 GB

450 ~ 2,200 이하

2 이상 CPU

클럭 수 : 2.8 GHz

31 GB ~ 136 GB

3.5 GB

2,200 ~ 3,600 이하

4 이상 CPU

클럭 수 : 2.2 GHz

31 GB ~ 136 GB

3.5 GB

 

정도 사양이면 현재 판매되고 있는 일반적인 서버라면 모두 괜찮다고 있지 않을까 합니다. Visual Source Safe 2005 대신해서 사용하기 위한 사양이라면   현재 사용하고 있는 서버라도 문제가 없다고 볼수 있습니다. 50 정도라 하여도 Disk 정도만 용량이 된다면 문제 없이 사용이 가능하죠. ^.^ 메모리는? 요즘 데스크탑도 4G 가는 중이라 서버에서 4G정도라면.. 문제가 없다고 있습니다.

 

이제 팀장에게 하드웨어는.. 쓰면 됩니다. 필요한 사항은 서버가 없다고 해도 된다고 하시면 됩니다.

 

그럼 이제 실제 설치에 필요한 계정은?

없습니다. 그냥 설치합니다.

 

설치 문서에는 계정에 대하여 설명이 되었습니다. Visual Source Safe 대신해서 사용할 분이라면

이계정은 그냥 넘어가셔도 됩니다. (추가 기능을 이용할 다시 계정을 설정할 있습니다.^^)

 

다시 팀장이 VS TFS 설치할 고생하던데? 특히 계정이 잘못되면 설치하고도 못쓴다는데? 괜찮겠게어?

 

답은 계정 설정은 필요없습니다.

       그냥 설치하면 ~ 이라는 것입니다.

 

이제 정말 설치 할일에 대하여 말해보겠습니다. 하드웨어는 준비되어 있다고 하면, 이제

 

당근 Windows 설치합니다. Windows Server 2003 SP2 / Windows Server 2003 R2 SP2

Windows Server 2008 / Windows Server 2008 R2

 

이렇게 지원합니다.

Windows Server 2003 에서는 Service pack 2 설치해야 하는 중요 포인트(?)입니다.

이제 Windows Server 2003 사용하는 곳도 있고 Windows Server 2008 사용하는 곳도 있을 겁니다.

 

요즘은 Windows Server 2008 R2 나오기 때문에 R2 기준으로 하겠습니다.

 

설치 전에 기본적으로 해주여야 하는것이 있습니다. 다른 것은 아닙니다.

.NET Framework 3.5 설치와 IIS(웹서버) 설치하시면 됩니다.

 

Windows Server 2008이상이라면 .NET Framework 3.5 이상이 이미 있기 때문에 별도 설치는 하지 않고 Windows에서 추가 기능 설치만 하시면 됩니다. IIS 서버도 마찬가지 입니다. 최신 서버인 Windows Server 2008 R2 64bit 지원하는데 이번 설치편은 Windows Server 2008 R2 에서 진행합니다.

(Windows Server 2008 32bit 에서도 똑같이 따라하시면 됩니다.^^)

Visual Studio Team Foundation Server 2010 를 설치해보자

Team Foundation Server 2010. 5. 3. 08:30 Posted by 알 수 없는 사용자

Visual Studio Team Foundation Server 2010 이거 사용하기도 설치하기도 힘든거 아냐??

 

Visual Studio 2010 드디어 정식 제품으로 나왔습니다. 그러면서 제품이름의 변화가 왔습니다. 제품이름의 변화가 단순히 쉽게 구분하기 위한 것일까요?

 

처음 사용자를 접하는 Express Edition 제품군을 제외한 거의 모든 제품이 이제 Team Foundation Server 연결되는 것은 기본이라는 것입니다.

 

그렇다면 Visual Source Safe??? 계속 안나오는거??

 

Visual Studio 2008 부터는 Visual Source Safe 나오지 않았습니다. Visual Source Safe 사용하기 위해서는 Visual Studio 2005 DVD 있거나 별도의 설치 프로그램으로 Visual Source Safe 2005 설치해서 사용하였습니다.

 

그럼 이제 이상 2008 부터 나오지 않는 Visual Source Safe 대신하는 것이 무엇이 있을까?

~

부분의 개발자들은 여기서 한마디 합니다. SVN, CVS Open Source 사용할거야.

 

이유? 그건 아래와 같은 "불편한 점도 있고 하니.. 그냥 Source safe Open Source 그냥 써야 겠다." 하고 생각하는 사람이 많았습니다.

 

첫째. 설치하기 어렵다.

둘째. Active Directory 알면 좋다는데 이거 또는 회사는 사용하지 않는다.

셋째. SQL 설치해야 한다. 그렇지만? 우리 회사는 SQL 라이선스가 없다.

넷째. SQL 리포트 인가 하는 뭔가 있다고 하는데 이건 뭐지?

다섯째. SharePoint 설치해야 한다. ~ 이건 옛날에 설치하거나 보니 우리회사하고 안맞는데……. 아님.. . SharePoint 울렁증은???

여섯째. Team Foundation Sever 설치 가이드에 무슨 계정이 이렇게 복잡한거지? 힘들다.

일곱째. 설치 했는데? 아무것도 없다. Visual Studio 에서 뭔가 하라는데? 권한 이런것은 어디서? 사용하기 .. 그렇다.?

…….

 

그래서 사용하기도 전에 포기하는 경우도 있고, SharePoint라는 복병(?) 만나면서 다시 포기, 설치하면서 계정 복잡한것을 보고 포기 앞에서 설명한 이유 말고도 여러 이유로 Team Foundation Server 사용하지 않고 포기합니다.

결국 다시 Visual Source Safe 돌아가거나 Open Source 프로그램을 사용하기도 합니다.

 

Microsoft에서는 이제 이런 문제를 깨끗하게 날려버렸다? 라고 만큼 Visual Studio Team Foundation Server 2010 변화를 주었습니다.

 

설치 - 정말 단순하다.

설치 사용자 계정 - 몰라도 된다. (알면 좋고)

설치 구성 - 단순으로 구성하면 아무것도 따지지도 않고 물어보지 않습니다.

SQL - Express 버전 부터 사용한다.

SQL 기능 - 리포트? 분석? 그것은 추후 익숙해 지고 필요해 지면 추가 설치하고 사용할 있다.

SharePoint - 설치 안해도 된다.

관리자 - 새로운 Visual Studio Team Foundation Administration Console 라는 관리도구가 있다.

 

~ 이제 앞의 고민들이 사라진다고 있습니다.

Visual Source Safe 2005 이용하여 소스 관리를 하는 개발자들이 이제 쉽게 Visual Studio Team Foundation Server 2010 사용하여 소스 관리와 함께 쉽게 사용할 있는 것을 이제 부터 소개 하겠습니다.

 

이제 Visual Studio Team Foundation Server 2010 도입해되 됩니다..

 

하면

 

울팀 팀장이 " 반대일세~ 이유는 알지?"

하는 이런 분들이게  왜요??라고 물어보십시요?(이렇게 물어보시면.. 한대 맞습니다 .)

이유는 앞에 이유라면…. 이제 부터 나오는 내용을 보시면,

? 이게야? Visual Studio만이 아니라 다른 곳에서도 쉽게 사용할 있네. ~~ 개발자에게 딴거 설치안해도 여기서 되네?

 

글구 가장 중요한 ..

? 뭐야 질질이 안듣고, 도대체가 믿을(?바로 .) 꼬맹이가 개발자가 어떠까지 개발했는지 물어봐도 되는구 푸하하하

 

좋아~~ 이거 ~~~ 있다는 것입니다.

 

앞에서 제가 설명한 이유를 말씀하시고 정말 쉽고 단순하게 사용할 있도록 보여 주십시요.

 

"앞으로 설치 부터~ Source Safe 처럼 소스 관리하는 까지 별도의 추가 설치, 구성 없이 일단 한번써봐" - .. 약장수 같은. . -

 

라고 말씀 드리겠습니다.

 

그럼 이제 설치 부터 시작하겠습니다.

Team Foundation Server 2010 은 많은 부분 획기적인 변화를 가져왔습니다. 기능적인 부분은 더할 나위 없거니와 관리적인 부분은 이전 버전을 운용해 보신 분이라면 과히 편해졌다고 할 수 있습니다. AT(Application Tier) 와 DT(Database Tier) 전반적인 부분에 걸쳐 한 자리에서 관리적인 부분을 모두 커버할 수 있기 때문입니다.

하지만, Team Foundation Server 2010 의 새로운 기능 중의 Test & Lab 부분이 상당히 강력해졌지만, 새로운 플랫폼과의 결합과 새로운 개념 등으로 환경 구축이 쉽지만은 않습니다. 필자도 이러한 부분에서 많은 부분 시행 착오를 겪으며 정리한 내용을 공유하고자 합니다.

Team Foundation 의 운용을 어렵게만 느끼지 마시고, 문제가 발생하면 바로 아래의 링크를 통해서 확인해 보는 것도 좋은 방법일 것 같습니다.^^

이 문서는 지속적으로 업데이트 될 예정입니다.

마지막 업데이트 : 2010-04-06

   

Test & Lab Manager

[HowTo] 가상 Lab 환경의 가상 머신 시작하기
[HowTo] Lab Manager 환경 구성 중 TF260078 오류 해결하기
[HowTo] 가상 Lab 배포 중 오류 해결하기 TF259115
[HowTo] Lab Manager 에서 가상 Lab 환경 만들기

   

Visual Studio 2010

[HowTo] Work Item 쿼리를 Excel 로 내보내기 할 수 없는 경우 TF80012 에러

   

Team Foundation Server 2010

[HowTo] Team Foundation Server 2010 FQDN 설정 방법
[HowTo] TFS 설치 중 Reporting Services 관련 오류 Error 28805
[HowTo] Team Project Collection 옮기거나 복원하기 TF246081
[HowTo] TFS 2005/2008 데이터베이스를 TFS 2010 으로 마이그레이션
[HowTo] Team Project Collection 이름 변경하기

   

System Center Virtual Machine Manager

[HowTo] SCVMM 에서 암호화된 파일 전송을 사용하지 않으려면?
[HowTo] SCVMM 라이브러리 템플릿 만들기
[HowTo] SCVMM 의 라이브러리 템플릿 배포 작업이 무한 대기할 경우

본 원고는 월간 마이크로소프트 2010년 3월호에 기고한 원문입니다.

 

Visual Studio 2010 활용한 ALM(Application Lifecycle Management)

 

 

 

 

 

  1. ALM 이란 무엇인가?
  2. 효율적인 프로젝트를 위한 애자일한 프로세스 프로세스 강요
  3. 명확한 작업의 관리와 지속적인 통합 추적성
  4. 과거와 현재를 알면 미래가 보인다 가시성
  5. ALM 가상화의 만남 Test and Lab Management

 

엄준일 : 닷넷엑스퍼트(.NETXPERT) 선임 컨설턴트로 재직 중이며, Microsoft Team System MVP 활동하고 있다. 많은 대기업 프로젝트와 컨설팅 경험을 바탕으로 좋은 소프트웨어를 만들기 위한 기반을 만들며, .NET 우리의 미래 동반자임을 확신하고 꾸준히 새로운 기술을 전파하고 있다. (http://blog.powerumc.kr)

 

 

 

 

작성자: 엄준일 선임/ Microsoft MVP

감수자:안재우 수석/Microsoft MVP


ALM(Application Lifecycle Management) 의 개요

 

최근 몇 해 사이에 ALM(Application Lifecycle Management)라는 용어를 자주 듣게 되었고, ALM에 대해 논의를 하게 되고, ALM 을 해야 한다라는 말을 자주 듣게 됩니다. 최근 들어, 실제로 많은 기업이나 조직에서 ALM 도입을 검토하고 있고, 왜 ALM에 대해 열광하는지에 대해서도 궁금한 부분이 아닐 수 없습니다. 그렇다면 우리는 이제 ALM이 무엇이고, 왜 등장하였으며, ALM에 대한 오해와 진실에 대해서 충분히 이야기를 나눌 가치가 있다고 생각합니다.

   

ALM 이란?

ALM(Application Lifecycle Management, 이하 ALM)을 한글로 번역하면 "응용프로그램 수명주기 관리" 라고 합니다. 현대 사회는 문화, 언어, 가치관, 기술 등이 빠르게 발전하고 있습니다. 문명의 발전이 없다면 죽은 문명이고, 마찬가지로 소프트웨어가 변화하고 발전하지 않으면 죽은 소프트웨어나 마찬가지 입니다. ALM 을 쉽게 말하면 바로 이런 소프트웨어가 생산되고 릴리즈, 유지, 관리하기 위한 기술을 총칭합니다.

   

ALM 등장배경

예전부터 소프트웨어를 개발하는 방법이 꾸준히 연구되었으며, 그 중 가장 대표적인 방식이 SDLC(Software Development Lifecycle) 입니다.

   

SDLC 의 대표적인 개발 방법론 중에 폭포수 모델(Waterfall Model)이 있는데, 로이스(Royce) 라는 사람에 의해 정의된 폭포수 모델은 요구사항, 디자인, 구현, 통합, 테스트, 릴리즈, 유지보수라는 단계로 구분이 되며, 각 단계는 순차적으로 진행되게 됩니다. 요구 사항이 없으면, 디자인을 할 수 없고, 디자인을 하지 않으면 구현을 할 수 없는 형태의 개발 방법으로 현 단계에 문제나 오류가 발생하게 반드시 위험 요소를 제거한 후에 다음 단계로 이동하게 됩니다. 이러한 개발 방법은 각 단계별로 상하 연관성이 없고 명확하게 구분되어 있으며, 최근에도 이러한 개발 방법으로 많은 프로젝트가 진행됩니다.

   

그림 1 일반적인 폭포수(Waterfall) 모델

   

하지만 최근 이러한 Top-Down 방식의 수직적인 개발 방식에 많은 비판을 받고 있습니다. 초기 계획이 완벽하지 않으면 전체 일정 또는 계획이 완벽하지 않다는 의미이기 때문입니다. 고객도 자신의 정확한 요구 사항을 알지 못합니다. 이런 과정에서 프로토타입(Prototype) 을 고객에게 시연하고 고객의 정확한 요구 사항을 도출해야 합니다. 하지만 고객의 요구 사항은 언제나 변할 수 있습니다. 즉, 완벽한 요구 사항을 정의한 후에, 다음 단계로 넘어간 이후에도 고객의 요구 사항은 변할 수 있고, 그렇다면 어찌되었건 초기 계획이 잘못될 수 밖에 없습니다. 이미 구현과 테스트로 검증이 끝난 기능에도 기능적인 기능의 추가 및 변경, 디자인 요소의 변경 등을 이유로 고객의 요구 사항은 변할 수 있고, 그렇다면 다시 원점으로 돌아가 이전의 계획은 수정이 되어야 하며, 이미 이러한 경우는 최초 계획이 잘못되었다고 생각할 수 밖에 없습니다.

   

그 이외에도 초기 계획을 얼마나 정확하게 수립할 것인지는 굉장히 민감한 문제이기도 합니다. 초기 계획 단계를 지나치게 명확하게 강조할 경우 그만큼의 비용이나 시간이 추가되는데, 전체 프로젝트의 일정과 대비하여 그것이 지나칠 경우 실제로 구현이나 테스트를 해야 할 시간은 촉박해 질 수 밖에 없습니다. 프로젝트의 기간은 6개월인데 정확한 프로젝트의 계획 수립을 위해 3개월의 시간을 소비한다면 분명 구현이나 테스트를 여유 있게 할 수 없을 것입니다. 고객을 이해시킬 수 있는 신뢰된 계획안을 보여줄 수 있겠지만, 오히려 불필요한 문서의 양산할 수 있을 가능성이 충분합니다. 이런 경우 프로젝트의 단계별로 거꾸로 기간을 산정하는 역산법 등을 이용하기도 합니다.

   

폭포수 모델(Waterfall Model)은 여러 가지의 문제 제기를 통해 다양하게 변형된 모델로 발전해 왔습니다. 여기에서는 설명하지 않을 예정이지만, 소프트웨어 개발 방법론은 여러 가지 변형된 형태로 발전해왔음을 알 수 있습니다.

   

그렇다면, ALM 의 등장 배경을 얘기 하기 위해 왜 이렇게 긴 SDLC(Software Development Lifecycle) 이야기를 했을까요? 위의 이야기에서 볼 때 SDLC 는 바로 소프트웨어를 개발하기 위한 방법론이라는 것입니다. SDLC 는 소프트웨어 공학에서 정의하는 용어로써, 소프트웨어를 효과적으로 개발하기 위한 다양한 방법을 이야기 한다는 것입니다. 즉, SDLC 은 소프트웨어를 개발하는 기술적인 관점을 이야기 합니다.

   

ALM 은 바로 소프트웨어를 개발하기 위한 기술적인 관점과 더불어 비즈니스적인 가치를 융합하도록 합니다. 소프트웨어의 개발은 기술적이거나 방법적인 문제와 더불어, 실제로 조직 간의 이해 관계, 그리고 비즈니즈 관계의 영역까지 확대됩니다. 소프트웨어를 개발하기 위해 프로젝트의 비전이나 목표 그리고 이것을 이행하기 위한 여러 방법론적인 단계는 통합되고 유기적인 관계입니다. 단지 기술적인 관점에서 바라보는 것이 아닌, 비즈니스 관점에서의 이해 관계나 조직의 측면도 ALM 에서 포괄하고 있습니다.

   

그렇다면 ALM 은 전혀 새로운 기술이 아님을 알 수 있습니다. ALM 은 이미 오래 전부터 조직적으로 알게 모르게 수행하였고, ALM 을 수행하기 위해서는 어떠한 프로세스적인 요소를 강제하고 있었습니다. 마치 군대에서 기상->아침 구보->보고(점호)->아침 식사-> … -> 저녁 식사->청소->보고(점호)->취침 과 같이 매일 반복되는 프로세스와도 유사할 수 있습니다. 그리고 이런 프로세스가 잘 진행되는지의 여부를 알기 위해 상사에게 "보고" 하는데 소프트웨어 개발 측면에서는 각종 산출물이나 보고서가 필요합니다. 그리고 병사들이 야간 근무를 교대하고 활동을 추적하기 위해 교대 시간마다 기록을 하게 됩니다.


 

프로세스 강요(Process Enactment)

일관된 프로세스를 강요해야 함

가시화(Visibility)

모든 전반적인 활동에 대한 진행 상황을 볼 수 있어야 함

추적성(Traceability)

모든 활동이나 산출물 등 연관 관계를 추적할 수 있어야 함

1 ALM 3대 구성 요소

   

   

하지만, 이러한 일련의 통일되고 융합된 활동을 한다는 것은 쉽지 않습니다. 문서화나 정형화된 프로세스조차 없는 팀이나 조직이 있는 경우도 있고, 암묵적인 프로세스가 존재하지만 어쨌든 이런 프로세스를 강요한다는 것은 쉽지 않습니다. 또한 팀의 매니저 또는 PM(Project Manager) 나 그 위의 상부 조직은 일이 잘 진행되는지 궁금해 하기 때문에, 이러한 이유로 개발자는 팀장 또는 상사에게 일일 보고서나 주간 보고서를 작성하고, 이것을 다시 취합하여 최종 보고서로 작성합니다. 프로젝트의 단계가 진행될수록 보고서의 양은 늘어나고, 그 종류도 다양해질 것입니다. 어찌 보면, 프로젝트를 위한 프로젝트가 아닌, 보고서를 위한 프로젝트가 되어버리는 셈입니다.

   

이젠 활동이나 작업을 추적하는 것도 어려울 것입니다. 수십 수백의 여러 가지 종류의 보고서는 이제 버전 관리 하기 조차 버거워질 수 있습니다. 또한 각 역할 담당자들은 결과물, 인도적 차원, 유지보수 차원에서 다양한 산출물을 양산해 냅니다. 필요에 의해 과거의 산출물을 찾는 것도 어렵고, 산출물 자체를 유지 보수 하는 것도 어려워 집니다. 그 외에도 변화하는 모든 활동들은 어떻게 변화했는지조차 알 길이 없습니다. 다양한 산출물과 활동, 그리고 변화에 대한 추적이 불가능 하다면 이미 양산된 문서를 관리하는 것은 결국 의미 없는 활동일 수 있습니다. 실제로 컨설팅 의뢰로 기업을 방문하여 문제를 진단하기 위해 몇 가지 산출물을 요청하여 받은 적이 있으나, 아키텍처가 실제 시스템과 너무 달랐고, 언제, 어떻게 달라졌는지 아는 사람은 아무도 없었던 적도 다반사이기도 합니다.

   

ALM 의 3대 구성 요소를 조직 전반적으로 융합하기 위해서는 ALM 솔루션이 필요합니다. 관리가 어렵고 정확성을 요구하는 ALM 을 좀 더 쉽게 실현할 수 있는 도구가 필요하다는 것입니다. 초기의 ALM 은 마케팅적인 용어로 사용되면서 초기 ALM 솔루션도 매우 난해했습니다. 단순히 이슈 추적 기능과 소스 제어 기능을 합하여 ALM 이라고 하였으며, 어떤 ALM 솔루션은 테스팅 도구만을 통합하여 ALM 솔루션이라고 하기도 하였습니다.

   

그림 2 ALM 의 전체적인 컨셉

   

최근에 ALM 이 정착하는 단계에 들어서면서, 현재의 ALM 과 미래의 ALM 을 분류하기도 합니다. 그리고 아직 이러한 분류 단계는 미성숙한 단계이므로 여러 방면으로 각기 해석을 하고 있습니다. 내용을 정리해 보면 아래와 같이 요약할 수 있습니다.

   

ALM 0.5 (미성숙 단계)

단순히 여러 가지 소프트웨어 개발 도구를 통합한 제품

ALM 1.0

개발 프로세스의 일관성과 소프트웨어 개발 도구를 통합하고, ALM 실현이 가능한 제품

ALM 2.0

다양한 플러그인의 조합 가능하고 크로스 플랫폼 간의 표준적인 방안을 제시.
조직 내부 뿐만 아니라 시장에서의 각종 요구 사항 또는 변화에 대응

표 2 ALM 의 단계별 정의

   

위의 내용으로 볼 때, 앞으로 알아볼 Visual Studio 2010 과 Team Foundation Server 2010 은 이미 ALM 2.0 에 매우 근접해 있습니다. 기본적인 ALM 1.0 요소를 충분히 충족하고 있으며, 각 제품은 확장성이 뛰어나고 다양한 클라이언트를 지원하기 위한 크로스 플랫폼을 실현하였습니다.

   

ALM 의 오해와 진실

ALM 은 아직까지도 많은 오해와 진실 속에 자주 언급되는 용어입니다. 사실 ALM 을 알고 보면 SDLC(Software Development Lifecycle) 처럼 정형화된 어떤 유형의, 또는 무형의 지식으로 갑자기 나타난 기술이 아닙니다. 그리고 무언가를 해결하기 위한 완벽한 솔루션도 아닙니다. 아직도 마치 ALM 에 대해 뜬 구름 잡는 듯한 느낌이 든다면 아래의 몇 가지 질문 답변 형식으로 좀 더 ALM 에 대해 오해와 진실을 이야기 해보도록 하겠습니다.

   

Q: 그럼 도대체 ALM 은 무엇인가요?

A: 마치 Web 1.0 과 Web 2.0 을 비교하는 것과 같습니다. 기존 Web 1.0 은 기업이나 서비스 제공자에 의해 제공되고 그 주체가 바로 기업이나 서비스 제공자였습니다. 하지만 Web 2.0 의 컨셉은 개방, 협력, 참여, 공유라는 요소를 중심으로 차츰 주체가 사용자에게로 이동하는 트랜드화된 용어이기도 합니다. Web 2.0 의 대표적인 것이 바로 UCC 나 위키피디아(Wikipedia) 와 같은 것들이 있습니다.

   

ALM 도 이런 트랜드에 크게 벗어나지 않는 용어입니다 ALM 은 궁극적으로 3대 구성 요소를 쉽게 실현할 수 있도록 하였지만, 이것을 실현하기 위해 설계, 개발, 테스트, 유지 보수 등 개발 조직, 운영 조직, 비즈니스 조직 등 여러 조직간에 의사 소통이나 각 단계별로 독립적인 활동을 유기적으로 통합하고 신뢰할 수 있는 데이터를 제공할 수 있도록 ALM 솔루션은 여러 가지 도구와 연동하거나 통합하고 자동화하였습니다.

   

최종 소프트웨어를 사용할 고객은 품질 좋은 소프트웨어를 사용하길 기대합니다. 요구 사항, 아키텍처, 개발, 테스트, 릴리즈, 유지 및 관리, 추적 등 모든 과정을 ALM 솔루션 안에서 이루어 집니다. 이후에 설명한 Visual Studio 2010 과 Team Foundation Server 2010 을 이용하여 개발 프로세스가 어떻게 개선되고 편리해지며, 어떻게 ALM 을 실현하는지에 대해 천천히 짚고 넘어갈 예정입니다.

   

Q: 그럼 ALM 을 실현하려면 ALM 솔루션이 필요한가요?
A: 아닙니다. ALM 을 실현하기 위해서 반드시 ALM 솔루션이 필요하지 않습니다. 위에서 군대를 예로 든 ALM 의 3대 구성 요소를 설명한 바 있습니다.

   

실제로 여러 프로젝트를 경험하면서 ALM 과 유사한 경험을 많이 해 보았을 것입니다. UML 도구를 사용하고 엑셀로 요구 사항이나 개발 진행 관리, 그리고 엑셀의 함수나 스크립트를 이용하여 보고서를 만들고, 테스트와 테스트 문서 및 코드 리뷰 과정을 수동적으로 한 바 있습니다. 사실 관리적인 부분만 본다면 엑셀만큼 뛰어난 도구도 없을 것입니다.

   

하지만 실제로 수동적인 ALM 실현은 많은 어려움이 따릅니다. 가장 먼저 문서를 매번 업데이트해야 하는 시간적인 문제와 문서의 버저닝(Versioning), 변화에 따른 계획의 수정 및 문서 수정, 테스트를 위한 테스트 케이스 관리 및 테스트 결과 문서화, 그리고 수동적인 코드 리뷰는 사실상 있으나 마나 한 단계이기도 합니다. 특히 반복적인 짧은 릴리즈는 밤을 새게 하는 주요 원인 중의 하나이기도 합니다. 릴리즈 계획도 문제였지만, 버그의 발생은 곧바로 버그의 상황을 문서로 만들어져야 하는 산출물이 되기도 하기 때문입니다.

   

분명 ALM 솔루션은 여러 가지 어려웠던 요소들을 통합하고 자동화하였습니다. 결과적으로 ALM 은 도구가 없이도 가능하지만, 실현하기 위해서 훨씬 많은 노력이 필요하다는 것입니다.

   

Q: 우리 팀은 형상 관리(소스 제어) 만으로도 프로젝트가 잘 됩니다. 과연 ALM 솔루션이 필요한가요?

A: 맞습니다. 현재 자신의 팀이나 조직에서 정형화된 프로세스나 암묵적인 프로세스가 존재하고, 개별적인 문서 관리와 소스 제어만으로 ALM 을 실현할 수 있습니다. 그렇다면 현재 자신의 조직이나 팀은 ALM 레벨은 ALM 0.5 세대에 있다고 보시면 됩니다.

   

소프트웨어의 품질을 높이기 위해서는 많은 노력이 필요합니다. 소스 코드나 문서의 버전 관리, 테스트, 보고서, 빌드, 이슈나 작업의 추적은 한 두 명의 개인이 수행하기는 매우 힘듭니다. 그렇기 때문에 보다 도구를 통합하고 자동화된 솔루션을 통해 ALM 을 수행한다면 훨씬 많은 이점이 있습니다.

   

Q: 그럼 ALM 을 원활하게 수행하기 위해서는 통합된 ALM 솔루션이 필요한가요?

A: 그렇지 않습니다. 현재 소프트웨어를 개발에 필요한 많은 도구들이 오픈 소스 또는 무료로 제공이 되고 있습니다.

   

아래는 오픈 소스 중에 .NET 환경에서 사용할 수 있는 도구들을 정리한 표입니다.

  

Feature

Visual Studio

Team Foundation Server

Open Source

요구 사항 및 변화 관리

요구 사항 관리

이슈 관리

제품 관리

TFS Work Item Tracking

Trac

Trac Explorer

Redmine

설계

모델링

디자인

Visual Studio UML

Objecteering

StarUML

UmlDesigner

구현

개발

Visual Studio

SharpDevelop

MonoDevelop

소스 관리

TFS Source Control

SVN

TortoiseCVS

테스트

단위 테스트

Visual Studio

NUnit

NUnit Addin for Visual Studio

Test Driven.NET

성능 테스트

Visual Studio

FWPTT load testing web applications

NTime

테스트 관리

Visual Studio

Test and Lab Management

?

UI 테스트

Visual Studio

.NET Framework UI Automation Library

Avignon (HTML, Winform Test based java)

지속적인 통합

빌드 자동화

TFS Team Build

NAnt

통합

TFS Source Control

TFS Team Build

CruiseControl.NET

코드 리뷰

코드 인스펙션

Visual Studio

FxCop

StyleCop

코드 메트릭스

Visual Studio

Reflector Addin

코드 커버러지

Visual Studio

NCover

팀 코드 리뷰

Visual Studio

Review Board

SmartBear

프로세스

프로세스 강요

TFS Process Template

?

보고서

SQL Server Reporting Service

?

역할 구분/보안

TFS

?

팀 포털/정보 공유

Sharepoint

FlexWiki

ScrewTurn Wiki

다른 도구와 통합

Microsoft Office

Sharepoint 등

?

확장성

TFS Object Model

Visual Studio Extensibility

?

표 3 Team Foundation Server 와 오픈 소스 기반의 도구를 통한 ALM 도구 비교

   

하지만 오픈 소스를 사용하는 것은 저렴하게 ALM 환경을 갖출 수 있지만, 이음매 없는 매끈한 끈과도 같습니다. 도구들 간에 서로 연관성이 없거나 업그레이드가 되지 않는 것들도 상당히 존재하기 때문입니다. 통합되지 않은 각 도구들은 누가 관리를 할 것이며, 연관성이 없는 각 도구들 간의 프로세스를 어떻게 강요할 것인가도 고민해 보아야 할 부분입니다.

Visual Studio 2010 RC 공개

Visual Studio 2010 2010. 2. 9. 11:41 Posted by POWERUMC

금일 2010년 2월 9일이 MSDN Subscription 을 통해 공개가 되었습니다. (미국 시간 2월 8일)

Visual Studio 2010 RC(Release Candidate) 공개
http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx

 

이전 Visual Studio 2010 Beta 2 에서 발생하는 가상 메모리와 성능 관련된 문제에 대해서 이번 RC(Release Candidate) 버전에서는 상당히 개선이 되었다는 인터넷 블로거들의 반응이 보입니다.

이미 Visual Studio 2010 RC 버전을 설치한 외국의 블로거의 말에 의하면, Microsoft 는 이런 문제를 해결하는 것에 대해 용기있고 현명함에 칭찬을 아끼지 않고 있네요. 필자 또한 이번 RC 버전에 대해 Microsoft 대한 찬사를 아끼지 않습니다.

일반적으로 RC(Release Candidate) 버전은 더 이상의 기능이나 사용자의 피드백의 반영이 없고, RC 에 안정성을 확보하여 RTM(Release to Manufacture) 버전으로 정식 제품이 공개가 됩니다. 이전의 Beta 버전을 설치하기 꺼려하셨던 분들도 크리티컬한 이슈가 해결된 RC 버전을 설치하셔서 미리 공부하시면 될 것 같습니다.

앞으로 다가오는 4월달 정식 제품이 더욱 기대가 되는 하루입니다. ^^

설치 과정 중에 TF255040 문제

Team Foundation Server 2010 을 설치하는 중 TF255040 오류가 발생하였습니다. 아래의 그림과 같이 SQL Server 의 Reporting Services 와 관련된 컴포넌트가 설치 되지 않았다는 오류입니다. 훔...

SQL Server Analysis Services 인스턴스를 찾지 못한다는 오류 메시지가 나타납니다.

 

TFS 설치 오류 로그를 자세히 보면 아래와 같이 문제 지점의 예외 메시지를 찾을 수 없습니다.

[Error @12:07:34.650] Microsoft.TeamFoundation.Admin.TfsAdminException: TF255040: Install SQL Server Reporting Services or at a minimum SQL Client Connectivity Tools on the application tier to ensure Analysis Services object model is present for warehouse processing. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AnalysisServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. 지정된 파일을 찾을 수 없습니다.

at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)

at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)

at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)

at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)

at System.Reflection.Assembly.Load(String assemblyString)

at Microsoft.TeamFoundation.Admin.UIHelper.CheckAnalysisInstanceLoad(String analysisInstance)

--- End of inner exception stack trace ---

at Microsoft.TeamFoundation.Admin.UIHelper.CheckAnalysisInstanceLoad(String analysisInstance)

at Microsoft.TeamFoundation.Management.Controls.WizardCommon.ServerTestControl.m_testWorker_DoWork(Object sender, DoWorkEventArgs e)

at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)

at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)


그래서 Microsoft.AnalysisServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 어셈블리가 GAC 등록이 되어 있는지 확인을 보았습니다. 역시나 문제는 위의 어셈블리가 설치가 되지 않아서 발생한 문제입니다.

      

TF255040 오류 문제 해결하기

해결 방법은 가지가 있습니다. 중에 번째 방법을 추천 드립니다.

왜냐하면 SQL Express 버전을 설치하면 되지만, 결국 SQL Server 인스턴스를 만들어야 하기 때문에 왠지 TFS 전용 서버의 순결함을 잃는 하군요.. 사용하지도 않을 SQLEXPRESS 라는 반갑지 않은 인스턴스와 말이죠. 번째 SQL Server 2008 Feature Pack SQL Server 구성 요소 일부만 설치할 있습니다. 제가 필요로 하는 Analysis Service 관련 어셈블리만 설치되도록 설치 패키지를 제공해 주고 있습니다.

  • 그럼 Microsoft SQL 2008 관련 구성 요소를 설치해 주어야 하는데, 아래의 주소에서 기본적인 클라이언트가 설치되도록 합니다. 근데 Management Studio Express 설치하게 되면 SQLEXPRESS 라고 하는 인스턴스가 설치가 되는데 Team Foundation Server Application Tier SQLEXPRESS 인스턴스가 그다지 필요해 보이지도 않고, 설치 시간도 오래걸리고요.

  • 위의 방법은 Analysis Services Object 어셈블리만 설치하는 방법입니다. HTML 페이지가 다운로드 되면 HTML 파일을 열어봅니다. 다운로드 가능한 여러 가지 목록 중에 아래 Analysis Services Object 골라서 다운로드 하시는 것이 좋겠죠?

       

아래를 설치하고 Team Foundation Administrator Console 다시 실행해 주시면 아래의 그림과 같이 정상적으로 SQL Server Analysis Services 접근할 있습니다.

   


TFS 2010 설치 하기

Team Foundation Server 2010. 1. 26. 09:00 Posted by POWERUMC

Team Foundation Server 2010 은 기존의 2008 버전에 비해 굉장히 설치가 간단해 졌습니다.  

사실 설치과 구성 패키지 자체는 TFS 2008 이 간단하긴 했지만, 구성이 올바르게 완료되어야만 설치가 가능했었습니다. 이런 문제로 인해서 초기 설정이 유효하지 않을 경우 설치를 완료한들 다시 제거를 하고 재설정을 했던 경우가 많았습니다. 그리고 TFS 2008 에서는 설정 정보가 IIS 의 TFS Web Service 의 web.config 와 데이터베이스의 특정 필드를 직정 수정해야 하는 관리상의 불편함이 많았습니다.

하지만 이번 Team Foundation Server 2010 는 이런 면에서 초기 설치 단계에서 구성하는 단계까지 많이 편리해졌습니다. 설치와 구성을 따로 따로 하도록 말이죠.  

아래는 Team Foundation Server 2010 을 설치하고, Team Foundation Server Administration Console 을 이용하여 TFS 환경을 구성하는 방법입니다. 

아래의 설치 과정은 3-tier 로 구성된 서버에 TFS 2010 을 설치하는 단계입니다.

  • 서버 1 : Active Directory, DNS 서버
  • 서버 2 : MSSQL 2008
  • 서버 3 : Team Foundation Server 2010

   

Team Foundation Server Administrator Console 을 실행하여 Configure Installed Features 를 클릭합니다.

   

다중 Tier 환경으로 설치할 예정이므로, Advanced 를 선택하고 Start Wizard 를 클릭합니다.

   

Wizard 안내 페이지입니다. 그냥 다음으로 넘어 갑니다.

   

SQL Server 의 인스턴스를 입력하고 Test 를 클릭합니다. 인스턴스가 유효하면 푸른색 V 표시가 나타나고, 다음으로 넘어 갑니다.

   

Service Account 계정을 입력하고 Test 를 클릭해보고, 계정이 유효하면 다음으로 넘어갑니다.

   

Team Foundation Server 2010 의 웹 서비스의 설정을 합니다. 그냥 기본 구성 그대로 다음으로 넘어갑니다.

   

보고서를 구성하는 페이지의 안내입니다. 필자는 보고서를 구성할 것이므로, Configure Reporting for use with Team Foundation Server 항목 체크 박스를 체크 한 후에 다음으로 넘어갑니다.

   

Reporting Service 인스턴스를 입력하고 Populate URLs 를 클릭하면 유효한 보고서 서비스를 찾아줍니다. 그리고 다음으로 넘어갑니다.

   

TFS Report 서비스의 실행 계정을 지정해 줍니다. 필자는 기본 계정인 NETWORK SERVICE 계정을 사용합니다.

   

아래는 Sharepoint 를 설치를 안내하는 페이지 입니다. 다음으로 넘어갑니다.

   

Sharepoint 서버의 계정을 입력하고 Test 를 클릭하여 유효성을 검사합니다. 그리고 다음으로 넘어갑니다.

   

기본적으로 Team Project Collection 이 체크되어 있습니다. 그대로 다음으로 넘어갑니다.

   

모든 설정이 완료 되었습니다. Verify 를 클릭하여 최종 점검을 진행합니다.

   

Verify 결과가 양호할 경우 설치를 진행하도록 합니다. Configure 를 클릭하여 설치를 진행합니다.

   

아래는 Team Foundation Server 2010 이 설치가 완료되었습니다.

   

   

이제 설치가 완료되었고, Team Foundation Server 관리를 위하여 관리 권한을 지정합니다.

Application Tier 의 Administer Group Membership 을 클릭합니다.

   

Team Foundation Administrators 그룹을 더블 클릭(또는 Properties 클릭) 하고, 관리자 계정을 지정해 줍니다.

   

   

이제 모든 설치와 구성을 마쳤습니다. 아래의 그림은 Visual Studio 2010 으로 Team Foundation Server 2010 에 연결된 모습입니다.

   


TFS 2010 Build Service 설치

Team Foundation Server 2010. 1. 26. 09:00 Posted by POWERUMC

Configure Team Foundation Build Service 에서 Start Wizard 를 클릭합니다.

   

아래는 Build Service 설치 안내 페이지 입니다. 다음을 클릭합니다.

   

Team Build 를 수행한 Team Project Collection 을 지정해야 합니다. Browser 를 클릭하여 Team Project Collection 을 선택합니다. 만약 Team Foundation Server 와 연결되지 않은 상태일 경우 Team Foundation Server 와 연결해야 합니다.

   

   

기본 설정대로 Recommended 를 선택하고 다음을 클릭합니다.

   

Team Build 를 수행할 계정과 포트를 입력합니다. 필자는 TFSBUILD 계정으로 사용하였고, 환경에 따라 NETWORK SERVICE 등으로 사용하셔도 됩니다.

   

모든 설정이 완료 되었고, Verify 를 클릭하여 Team Build 환경을 점검합니다.

   

모든 점검이 완료되면, Configure 를 클릭하여 설치를 진행합니다.

   

아래는 Team Foundation Build Service 설치가 완료된 화면입니다.