광주--(뉴스와이어)--한국IBM(대표 이휘성)이 최근 주최한 자바 기반의 프로그래밍 게임 대회인 [로보코드 코리아컵 2007 결승전]에서 조규현(호남대 인터넷소프트웨어학과 4년) 군이 3위를 차지했다.

지난 2003년에 첫 대회가 개최된 이래 4회째를 맞는 ‘로보코드 코리아컵 2007’은 자바 기반의 프로그래밍 대회로 국내 자바 개발자 커뮤니티 모임인 JCO(JAVA Community Organization)와 인크루트가 후원하고 있다.

로보코드 코리아컵은 올 5월 로봇신청 접수를 시작하여 7월 말에 접수를 마감했으며, 64강전과 32강전에 이어 최종 결승전까지 치뤄 최종 승자를 가렸다. 우승은 김동완(고려대 신소재공학부 2년), 준우승은 이종혁(경기대 컴퓨터과학과 4년), 3위는 조규현(호남대 인터넷소프트웨어학과) 군이 각각 수상했다.

로보코드는 지난 2001년 IBM의 개발자인 맷 넬슨이 개발한 게임으로서, 사용자들이 직접 자바를 기반으로 인공지능이 담긴 로봇을 만들어 전투를 벌이게 된다. 예선전에서는 그룹별 전투를 거쳐 최종 점수가 가장 높은 로봇이 승리하게 되며, 64강전부터는 1대1의 토너먼트 방식으로 진행된다. 각 참가자들은 최대 3개까지 로봇을 제출할 수 있다.

로보코드 참가자는 자바 언어의 요소를 사용하여 자신의 로봇을 만들면서 프로그래밍 언어를 익힐 수 있어 재미와 기술을 동시에 얻을 수 있다. 특히 초보자들도 쉽게 배울 수 있도록 로보코드 코리아컵 홈페이지(www.ibm.com/developerworks/kr/robocode)를 통해 개발 방법을 소개하고 있다.

또 로보코드는 오픈소스를 기본 전제로 하고 있어 샘플 로봇뿐 아니라, 등록되어 있는 다른 개발자들이 소스를 다운받아 분석하고 자신의 소스를 업로드하는 과정을 반복하면서 로봇은 점차 진화하게 된다.

한국IBM 관계자는 “IBM은 오픈 소스를 적극적으로 지원하고 있으며, 로보코드를 통해 자바 언어에 대한 대학생 및 개발자들의 관심과 흥미가 크게 증대되었다고 본다”며 “향후에도 다양한 오픈 소스 지원 정책과 프로그램을 통해 개발자들에게 많은 기술정보와 커뮤니티 환경을 제공할 예정”이라고 밝혔다.

[호남대 조규현 군 인터뷰]

▲ 자신만의 특화 전략은 어떻게 구상하셨나요.

조규현: 일반화된 전략이 최고라고 생각했습니다. 인터넷을 돌아다니면서 로보코드에 대한 자료들을 수집하고, 어떤 알고리듬이 최적인지 찾아보면서 난타전과 개인전을 따로 준비했습니다. 64강까지는 10개의 로봇이 대전을 함께 하기 때문에 개인전과는 분명 다른 전략이 필요했거든요. 난타전과 개인전이 달랐던 부분은 움직임과 스캐닝, 그리고 대전 시작시 가장 먼저 취하는 행동이었습니다. 그리고 전체적인 공격 전략은 총알을 발사할 때 에너지 감소가 있는 것을 감안하여, 제 에너지 감소는 최소화하고, 상대방의 에너지 소모를 최대한 유도했습니다.

▲ 알고리듬을 구현하면서 어려웠던 점은 무엇인가요.

조규현: 레이더와 총의 라디안(radian)이나 이동 범위 설정이었습니다. get으로 적이나 자신의 로봇 정보를 가져와 상황에 따라 세팅을 하는데, 이 때 주로 세팅을 하는 게 레이더와 총신 방향, 발사 시점입니다. 하지만, 상황에 따라 세팅을 하는데 이런 동작들이 서로 충돌하는 것이 많이 어려웠습니다. 로봇 대전시 자세히 보면, 총신이나 로봇의 방향이 ‘부르르’ 쉴새 없이 떠는 로봇들을 볼 수 있는데 이는 세팅 값이 중복으로 설정되었기 때문입니다.

▲ 준비하면서 참고한 자료(문서, 코드 등) 중 인상적이었던 것은 무엇인가요.

조규현: ‘Robocode 마스터의 비밀’을 많이 보았는데 가장 크게 도움을 주었던 것은 지난해 로보코드 대회 참가자들의 전략집이었습니다.

▲ 인상적이었던 내용을 자신의 로봇에 어떤 식으로 적용하셨나요.

조규현: 로보코드를 시작할 때만 해도 아직 경험이 많지 않았던 터라, 대전시 어떤 상황이 일어날지 예측할 수 없었습니다. 참가자들의 전략집에는 이러한 상황들에 대한 대처법이나 개인들의 전략들이 있습니다. 전략집을 먼저 읽고 로봇을 구현했습니다. 전략집에서 읽은 것들을 토대로 제가 경험하지 못한 상황들을 예측해 설계했습니다.

▲ 아찔했던 순간은 언제였나요.

조규현: 보통 소스 위치가 적절하지 않을 때 복사와 붙여넣기를 많이 사용합니다. 그러다 복사와 붙여넣기를 잘못해 스캐닝이나 공격 시점 등의 순서가 잘못된 채로 컴파일 했을 때가 몇 번 있었습니다. 로보코드란 것이 설계하는 대로 구현하면 좋겠지만, 실제로 대전했을 때 변화가 필요하다고 생각하여 소스를 다시 고치게 됩니다. 그래서 컴파일 하기 전 소스가 30줄 정도가 바뀌면 위치를 다 기억하기가 힘들었습니다. 그래서 가끔 한번씩 필요 없는 변수를 청소할 때도 있었습니다. 또 본선에서 1위를 한 로봇에 졌을 때는 무덤덤했는데 3, 4위전에서는 욕심이 났습니다. 3, 4위전에서는 90% 승률이었지만, 그래도 한 게임을 졌을 때는 아찔했습니다.

▲ 아쉬웠던 점은 무엇인가요.

조규현: 아쉬웠던 점은 역시 1위를 한 로봇과 대전시에 80%의 승률을 내고도 총점에서 점수가 낮아 진 것입니다. 또 후배들이 많이 참가했으면 하는 바람이 있습니다. 로보코드에 참여하기 위해 몇 번의 세미나를 했습니다. 지방대이고 IT 관련 대회가 많지 않아 좋은 기회라고 생각해 후배들에게 참여하도록 많이 권했지만, 생각보다 후배들이 많이 참가하지 않았습니다. 다들 프로젝트 때문에 바쁜 것도 있었지만, 로보코드가 그렇게 많은 시간을 투자하지 않아도 되는 것을 생각하면 아쉬운 부분이었습니다.

[수상자 소개]

1위, 김동환: 고려대학교 신소재공학부 2학년에 재학 중이다. 록/메탈을 듣는 것을 좋아해 로봇 이름을 개인적으로 좋아하는 미국의 메탈코어 밴드 Lamb of God에서 따왔다. 또, 웹 디자인과 웹 프로그래밍에 관심이 많아 틈이 나면 홈페이지를 제작하기도 한다.

2위, 이종혁: 경기대학교 컴퓨터과학과 4학년이다. 이번 대회에는 ActionSchool 시리즈(ActionMask, ActionHero, SilverZero) 로봇 세 개를 제출했다.

3위, 조규현: 호남대학교 인터넷소프트웨어학과 4학년에 재학 중이다. 졸업을 앞둔 터라 취업 준비 때문에 로보코드 참여를 망설였지만, 재미있을 것 같아 시간을 내어 참여했다. 로봇 이름인 Sunkist는 프로젝트를 하던 건물 5층 자판기 음료수에서 따온 것이다.

웹사이트: http://www.honam.ac.kr

연락처

홍보실 김동희 062-940-5897