성장일기

 우아한 테크코스 4기 온라인 설명회를 보고나서 자소서 질문중에 프로그래머가 되고싶은 이유가 무엇인가요?라는 질문이 있었다. 한번도 이런생각을 해본적이 없는데 곰곰히 생각해보았다. 단지 재미있어서? 요새 핫한 직종이라서? 내 경험에 빗대어 곰곰히 생각해보았다.

 

 

서론

 나는 정보보호학과에 진학을 했지만, 내가 희망하던 과도 아니였고 지인의 추천으로 인해서 성적에 맞춰서 입학하게 되었다. 대학교에 입학해서 프로그래밍 언어 중 씨언어라는 것을 처음 배우게 되었다. 나는 고등학교 때 공부를 열심히 하지 않았지만 내가 좋아하는 수학만큼은 열심히 하여 대학도 수학성적으로 입학할 수 있었다. 씨언어는 수학과 되게 비슷한점이 많았다. 씨언어의 문법을 배우는 과정은 수학의 어떠한 개념에서 증명과정과 공식을 배우는 과정과 비슷했고, 연습문제와 프로그래밍 과정은 앞써 배웠던 문법을 통해 문제를 해결하기 위한 방법을 생각해내고 생각해낸 방법으로 결과를 도출해내는 과정과 비슷했다. 반복문을 통해 구구단을 구현하는 것과 확률과 통계에서 배웠던 팩토리얼을 재귀함수로 구현해내는 것을 보고 프로그래밍을 통해 내 머리속에 있는 것을 구현할 수 있겠구나!라는 생각을 하게 되어 프로그래밍의 매력에 빠지게 되었다. 하지만 이때는 코딩이 단지 재미있고 신기했을뿐 프로그래머라는 직종도 몰랐고 되고싶은 생각도 없었다. 이후 나는 2학년 1학기를 마치고 군대에 가게되었다.

 

 

본론

 군대를 제대하고 나서 복학하기전에 뭐라도 공부해야 하겠다는 마음으로 요새 핫하다는 파이썬을 공부하게 되었다. 이때는 파이썬이 왜 핫한지, 어디에 쓰이는지 모르고 무작정 공부했다. 동기부여가 제대로 됐을리 없고 기본서만 1번정도 정독하는게 다였다. 그리고 2학년 2학기에 복학하고나서는 자바라는 객체지향 언어를 배우게 되었다. 씨언어의 절차지향과는 다른 객체지향언어인 자바를 통해서 객체지향 프로그래밍을 처음 접하게 되었다. 이후 종강을 하고 방학 때 친구가 쏠쏠하게 집에서 할 수 있는 알바가 있다면서 무엇인가 추천해주었다. 바로 '카카오톡 대화조각 수집 알바'로 대화 1조각당 700원을 준다하여 최대 인당 700만원(세전)까지 벌 수 있고, 친구 선배는 6~7주 정도를 투자하여 700만원(세전)을 다 채웠다고 했다. 아래 사진은 해당 데이터 수집 사업 개요이다(당시에 날짜는 2월까지 연장되었다).

데이터 수집 사업 개요

나는 이런 꿀알바가 있나하고 무조건 한다고 했다. 개요를 대충 살펴보면 AI교육챗봇의 러닝에 필요한 카카오톡 대화조각 데이터를 수집하는 사업이였다. 이렇게 들을때까지만 해도 되게 괜찮은 알바라고 생각했지만, 대화 조각의 인정 조건을 보고 생각이 바뀌었다. 아래 사진은 대화 조각 인정 조건이다. 

 

대화 조각(수집 데이터)의 정의

700원짜리 대화조각 1개를 인정받기 위해서는 위 사진과 같은 기준을 만족해야 한다. 따라서 알바를 진행하려면 사전에 동의하고 등록한 사람과의 카카오톡 대화를 pc에 메모장 형태로 옮기고 말차례 수 , 말풍선 수, 의미있는 말풍선 수, 한 가지 주제등 조건을 만족하는 대화조각을 파싱하여 이름, 전화번호, 주소등등 개인정보를 해당 사업에서 요구하는 문자열로 비식별화 처리를 하고 구글폼으로 제출하는 과정까지가 1개의 대화조각 제출 과정이다. 700만원을 채우기 위해서는 10000개의 대화조각이 필요하다. 처음에는 말로만 들었을때는 되게 간단하고 쉬워보였지만, 실제 까보니깐 컴퓨터로 하는 막노동에 가까웠다. 물론 집에서 편하게 돈을 벌 수 있는것은 맞지만 미친듯이 작업해서 6~7주라는 시간을 투자해야했다.

 

 뭔가 이 반복적인 과정을 프로그래밍으로 해결할 수 있을 것 같다는 자신감이 들어서, 할 수 있을지 모르겠지만 친구한테 내가 프로그래밍으로 알바 편하게 하게 해주겠다고 무작정 말해버렸다. 그러고 자바 언어로 바로 코딩으로 들어갔다. 나름대로 말풍선 수, 말차례 수를 고려하여 대화조각을 나누고 블랙리스트를 기반으로 의미없는 대화를 없애거나 다른 말로 대체하는등 알고리즘을 잘 고려하여 대화조각을 나누는 프로그램을 만드는데 성공했다. 따라서 일일히 수작업으로 대화조각을 선별하고, 파싱하고, 비식별화를 해야하는 일을 프로그래밍으로 해결하였다.

 

 대화조각화 프로그램은 성공적으로 만들었지만 한가지 문제가 더 있었다. 바로 대화조각을 올리는 과정이다. 앞써 말했듯이 대화조각 1개를 올리기 위해서는 구글폼에서 개인정보(이름, 대화자, 전화번호, 이메일 등)와 동의과정 대화조각 붙혀넣기등의 반복적인 과정을 일일히 수행해야 한다. 이 과정을 만번을 해야하는데 나는 도저히 할 엄두가 안났다. 그리고 돈도 돈이지만 시간이 너무 아깝다는 생각이 들었다. 이 과정도 프로그래밍으로 대체할 수 없을까 구글링을 해보다가 매크로라는걸 통해서 해결할 수 있음을 알아냈다. 따라서 크롬드라이버와 파이썬의 셀리니움 라이브러리를 다루는 법을 공부한 후 대화조각을 올리는 과정조차도 프로그래밍으로 해결하였다.

 

 

결론

 이 프로그램을 통해서 나도 돈을 쉽게 벌 수 있지만, 주변사람들에게도 프로그램을 소개하여 쉽게 돈을 벌 수 있는 기회를 제공하면 좋겠다는 생각이 들었다. 하지만 해당 사업 신청마감이 내가 프로그램 개발을 완성하기 전이여서 지인들에게 소개를 했지만, 나의 도전과 결정을 믿어준 사람들만 신청하여 혜택을 받을 수 있었다. 이게 돼? or 이게 가능해?라고 생각하는 사람들도 다수 있었다. 나는 이번 경험을 통해서 무언가의 문제를 해결하기 위하여 프로그래밍으로 해결할 수 있는지 생각하고, 알고리즘을 생각해내고 개발하는 과정이 너무 재미있었고, 결과를 도출해낼 수 있어서 뿌듯했다. 또한 내가 개발한 프로그램으로 인해서 돈도 벌 수 있었지만, 누군가에게 도움이 된다는 것을 경험했다. 무엇보다 내가 직접 작성한 코드는 가치가 있었고, 인정받는 것을 경험할 수 있었다. 따라서 나는 내가 개발을 함으로 인해서 누군가에게 도움을 줄 수 있고, 영향력을 끼칠 수 있는 개발자가 되고싶다는 생각을 하게 되었다.

 

 

추가

정산 내역서
정산 내역서
정산 내역서

 

 위 사진은 내가 개발한 프로그램을 통해 대화 조각 수집 사업에 참여해 얻은 금액의 정산 내역서이다. 위 결과를 보고 나의 대화조각화 프로그램의 정확도를 알 수 있는데, 10634건중 8326건이 유효조각으로 인정되었다. 나를 제외한 지인들의 결과는 전부 10000건중 9000건이상이 유효 건수로 인정되었다. 확률로 따지면 대략 90퍼정도 됐다.(나는 당시 여자친구와의 카톡대화로 중복주제의 대화가 너무 많아서 정확도가 살짝 떨어지는 것 같다.) 이 결과를 보고 나름 알고리즘은 잘 짰다고 생각했으나, 나중에 코드를 돌이켜보니 이게 내가 짰는게 맞나 싶을정도로 형편없어서 깃허브에 올리지도 못했다(당시에는 깃허브 계정이 없었음). 이걸 느꼈다는걸 자체가 내가 코딩을 계속하면서 코딩을 짜는 실력과 보는 눈이 많이 늘었다는걸 알 수 있어서 긍정적으로 생각한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band