BLOG ARTICLE TopCoder | 3 ARTICLE FOUND

  1. 2011/09/18 CrowdSourcing 과 OutSourcing
  2. 2008/07/17 2008 Google Code Jam Begins! (4)
  3. 2007/07/22 온라인 프로그래밍 경시대회 TopCoder 소개 (14)


아웃소싱(OutSourcing) 은 말 그대로 특정 전문가들 에게 자신이 필요로 하는 어떤 업무를 맡기거나 또는 결과물을 만들도록 의뢰하는 것을 말합니다. 반면에 크라우드 소싱은 (CrowdSourcing) 특정인 혹은 특정 조직이 아닌 불특정한 다수의 외부 전문가들에게 자신이 필요로 하는 업무를 맡기는 경우를 말합니다. 대표적인 예로 생각나는 것은 유명 DVD 대여 업체인 넷플릭스가 자사의 추천 알고리즘을 개선하기 위해 100 만달러의 상금을 걸고 알고리즘 개선 대회를 열었던 것. 그리고 아마존 웹 서비스 중에서 아마존 매커니컬 터크(Mechnical Turk) 등이 있겠네요. 

요새 많은 이들이 크라우드 소싱에 관심이 많기는 하지만 현실에서 크라우드 소싱을 적용하기는 매우 어렵습니다. 크라우드 소싱을 이용하기 위해서는 적절한 크기의 소싱 풀 = 크라우드 (Crowd) 가 확보되어 있어야 하고, 또 이들의 결과물을 적절하게 평가하고, 가장 고객의 원하는 우수한 결과물을 확인하고 검증하는 시스템이 마련되어 있어야 합니다.

프로그래밍 대회 사이트로 시작한 TopCoder 의 경우 비지니스 모델을 확보하기 위해 결국 크라우드 소싱으로 방향을 잡았는데, 우수한 개발자 커뮤니티를 확보하고, 경쟁 기반 개발 방법론 (Competetion Based Developement) 을 이용해서 경쟁을 통해서 점수를 매기고, 여러 소싱 업무 지원자들의 결과물 중에서 가장 좋은 제품을 선정하는 시스템을 구축하고 있습니다. 흥미로운 것은 결과물을 점수 매기는 심사의원 패널들 조차도 크라우드 소싱 개념을 적용, TopCoder 커뮤니터에서 지원자들을 받는 다는 것이죠. 커뮤니티를 만드는 것은 정말 힘든 일입니다. 그렇지만 이 단계를 뛰어넘어서, 크라우드 소싱을 맡길만한 시스템이 구축되어 있다면 크라우드 소싱에 관심을 가져 보는 것도 좋을 것 같습니다. 


크라우드 소싱이 아웃소싱에 비해서 보다 혁신적으로 우위에 있다는 점을 아래와 같이 6 가지로 정리한 내용이 TopCoder 블로그에 떳길래 간단히 메모해 봅니다.

1.  Per Hour vs Per Output 

아웃소싱은 보통 내부 인력을 고용해서 업무를 진행하는 것에 비해 비용절감을 하기 위한 방편으로 이루어진다. 시간당 M/M 에 대한 성과를 지불하게 된다. 

반명 크라우드 소싱은 다수의 대중이 만든 결과물에 중 가장 좋은 퀄리티의 결과물에 대해서만 지불하면 된다. ( 크라우드 소싱 결과물들을 경쟁 기반 Based on Competition 으로 평가함 )



 2. The Elimination of a Single Point of Failure 

아웃소싱은 소싱을 맡긴 업체가 어떤 사정으로 업무를 못할 경우 이 업체를 대체할 업체를 찾아야 하는 위험 부담 (  Single Point of Failure ) 을 떠 앉아야 하는 반면, 크라우드 소싱은 다수의 대중들에게 소싱을 맡기므로 일부가 실패하더라도 다른 대체자를 쉽게 찾을 수 있다.

3.  Access to Breath of Talent 

아웃소싱은 소싱하는 업무에 대해 적합한 업체를 찾아야 하고, 업체가 일을 잘 못할경우 새로운 업체를 찾아야 하는 부담이 있다. 크라우드 소싱은 커뮤니티에 기반하고 있고, 충분히 재능있는 다양한 사람들이 참여하기 때문에 소싱을 처리할 적임자를 찾기 쉽다. 

4. Predictability

아웃소싱은 노동력 기반의 모델로 투입되는 비용과 노력에 비해 아웃풋이 비례하지 않는다
크라우드 소싱에서는 프로젝트의 진행상황이 매우 투명하여 결과를 예측하기 쉽다. TopCoder 의 예를 들면, 어느정도 수준 ( rating ) 을 가진 지원자들이 프로젝트에 참여하는지 알 수 있고, 이들이 진행하는 프로젝트 진행상황을 각 phase 마다 손쉽게 확인해 볼 수 있다. 그래서프로젝트의 결과 예측도 용이하다는 장점이 있다. 

5. The Scope of Work

아웃소싱 - 소싱 작업에 대해서 처리할 수 있는 업무범위는 명백히, 제한적이다. 
크라우드 소싱 - TopCoder 의 예를 들면, 우리는 40 종류의 다양한 경쟁 시스템을 준비하고 있고 여기에 알고리즘, 개발, 디자인, 아키텍쳐 등의 다양한 유형의 대회형태를 지원한다. 

6. The Acceleration of Innovation   

아웃소싱은 보통 혁신( Innovation ) 적이지는 않다. 보통 갑은 소싱을 맡길만한 업체에게 ( 이미 어느정도 능력이 확인된 ) 일을 맡기고, 비용을 지불할 뿐이다. 
크라우드 소싱은 다양한 참가자들로 부터 소싱을 시작할 시점보다 더욱 많은 아이디어를 발굴할 수 있다. 


출처 :  6 Important Ways of CrowdSourcing is Different than OutSourcing
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/441 관련글 쓰기
댓글을 달아주세요!
이름 암호 홈페이지



구글에서 전세계 프로그래머들을 대상으로 주최하는 프로그래밍 경시대회, Google Code Jam (이하 GCJ) 이 오늘 (7월 17일) 시작되었다.

구글 코드 잼 홈페이지

구글 코드 잼 2008 개최 - 구글코리아 공식 블로그의 소개글

구글 코드 잼 2008 임박... 전세계 프로그래머들의 경연장


2007 년에는 Google Code Jam - Latin America 대회만 열렸는데 ( 라틴 아메리카 국가의 사람들만 참가가 가능한 지역 대회 ), 구글은 이 대회를 끝으로 더이상 기존의 TopCoder 플랫폼을 이용한 GCJ 는 열지 않고, 구글에서 자체적으로 개발한 대회 플랫폼을 통해 대회를 치루겠다 공언한 바 있다.

그간 몇번의 알려지지 않은 Beta 대회와 정식으로 열린 Beta 대회 와 Practice Contest 를 통해 공개된 GCJ 의 새로운 대회 방식은 TopCoder 와 ACM-ICPC 의 장점들을 섞어놓은 듯한 모습이다.

우선 각 문제마다 배점이 다르다는 점이 ACM-ICPC 와 다르다. ACM-ICPC 에서는 모든 문제가 같은 비중을 갖고 있으며, 문제를 푼 횟수로 등수를 산정하기 때문에 쉬운 문제부터 찾아서 빨리 푸는 전략이 당연한 정석으로 되어 있다. 반면 TopCoder 에서는 문제의 난이도에 따라 배점 차이가 커서 ( 250, 500 ,1000 점... 문제의 난이도에 따라 배점이 2 배씩 차이가 난다! ) 어려운 문제를 먼저 푸는 전략을 쓰기도 한다. 그리고 쉬운 문제는 틀려도 어려운 문제를 맞춰서 등수가 뒤바뀌는 경우도 많이 발생한다.

GCJ 에서는 문제 별로 배점이 다르며, 같은 문제마다 Input case 의 Boundary 가 다른 2 가지 Input 이 주어진다는 점이 특이하다. 즉, Small Input 과 Large Input 의 두가지가 제공되는데, Small Input 은 검사할 범위가 작으므로 쉽게 해결할 수 있으며, 맞는지 틀리는지 여부를 바로 알 수 있다.

Large Input 은 Small Input 보다 입력값의 범위도 더 크며, 실행 결과는 TopCoder 처럼 대회가 종료된 이후에 알려주기 때문에 스스로 생각하기에 완벽하다고 생각되는 솔루션을 충분히 테스트를 거친 후에 제출해야 한다.

Qualification Round 의 경우 Small Input 은 문제당 5점, Large Input 은 문제당 20 점이었다.
주어진 모든 Test Case 를 통과해야만 점수를 받을 수 있으며, 테스트 케이스에 대해서 하나라도 틀릴 경우 0 점이다. ( All or Nothing 방식. 부분점수란 없다. ) 그리고 ACM-ICPC 와 마찬가지로 점수 ( 문제푼 횟수) 가 같을 경우에는 빨리 푼 순으로 시간이 산정되며, Small Input 문제를 틀리는 경우 Penalty Time 이 추가된다.

GCJ 는 TopCoder 와는 달리 별도의 플랫폼이 필요없이 웹 브라우저만 가지고 대회를 치룰 수 있었다. 플랫폼에 자유롭게 한 것은 많은 참가자들을 배려한 부분으로 보여진다. 또한, 개발 언어에 대해서도 특별한 규정이 없었다. Input 에 대해서 원하는 Output 만 출력한다면 어떤 개발 언어를 사용하든지 문제가 될 것은 없다는 의미인 것 같다.

GCJ 는 7월 17일 시작하여 4 번의 온라인 라운드와 준결승 오프라인 라운드로 나누어 치뤄지며, 최종 결선에 오르는 100 명은 미국 마운틴 뷰의 구글 본사에서 최종 결승전을 치룬다.

대회 상금

총 상금은 8 만달러 규모...  우승상금 1 만달러.

재미있는 것은 우승자에게 부상으로 전세계 어느곳이든 구글의 사무실에서 식사를 10 번 할수 있는 기회를 제공해 준다는 것이다. ( 최대 10 명까지 친구를 데리고 갈 수 있다 한다! ) 직원에게 무료로 제공하는 맛있고 럭셔리한 식사로 유명한 구글의 근무환경에 대한 자부심이 엿보인다.

PS) 아직도 참가 신청과 참여가 가능하므로 관심있는 분들은 참가를...
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/229 관련글 쓰기
댓글을 달아주세요!
  1. Radiant 2008/07/20 09:15  댓글주소  수정/삭제  댓글쓰기

    맨날 눈팅만 하다가 실제로 덧글 남겨봐요 ㅎㅎ
    SRM에서 오타로 Radient를 사용중인 유저입니다 ㄱ-

    사실 코드잼도 관심 많았는데, 지난번 TCO '08의 쓰라린 추억때문에 그냥 접어버렸습니다.. ㅠㅠ
    역시 세계 레벨의 벽은 높은것 같아요 ㅠㅠ

  2. Radiant 2008/07/21 00:23  댓글주소  수정/삭제  댓글쓰기

    일단 참가는 할 예정인데, Internet Competition 날에 너무 중요한 면접이 겹쳐서
    완전 곤란한 상황이 되었습니다 ㅠㅠ

    그래도 다행히 면접은 오전이라 어떻게든 양립이 가능할 것 같기는 한데,
    혹시라도 곤란한 상황이 생길까봐 불안하네요;;;

이름 암호 홈페이지


리퍼러를 분석해 보면 ACM-ICPC(세계대학생 프로그래밍 경진대회) 나 프로그래밍 경시대회 정보를 검색하다 이곳에 오는 분들도 꽤 되는 것 같다. 그래서 오늘은 TopCoder 에 대해서 소개하고자 한다.

프로그래밍 분야가 다른분야와 달리 어려운 점 중 하나는 프로그래머의 역량을 객관적수치로 평가하기가 어렵다는 것이다. 예를 들면 영어 능력은 토익/토플 과 같은 시험 성적을 통해 간접적으로 나마 평가가 가능하고, 운전 능력은 그 사람의 운전 경력과 무사고 몇년~ 이런 숫자를 통해 평가가 가능하다.

하지만 프로그래머의 코딩 실력을 평가해보려면 어떻게 해야 하는가?? 정보통신부 노임단가 기준대로 학력/경력/각종 자격증 소유 여부로 매겨야 하나?? 대답은 분명히 No 다. 프로그래밍 실력이 경력/학력/자격증과 정비례하지 않는 경우가 많다는 사실은 많은 현업 개발자들의 경험을 통해 입증되었다. ( IT 업계특성상 경력/학력이 높아질수록 엔지니어는 프로그래밍에서 멀어지고 아키텍트 or 관리자를 지향하게 된다. )

그래서 프로그래머의 역량을 측정하기 위한 방법중 하나로 도입된 것이 바로 알고리즘과 문제해결 능력을 묻는 코딩문제를 얼마나 잘 푸는지를 평가하는 방식이다.
IOI (국제 정보 올림피아드)ACM-ICPC 와 같은 알고리즘 문제풀이 대회를 학교와 교육기관에서 매년 많은 예산을 들여 개최하고, Google, MS 같은 IT 기업들이 개발자들의 입사시험 문제로 알고리즘 코딩 문제를 내는 것은 바로 이러한 이유 떄문일 것이다.

하지만 IOI 와 ACM-ICPC 는 소수의 학생들을 대상으로 한정되어 있고,
UVaPKU , USACO 와 같은 프로그래밍 연습 사이트도 존재하나 비영리 사이트인 관계로 정기적인 온라인 대회도 별로 없고, 학습자료나 풀이방법에 대한 친철한 가이드도 부족하여 체계적으로 프로그래밍 연습을 하기엔 불편한 점이 많다.

이 와중에 미국의 한 회사가 정기적으로 온라인상에서 전세계 모든 개발자들을 대상으로 알고리즘 문제풀이 대회를 개최하고, 결과를 Rating 시스템을 도입해 수치/등수화한 것이 있으니 바로 TopCoder 매치이다.

사용자 삽입 이미지

TopCoder Inc. 라는 회사의 모토를 보면, 개발자들의 역량을 객관적으로 평가하기 위한 온라인 프로그래밍 대회 서비스를 열고, 이 결과들을 통해 여러 회사들이 개발자들을 쉽게 채용을 할 수 있는 Employment Service 를 연결하고 있다. (TopCoder Inc. 는 이런 회사들의 스폰서쉽이 주 수입원인 것 같다)

프로그래밍 대회는 Algorithm 분야 및 Design(컴포넌트 설계), Development(컴포넌트 개발), Marathon Match(2주간의 장기 코딩대회) 로 나뉘어지며, 본인이 참여하고 있는 Algorithm 매치는 주 1회 꼴로 열리는 SRM(Single Round Match) 을 통해서 성적이 매겨진다.

현재 한국에서는 60 여명의 코더가 활동중이며,
한국의 국가 순위는 이글을 쓰는 현재 15위 이다. TopCoder 를 통해 전세계의 개발자들 중에서 자신이 어느정도 위치인지 대략적으로나마 알수 있고, 또 자신을 단련하는 좋은 연습장이 될 수 있다. 그리고 무엇보다도 정말 재미있다! ^^

자... 그럼 혹시 TopCoder 에 가입하고 싶은 분들이 계신가..

http://www.topcoder.com/reg/ 

위의 링크에 가서 Competition Registration 항목을 선택하고 가입하면 된다...
참고로 가입시 적는 항목중 "Referring Member" 란 항목이 있는데, 추천회원을 의미한다. 이 글을 보고 가입하려는 분들은 글쓴이의 수고를 생각해서 Soyoja 라고 써 주면 감사하겠다 =D  (싫다면 할 수 없다. ㅎㅎ)

대회 방식은 간단하다. TopCoder 에 회원 등록을 한 후 Java 로 만들어진 Competetion Arena 라는 프로그램을 다운받고,
Event Calendar 를 보고 SRM 이 열리는 시간에 접속해서 대회를 하면 된다. (표시된 시간은 미국 동부 표준시인 것을 주의) SRM 은 코딩 75분, 5분 휴식 후 다른 사람들이 짠 코드의 버그를 잡는 Challenge 15 분으로 총 2 시간 정도가 소요된다.

회원 가입 및 TopCoder 활동은 모두 무료이며... 대회에서 성적이 좋으면 여러가지 재미난 혜택들이 많으니 많은 한국 개발자분들의 참여가 있으면 좋겠다... =)

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/56 관련글 쓰기
  1. TopCoder 시작하기..

    FROM Mission Top Secret Destination Unkown..~ 2007/08/08 01:54  삭제

    저희 동아리 위키 페이지에서 몇 줄만; - 룰 - Algorithm Competition 의 라운드하나는 다음 과정으로 나뉘어진다. Coding phase: 75분. 문제를 보고 코딩을 한다. 문제별로 최대 점수가 있고, 해당 문제를 여는 시점부터 시간이 계산되어, 답을 제출할 때까지 시간이 길수록 점수가 낮아진다. 대개는 문제 최대 점수와 난이도는 비례한다. 만약 easy 를 열고, 답을 제출하지 않은 뒤, 다시 medium 을 열어서 풀고, 다시..

  2. Flex 코딩으로 돈버는 방법

    FROM 열이아빠의 RIA 이야기 2008/11/02 22:55  삭제

    우연히 아래와 같은 제목의 글을 보게 되었습니다. Flex on TopCoder http://gurufaction.blogspot.com/2008/10/flex-on-topcoder.html 오호. 원래는 Java 와 .NET 만 참여할 수 있었는데 추가적으로 Flex 개발부분이 들어갔나 봅니다. Flex.org 에 관련된 내용이 잠깐 언급이 되어있는데 날짜가 10월 9일이니깐 얼마된것은 아니네요. http://flex.org/company/topc..

  3. Top Coder에 도전하세요!

    FROM [장선진] 삶을 위한 소프트웨어 2009/01/01 20:20  삭제

    평소 소프트웨어(Software) 개발에 관심이 많거나, 특히 알고리듬(Algorithm)이나 소프트웨어 디자인(Software Design)에 관심이 많다면 Top Coder(http://www.topcoder.com)라는 사이트에서 자신의 능력을 다른 사람들과 함께 겨루어 보는 것도 참 좋은 일이라고 생각합니다. 전 세계에서 소프트웨어에 관심이 많은 사람들이 모여서 자신의 능력을 겨루고 있는데 재미있는 점은 우리나라의 순위입니다. 현재 우리나라의..

댓글을 달아주세요!
  1. BlogIcon helloneo 2011/02/06 16:32  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.. 졸업하시고도 열심히 하시네요..
    저도 TopCoder를 시작해보려고하는데.. 앞으로 종종 찾아오겠습니다..

  2. BlogIcon JM 2007/11/27 14:54  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 구종만입니다. :)
    부탁드릴 게 있어서 몇번 irc 에서 찾았는데 그때마다 안계시더군요.. ^^;; 그래서 와서 리플 남깁니다.
    혹시 이 블로그 엔트리를 알고스팟 오픈렉쳐 게시판에 올려주시면 안될까요? 귀찮으시다면 제가 와서 퍼가도 (^^;;) 괜찮습니다.

    탑코더나 각종 대회에 대한 소개글이 필요한데.. 잘 써놓으신 것 같아서 전재하고 싶습니다. ㅎㅎㅎㅎ
    미리 고맙습니다~ ^^

  3. BlogIcon JM 2007/11/29 16:42  댓글주소  수정/삭제  댓글쓰기

    네.. 낼름 퍼갔습니다. 감사합니다!!! ^^

  4. Raina 2008/01/31 17:00  댓글주소  수정/삭제  댓글쓰기

    오 이런것도 있네요.
    조만간 시간내서 저도 한번 시작해봐야겠네요.
    재미 있을 것 같아요.
    좋은 정보 감사합니다. ^^

  5. BlogIcon doodoori2 2008/10/19 03:02  댓글주소  수정/삭제  댓글쓰기

    이번에 처음 참가해보았는데요 ㅎ
    방마다 다른 문제가 뜨는건가요? 아니면 모든 Room에 같은 문제가 들어가는건가요?ㅎ
    점수 채점 방식도 좀 궁금하더라구요a
    영어를 읽는데는 많은 에너지를 소모해야해서 ㅠㅋㅋ

    • BlogIcon soyoja 2008/10/20 09:43  댓글주소  수정/삭제

      같은 Division 내의 모든 방에 같은 문제가 뜹니다.
      Rating 1200 점을 기준으로 1200 이상이면 Divison 1, 1200 점 미만이면 Division 2 로 나뉘어지며, Division 별로는 문제가 다르지만, 같은 Division 내에서는 방이 달라도 문제는 같습니다. ^^
      채점방식은 SRM 이 완전히 완료된 이후에 문제 출제측에서 준비한 모든 test case 에 대해서 모두 통과했을 경우에만 System Test Pass 가 되며 점수를 받게 됩니다. ^^

  6. BlogIcon 지돌스타 2008/11/03 15:26  댓글주소  수정/삭제  댓글쓰기

    와우! 이런것도 있네요

  7. 미키드 2009/07/23 01:41  댓글주소  수정/삭제  댓글쓰기

    요거 퍼갈께요~

이름 암호 홈페이지