- Previously on TFS Thriller Ssoul.
쏘울의 컬렉션을 연결하는 데 성공한 보람과 세식. 덤앤 더머, 반짝반짝 모래알 같은 그들도 뭉치니 미션을 해결할만한 지혜는 나오는 듯 하다. 초보자를 고려한듯 친절하게 아주 천천히 조금씩 교모해지는 쏘울의 미션. 그들은 집에 갈 수 있을까?
- 신의 한 수.
“자 이제 쏘울이 또 뭐라고 하는지 들어볼까?”
“왠지 집에 가라고 할 거 같아서 두근두근 거리는데?”
“퍽이나”
“뭐 fu**?”
“뭐? mot*** fu**?”
(저자 주 : 발음을 잘 해보시면, 이해 가능한 하급 말장난 패턴입니다. 방송심의위원회의 규정을 준수하기 때문에 별표처리한 것 양해바랍니다.)
폭풍 같은 개드립이 휩쓸고 지나간 자리는 적막만이 감돌았다.
“우리 쏘울 이야기나 들어볼까.”
“그러지”
2번 동영상 파일을 재생했다. 이제 조금씩 익숙해지는 쏘울의 오토튠 목소리.
“그래그래그래. 여기까지 잘 온 거 같군. 자네들도 바보는 아닌 거 같애. 자 그럼 이번에는 재밌는 퍼즐을 하나 풀어볼까? 나름 쏘우 패러디인데 퍼즐 하나 없으면 섭하겠지? 자 지금부터 퍼즐을 설명할 테니 잘 들으라고. 과제물 폴더의 Lab2폴더를 열어봐. 그러면 List라는 텍스트파일이 있어 그걸 열어봐.”
“어때? 익숙한 C#코드가 보이지? 자 이제, 비주얼 스튜디오로 가서 아까 다운로드한 프로젝트를 열어봐.”
"그래 내 애정이 담긴 환영 메시지가 보이겠지. 감동의 눈물은 잠시 접어두라고. 자 그럼 저 환영 메시지를 지우고, 아까 내가 준비한 텍스트파일 안의 내용을 거기다 붙여."
“좋아 다 되었겠지. 이제 퍼즐을 설명해주지. 두 목록을 하나의 목록으로 합쳐야 하네. 아이디 목록의 첫 번째 항목과 이름 목록의 첫 번째 항목, 그리고 다음은 두 번째 항목끼리 그렇게 말이지. 그리고 합친 목록의 항목을 한 줄에 하나씩 출력하는 거야. 각 항목의 속성들은 쉼표로 구분해서 말이지. 단, 해서는 안 되는 게 몇 가지 있어. 작성한 코드를 절대로 지워서는 안되네. 한 번의 체크인과 두 번의 변경 내용 취소로 코드 작성을 완료해야 하네. 즉, 백 스페이스 키나 delete키를 눌러서는 안 된다는 거지. 그리고 배열의 인덱스를 사용해도 안 돼. 그리고 마지막으로 Main메서드 안의 코드는 10줄 이내여야 하네. 이 제약사항만 지키면 되는 거지. 그럼 행운을 빌어.”
난생 처음 받아보는 황당한 요구사항에 둘은 잠시 생각에 잠겨 허우적 대고 있었다. 그리고 세식이 먼저 말문을 열었다.
“그러니까 집에 안 보내 준다는 거네?”
“너 예전에 천국이 너네 집이라고 했었지? 지금 당장 입주할래?”
“왜 그러냐능!! 가정이 있는 몸 이해 못하냐능!!”
“그래~ 빨리 집에 가야 되니까 이거부터 해결하자고~”
“그래! 집에 가야지! 합시다!”
잠깐 생각하는 시간을 갖고, 이번에도 세식이 먼저 입을 열었다.
“그럼 일단 지금 상태로 체크인 해두자. 코드 지우지 말라고 했으니까 초기 상태는 저장해놔야 다시 시작을 하지.”
“오, 좋은 생각이군.”
“오케이 체크인은 됐고. 이제 둘을 합쳐야 되는데.”
무의식 중에
“꺄악!!! 어머나!!!!!!!!!”
“야 인덱스 쓰지 말라 그랬자나~ 왜 그러셩~”
“일단 다시 원상 복구 시키자고…”
“오케이 다시 돌아왔다.”
“이제 변경 취소 한번 남았군.”
“두 목록을 합쳐야 하는데 인덱스를 사용하면 안된다라... 그럼 LINQ를 사용하라는 말인 거 같은데.”
“LINQ는 니가 더 잘알잖아. 뭐 좋은 거 없어?”
“이게 두 목록을 하나로… 그리고 각 목록의 항목을 하나로 합치면서… 뭔가 기억날 듯 말 듯 하네.”
“봐바. 여기 각 목록이 나란히 일렬로 있다고 했을 때, 순차적으로 각 목록의 항목이 하나씩 만나서 새로운 항목을 만든다는 거잖아? 이런 거 처리하는 거 없어?”
“오호… 설명을 들으니 Zip이 생각나는데?”
그렇게 코드를 조심조심 심사숙고하며 작성해 나가기 시작했다.
“우선 결과로 나오는 타입이 기존에 존재하지 않는 타입이니까 var타입으로 받고, 아이디 목록을 기준으로 이름 항목을 가지고 하나씩 붙이게…”
“항목을 합치는 람다식이 첫 번째 목록의 항목과 두 번째 목록의 항목을 받아서 TResult라는 타입의 새 항목을 만드는 거니까…”
“이렇게 작성하고, foreach로 출력하면 되겠군.”
“오~ 작성 끝? 확실한 겨?”
“아마… 그렇지 않을까?”
떨리는 손으로 ctrl+F5를 누르자.
“오케이. 떴다!”
“휴…..”
“근데 있잖아… 이거 샘플 데이터를 유심히 보니, 쏘울의 취향을 알 것도 같은데…?”
“뭔데?”
“일단, 콩과 2는 홍진호를 가리키는 거고, 한승연은 스타 팬들의 1대 아이콘, 아이유는 2대 아이콘 이었단 말이지. 즉, 쏘울은 스타에 매우 열광하는 사람이 아닐까 하는 거고…”
“원빈이랑 김두현은?”
“글세 원빈은 잘 모르겠고… 김두현은 수원 블루윙즈 선수이고, 등번호가 4번이었단 말이지. 그러니까 수원 서포터가 아닐까 하는 생각이 드는 군.”
“그래서 누군지 알겠엉?”
“전혀.”
“왜 아는 거 처럼 말해?”
“어쩌라고.”
쏘울의 미션을 또 하나 해결한 보람과 세식. 과연 집에는 언제쯤…
'Team Foundation Server' 카테고리의 다른 글
TFS2010, MSDN Virtual Lab: Team Foundation Server 2010, 가상에 환경의 실습해 보자 (1) | 2012.03.25 |
---|---|
본격 TFS 스릴러, 쏘울(2) - 쏘울 컬렉션. (2) | 2011.06.08 |
본격 TFS 스릴러, 쏘울(1) - 검은 물체의 정체. (2) | 2011.06.03 |
본격 TFS 스릴러, 쏘울(0) - 프롤로그. (0) | 2011.06.01 |
VSS 마이그레이션 전략 (0) | 2011.01.18 |