ICT어워드 대상, 이현지(공과대 컴퓨터4) 씨

어렵다고 포기하지 말길

 

좁고 기다란 막대 위에 개미 N마리가 일렬로 서있다. 시작 신호와 함께, 개미들은 왼쪽 혹은 오른쪽으로 행진을 시작한다. 동일한 속도로 움직이는 개미들은, 다른 개미와 마주치면 행진하는 방향을 반대 방향으로 바꿔 다시 이동한다. 행진을 계속하여 막대의 끝에 도착한 개미는 밑으로 떨어진다. 그렇다면, 마지막 개미가 떨어질 때까지 걸린 시간은 어떻게 구할 수 있을까? 겉보기엔 어려워 보이는 문제지만, 컴퓨터 프로그래밍을 이용한다면 쉽게 해결할 수 있다. 컴퓨터 프로그래밍 대회 ‘ICT어워드코리아’에서 대상을 차지한 이현지(공과대 컴퓨터4) 씨와 함께 흥미로운 프로그래밍의 세계에 대해 살펴봤다.

 

코딩, 컴퓨터가 이해할 수 있도록

 

ICT어워드코리아는 전국의 초·중·고·대학생과 일반인이 참가하여 소프트웨어 코딩 능력, 하드웨어 제작 능력 등을 겨루는 대회이다. 2004년부터 시작된 이 대회는 지난 해까지 전국정보과학경시대회라는 명칭으로 불렸으나, 올해 대회부터는 ‘ICT어워드코리아’로 명칭이 바뀌었다. 올해 대회는 미래창조과학부와 경기도 등이 후원하고, 한국정보과학진흥협회와 한국웹에이전시협회, 성결대학교가 주최했으며 2500여 명이 참가해 쟁쟁한 실력을 뽐냈다. 대회 종목은 크게 소프트웨어 코딩분야와 하드웨어 제작, 그리고 공모 분야로 나뉘어 진행됐으며, 이중 이 씨는 소프트웨어 코딩분야의 ‘C언어 이용 알고리즘 프로그래밍’ 분야에 참가해 대상(미래창조과학부장관상)을 수상했다.

 

   

 

위에 등장한 ‘개미문제’는 이번 ICT어워드코리아에 출제된 문제는 아니지만, 실제 프로그래밍 대회에 단골로 등장하는 유형이다. 이 씨에 따르면, 위 문제의 답을 구하는 방법은 생각보다 간단하다. 핵심은 막대 위에서 마주친 개미들이 서로 충돌하지 않고 통과해 지나간다고 상상해 보는 것. 각 개미가 서로를 통과해 지나간다고 생각하면 결국 양 끝에 위치한 개미들이 반대편에 도달하는 시간이 문제의 핵심임을 알 수 있다. 물론 이런 논리적 사고와 이 아이디어를 프로그래밍으로 구현하는 컴퓨터 코딩 능력은 별개다. “ICT어워즈코리아는 쉽게 말해 수학 경시대회나 과학 경시대회와 비슷해요. 다양한 문제를 주어진 시간 내에 해결해야 하는데, 다만 그 풀이를 컴퓨터 프로그래밍을 통해 제시해야 하는 점에 차이가 있죠. 보통 수학적인 문제나, 어떤 상황에 대한 사례가 주어집니다. 문제 정보를 컴퓨터에 입력했을 때, 올바른 결과를 도출해 낼 수 있도록 정확한 알고리즘을 짜는 것이 관건입니다.”

 

이번 대회에는 총 3개의 문제가 제시됐고, 2시간의 제한시간 내에 프로그래밍을 통해 문제를 해결해야 했다. 이 씨는 이번 대회에서 C++라는 프로그래밍 언어를 사용해 알고리즘을 프로그래밍 했다. 프로그래밍 언어란 정확히 무엇을 의미하는 걸까? “흔히 프로그램을 만들 때 ‘코딩’을 한다고 합니다. 사용자가 직접 명령문을 짜서 이러이러한 상황에는 이렇게 작동하라고 컴퓨터에게 입력해주는 과정이죠. 다만 이러한 코딩을 컴퓨터가 알아들을 수 있는 프로그래밍 언어로 해줘야 하고, C++가 그런 프로그래밍 언어의 한 종류인 겁니다.”

 

   

 

대회 준비의 핵심, 알로하(ALOHA)

 

대회를 준비하는 과정은 만만치 않았다고 한다. 다른 프로그래밍 대회와는 달리 개인전으로 진행되는 대회였기에 혼자 연습하는 시간이 필요했고, 공부해야 할 양도 상당히 많았다. 이 씨는 대회 준비에 가장 도움이 됐던 두 가지를 꼽았다. “꾸준히 동아리 활동을 했던 것과, 기출 문제들을 많이 연습 했던 것이 가장 도움이 됐어요. 저는 알로하(ALOHA, Algorithm Research team of Hanyang University)라는 학과 내 동아리에서 활동을 하고 있는데, 선후배들을 통해 많이 배울 수 있었고 서로 가르쳐주면서 실력을 키울 수 있었어요. 또한 프로그래밍 대회에 자주 출제되는 유형의 알고리즘 들을 손에 익히려고 꾸준히 연습했던 것이 효과가 있었던 것 같습니다.”

 

이 씨는 컴퓨터 프로그래밍 동아리 ‘알로하’의 창립멤버이기도 하다. 1학년을 마칠 무렵, 선배들과 함께 직접 동아리를 만들었고, 2년간 부회장으로 활동하기도 했다. “프로그래밍의 중요성이 강조되면서 다양한 대회가 생겼어요. 이런 추세에 맞춰, 다른 대학에는 대회를 준비하기 위한 동아리가 하나씩 생겼는데 우리 대학에는 없는 것이 아쉬웠죠.” 처음에는 지금처럼 규모가 크지 않았다. 동아리를 만들긴 했지만 다들 프로그래밍에 대한 지식도 많이 부족했고, 학창시절부터 프로그래밍을 접해본 친구들을 따라잡는 일이 쉽지 않았다. ”중·고등학교 시절부터 각종 올림피아드에 나가면서 프로그래밍 실력을 키워온 친구들이 많았어요. 상도 맨날 타는 친구들만 타오고. 그런 친구들을 보면 부럽기도 하고, 한편으로는 따라잡고 싶었습니다.”

 

수업에서 배우는 내용만으로는 대회를 준비하는데 한계가 있었지만, 동아리 구성원들과 함께 공부를 해가면서 조금씩 기틀을 잡아나갔다. 노력 끝에, 결국 알로하는 현재 100명 규모의 동아리로 발전했고, 다양한 대회에서 수상했다. “처음에는 누구 하나 잘 하는 사람이 없어서 가르쳐줄 사람이 없었는데, 지금은 후배들에게 프로그래밍을 가르치기도 해요. 큰 대회에서 상도 많이 받았고, 네이버나 삼성 등 대기업에서 후원도 받고 있습니다.”

 

   

  

또 다른 도약을 준비하다

 

이 씨는 이제 또 다른 도약을 준비하고 있다. 매년 10월에 개최되는 가장 큰 규모의 프로그래밍 대회, ACM 국제 대학생 프로그래밍 대회(ACM-ICPC, ACM International Collegiate Programming Contest)를 준비하고 있는 것. “어떻게 보면 이번 대회도, 더 큰 대회를 준비하기 위한 과정이었다고 봐요. ACM 대회는 우리나라에서 가장 큰 규모의 프로그래밍 대회인 만큼 더욱 철저하게 준비하려 합니다.” 이 씨는 동아리 구성원들과 3인 1조로 팀을 짜서 대회를 준비하고 있다. “이번 대회를 준비하면서도 느꼈지만, 확실히 사람들과 함께 공부를 하고, 준비하는 과정이 혼자 할 때보다 도움이 많이 되는 것 같아요. 처음에 프로그래밍 공부를 시작할 때는 꿈도 못 꿨던 결과들을, 동아리 사람들과 함께 준비하면서 이뤄낼 수 있었던 것 같습니다.”

 

또한 이 씨는 보다 장기적인 목표에 대해서도 입을 열었다. “아직 구체적인 목표는 설정하지 않았지만, 프로그래머를 꿈꾸는 사람으로서 알고리즘에 대한 공부는 필수라고 생각합니다. 더 좋은 프로그래머가 되기 위해 꼭 거쳐야 하는 과정이니까요. 좀 더 제대로, 많이 공부하고 싶어요. 프로그래밍을 처음 접했을 때는 눈 앞에 닥친 장벽들이 너무나 높았는데, 더 공부하고 연습할수록 이제는 보안이나, 데이터마이닝(Data Mining) 등 다양한 길이 보이는 것이 신기합니다.”

 

마지막으로 이 씨는 후배들에게 용기를 북돋아 주고 싶다고 말했다. “저도 그랬지만, 프로그래밍을 처음 접하면 굉장히 어려워요. 포기하는 사람도 많습니다. 안 그래도 어려운데, 주변에 너무나 잘하는 사람들이 많으니까 멀게만 느껴지죠. 하지만 조금만 더 힘내면 된다고 말해주고 싶어요. 그 힘든 시기를 조금만 지나면 다 비슷한 수준에 이르게 되니까요. 포기하지 않았으면 좋겠습니다.”

 

   

 

 


정우진 기자 wjdnwls@hanyang.ac.kr
이 기자의 다른 기사 보기

사진/박설비 기자 sbi444@hanyang.ac.kr

 

키워드

'한양위키' 키워드 보기 #이현지 #컴퓨터공학부 #학생
저작권자 © 뉴스H 무단전재 및 재배포 금지