고교생이 개발하는 AI 영화 평점 예측 프로그램!

수강생 인터뷰 - 고등학생 개발자 이민준, 김태윤 님

by Elice 엘리스

우리 일상 곳곳 가까이에 있는 인공지능 기술! 그런데 직접 개발을 해야 한다고 하면, 너~무나 멀게 느껴지지 않나요?

여기에 고등학생인데 코딩을 공부해서 직접 인공지능을 접목한 영화 평점기 프로젝트를 진행한 분들이 있습니다! 수험 공부만으로도 시간이 없을 것 같은데, 언제 어떻게 인공지능을 배워서 프로젝트까지 진행했을까요? :) 아래와 같은 의미 있는 소감을 전한 이민준 님과 김태윤 님을 직접 만나보았습니다.



인공지능은 대기업에서도 경력직들만 할 수 있는 고차원적인 것인 줄 알았는데
알고 보니 우리도 할 수 있었어요







Q. 자기소개 부탁해요.

민준 : 저는 이우고등학교를 갓 졸업한 이민준이라고 하고요. 현재 컴퓨터 공학과와 응용수학통계학과의 진학을 앞두고 있습니다.


태윤 : 저도 이 친구와 같이 이우고를 막 졸업했고요 컴퓨터 과학과를 신입생으로 들어가는 김태윤이라고 합니다.






Q. 어떤 프로젝트인지 소개해 주세요.

네이버 영화를 보면 영화에 대한 여러 가지 정보가 나와 있잖아요. 이런 정보들을 인공지능에게 학습을 시켜서 새롭게 나오게 될 영화의 평점을 예측해주는 프로그램을 개발하고 있어요. 배우, 감독, 장르, 줄거리와 시사회에서의 평가 등의 정보를 통해서 영화가 받게 될 평점을 예측해 주는 것이죠. 현재 크롤링과 웹 구현이 완성되었고 인공지능 파트의 완성을 앞두고 있어요.


InterviewCover_6.png 학생들이 개발한 영화 평점 예측 프로그램



Q. 어떤 원리인지 간단하게 설명해줄 수 있나요?

시놉시스, 감독, 배우, 등 여러 영화에 대한 정보들이 영화의 변수가 돼요. 이 변수들 하나하나를 전부 형태소화 시키고 벡터화시켜서 이를 인공지능에게 학습시켜요. 예를 들어 '영화가 너무 재미있어요. 다음에 또 보고 싶네요'라는 영화 평이 있으면, 이를 명사, 동사, 형용사, 조사, 어미, 어간 등으로 쪼개어 이를 인공지능에게 학습시키는 것이죠. 영어는 띄어쓰기 별로 의미가 분리되는데 한글은 한 단어에도 여러 의미의 단어가 포함되어 있다 보니 형태소 별로 분류하는 과정이 필요해요. 그래서 긍정/부정의 단어를 영화 평점에 반영해서 계산해 주는 것이죠. 사용자는 직접 영화, 댓글 개수 등의 변수를 선택하고 크롤링해 오는 과정을 체험할 수 있어요.



Q. 개발에는 어떤 언어와 기술이 사용됐나요?

기본적인 웹 베이스는 파이썬 프레임워크인 장고를 사용하고, 여러 사용자들의 요청을 한 번에 진행할 수 있도록 해주는 RabbitMQ라는 프로그램을 사용했어요. 크롤링은 파이썬 패키지인 Beautiful Soup를 사용해서 영화 정보 페이지에서 특정 정보만 추출하도록 진행했습니다.


이우고등학교 인공지능프로젝트 진행상황_Page_02.png



Q. 프로젝트 진행에 필요한 인공지능 공부는 어떻게 했나요?

민준 : 구글에서 만든 머신러닝 단기집중 과정을 통해서 기초 개념을 쌓고 그다음에 '엘리스'를 접하게 되었어요. 구글 머신러닝 과정 같은 경우에는 중간에 끊기는 내용들이 있었거든요. 예를 들면 사칙연산 같은 아주 기본적인 이론을 설명하다가 갑자기 미적분을 들어가는 식의 갭이 있었어요. 그 과정에서 이해하는 데에 상당한 어려움이 있었는데 '엘리스'에서는 그 부분을 확실히 잡아주어서 머신러닝 기술들을 터득하고 그 기술을 응용하는 과정도 더 잘 이해할 수 있었어요.


태윤 : 저도 '엘리스'에서 파이썬, 자료구조, 인공지능, 프로그래밍 수학 등을 배웠구요. 그중에서 인공지능 머신러닝 과목에서는 선형대수학, 회귀 분석, 나이브 베이즈 분류, K-means 클러스터링을 배웠어요. 이를 통해서 머신러닝의 기본에 대해서 알 수 있었구요.

이 과목에는 머신러닝을 진행하는데 필요한 기본적인 이론과 기법 하나하나마다 직접 적용해보는 실습들이 있어요. 그래서 배운 내용을 바탕으로 프로젝트에서 응용까지 할 수 있는 발판이 되었던 것 같아요.



Q. 인공지능 공부가 어려웠을 것 같은데.

민준 : 자연어 처리에 필요한 라이브러리 Gensim에 대해서 여기저기에 있는 개발 문서를 찾아가며 배워야 했어요. 게다가 자료들이 모두 영어로 되어 있어서 해석해가면서 배우는 과정이 일단 어려웠어요. 여기저기에 있는 개발 문서들을 찾아보면서 배우다 보니 중간에 빠진 부분에 대한 결여가 있다는 점도 어려웠구요. 그런데 '엘리스'에서 배운 기본 지식이 있다 보니 개발 문서를 찾아서 보고 이해하는 데에 큰 어려움이 없었어요.


태윤 : 인공지능뿐만 아니라 다른 언어를 공부할 때도 마찬가지인 부분인데요, 기본적인 개념 자체는 그래도 이해할 수 있어요. 설명도 여러 가지 비유를 통해서 해주시니 쉽게 이해할 수 있고요. 그리고 나서 이를 실제로 코딩 실습해보는 단계가 있는데, 이때가 항상 어려운 것 같아요. 머신러닝 모델을 구현할 때는 어떤 기능이 있는지를 잘 알아야 어려움이 없기 때문에 파이썬 Numpy라든지 Matplotlib, Pandas 등 여러 라이브러리를 사용하는데 익숙해지기까지 시간이 좀 많이 필요했어요.



Q. 프로젝트할 때의 애로사항에는 뭐가 있나요?

태윤 : 크롤링을 해와야 하잖아요. 그런데 그런 걸 막아놓거나, 어떤 값을 출력하고 싶은데 그 값의 태그가 너무 깊숙이 들어있거나 그런 게 너무 많아서 네이버 영화같이 간편하게 되어 있으면 좋겠다는 생각을 많이 해요.


민준 : 저희가 이번 프로젝트의 주제를 선택한 것도 정보가 많다는 이유가 가장 컸던 것 같아요. 이런 식으로 다룰 수 있는 데이터가 많지 않아요. 만약 완전히 새로운 분야에 대한 데이터를 다뤄보고 싶다고 하면 맨바닥부터 데이터를 쌓기 시작해야 하거든요. 한국어로 된 데이터를 찾기가 쉽지는 않은 것 같아요.



Q. 인공지능 프로젝트를 통해서 느낀 점은 무엇인가요?

태윤 : 인공지능이라고 하면 정말 엄청나게 어려운 분야, 내가 다가갈 수 없는 엄청난 거라고 생각을 했는데 하나씩 배워 나가면서 하니까 그렇게까지 멀기만 한 영역은 아니라는 것을 알게 되었어요.

저는 원래 인공지능 분야를 당장 공부할 계획이 없었어요. 한다고 하더라도 나중이 될 거라고 생각했고요. 그런데 '엘리스'에서 배우고 친구들과 프로젝트를 하면서 경험을 쌓았다는 것 자체에 큰 고마움을 느껴요.


민준 : 저도 인공지능에 대해서 아예 모를 때는 어떻게 저런 걸 구현할 수 있을까, 라는 생각을 했었거든요. 인공지능 개발은 구글이나 삼성, SK, 애플과 같은 대기업에 있는 사람들 중에서도 경력직들만 다룰 수 있는 고차원적인 분야라고 생각을 했어요. 그런데 '엘리스'에서 인공지능을 배우고 직접 프로젝트를 진행하면서 여러 가지 결과도 확인을 해보니까, 인공지능/머신러닝을 직접 다뤄서 어떤 가치를 창출해낼 수 있는 능력을 우리도 가질 수 있구나, 라는 자신감을 가지게 되었던 것 같아요.



Q. 코딩의 어떤 부분에서 재미를 느끼나요?

태윤 : 게임처럼 내가 뭔가 값을 입력하면 바로바로 결과가 나오는 게 너무 좋아요. 공부는 어느 정도 해도 뚜렷한 변화가 일어나지 않는데, 프로그래밍을 하면 바로바로 뭐가 잘못되었는지 보여주니까 그게 좋아서 지금까지 하고 있어요.


민준 : 프로그래밍을 한다는 것은 세상에 존재하지 않던 어떤 프로그램을 만드는 거잖아요. 없던 기능을 새로 만든다는 게 새로운 가치를 만들어 내는 일이라서 보람이 있어요. 그리고 실제로 효용 가치가 많이 없다고 하더라도 결괏값이 나오는 것 자체가 굉장히 흥미로워요.


DSC08464_보정.jpg




민준, 태윤 님이 수강한 엘리스 코딩 과목이 궁금하다면?

- 인공지능 개발 과목 보러 가기


민준, 태윤 님의 AI 프로젝트가 궁금하다면?

- AI 영화 평점 계산 프로그램 보러 가기


우리 학교에도 무료로 엘리스 코딩을 도입하고 싶다면?

- 엘리스 기관 사용 신청하기

매거진의 이전글나의 아마존 개발자 도전기