글쟁이, 코딩한다

비전공자 멋쟁이사자처럼 K 디지털 AI 과정 후기 (2) 커리큘럼 본문

나는 코딩도 한다/멋쟁이사자처럼 K 디지털

비전공자 멋쟁이사자처럼 K 디지털 AI 과정 후기 (2) 커리큘럼

Algori 2021. 3. 12. 22:57

 

0.

정말 아무것도 모르는 비전공자이던 나는 놀랍게도 높은 경쟁률을 뚫고 멋쟁이사자처럼 K 디지털 트레이닝 AI 인재 양성 과정을 듣게 됐다. 

 

지원&합격 과정 marune3.tistory.com/82

 

비전공자 멋쟁이사자처럼 K 디지털 AI 과정 후기 (1) 신청부터 합격까지

0.  12월 초 시작해 2월말까지. 나는 멋쟁이사자처럼 k digital AI 인재 양성과정을 수강했다.  시작 전에 우선 당시 내 상황을 말해야겠다.  나는 코딩을 정말 아-무것도 몰랐다.  C언어가 왜 언어

marune3.tistory.com

 

이제 수업을 들을 일이 남았다. 당시 나는 수업을 듣기 전 겁에 잔뜩 질려버렸다.

 

1. 커리큘럼

 

덜컥 등록을 마친 후에야 비로소 완전히 새로운 세계에 도전한다는 점이 실감 났다.

 

내가 그간 관심을 두었던 세계는 글 속의 세계였다. 소설 속 세계는 물론 현재 우리들이 살고 있는 세계를 기반으로 하지만, 그 안에서 새로운 가치와 경험, 관계와 아름다움을 찾는다. 기본적으로 어떤 정해진 값을 구하는 시도가 아니다. 근사하기 위한 시도다. 개인적으로도 (궁극적으로야 정답을 찾고 그를 설명하고자 하는 것을 목표로 두지만) 값보다는 그 과정을 쫓는 것에 익숙했다.

 

나를 겁나게 했던 커리큘럼을 살펴보자.

 

멋쟁이 사자처럼 지원 사이트를 참고하면 정확하다. 여기 소개된 커리큘럼 이미지를 따와 곧이 곧대로 따라간다. 

 

※ 주의.

1. 나는 철저히 내 개인 경험을 바탕으로 후기를 작성한다. 기수에 따라, 강의에 따라, 상황에 따라 모든 것이 변할 수 있다. 참고만 해주세요.

2. 정말, 정말, 아무것도 모르는 비전공자였다. 소개 역시 나처럼 아무것도 모르는 사람들을 기준으로 한다.  

 

1 -1 ) 온라인 커리큘럼

 

 

온라인 커리큘럼이다. 온라인 수업은 총 3일에 걸쳐 진행된다.

 

간단하다. 멋쟁이사자처럼의 코딩 교육 사이트, 코드라이언에서 위 강의를 듣는 것이 전부다. 

과정에 따라 시간별 차이가 있다. 각각 한 강의를 하루에 들으면 편했으며, 개당 4시간~8시간 사이인 걸로 기억한다. 

 

여러 설명이 있지만 핵심은 결국 Python, 파이썬이다.

 

파이썬도 모른 상태로 수업을 신청하고 듣게 되었다는 것이 굉장히 창피스러운 일이지만, 나는 이 강의를 접함으로써 파이썬의 존재를 인식했다. 

 

파이썬은 프로그래밍 언어다. 개발자들이 개발을 위해 컴퓨터와 소통하는 언어, 정도로 나는 프로그래밍 언어를 이해했다. 배우다보니 정말 언어를 배우는 것과 크게 다르지 않았다. 말 그대로 영어를 배우는 것처럼,(물론 다 영어로 쓰지만) 단어를 인식하듯 주요 함수를 익히고, 배운 단어들을 조합해 문장을 형성하고, 이를 이어붙여 하나의 긴 코드를 구성했다. 이 코드로 컴퓨터에 말을 걸어 우리가 원하는 값을 컴퓨터가 처리해주도록 만든다. 배움으로 돌려받을 값도 언어와 같다. 언어를 배우면 더 많은 사람들과 대화할 수 있으며 새로운 세계를 받아들일 수 있었다. 파이썬을 배움으로 나는 또 다른 수없이 이해할 수 없던 기호들을 받아들이게 됐다.

 

위 온라인 강의들은 말 그대로 해 보는 것에 의의가 있는 기초 커리큘럼이다.

 

저 수업을 듣는다고 파이썬을 완전히 마스터할 수는 없다. (나는 그럴 수 있을 줄 알았는데 내가 못 해서 그런 줄 알고 우울해했다. 그럴 필요 없다. 3개월 수업 과정을 듣고 나서도 마스터는 불가능하니까) 다만 아주 기본적인 매커니즘, 가장 큰 대표적인 기능들, 편리성 등을 접할 수 있다. 이미 가벼운 코딩 경험이 있는 분들에게는 시시함 of 시시함일지도 모르겠다.

 

 

1-2 ) 오프라인 커리큘럼

 

사실 온라인 커리큘럼은 그저 숟가락을 얹은 것이다. 핵심은 결국 오프라인 커리큘럼이다. (이름이 오프라인이지, 코로나 때문에 끝까지 온라인에서 진행됐다... 실시간 비대면 수업이 정확한 이름이었다. 안타까울따름) 이 커리큘럼을 살펴보는 것이 아주 정확한 흐름을 알아가는데 도움이 될테다.

 

아이스브레이킹 ; 강사님을 만난다. 같은 반 분들도 만난다. 1기는 반이 3개, 반마다 25~30명이었던 걸로 안다. 나는 1반이었다. 강사님의 강의 스타일과 공부 스타일이 어울리는 것이 아마 무척 중요할 테다. 다만 반 배정은 질문에 따른 랜덤이다. 관심사를 잘 선택할 수밖에. 개인적으로 나는 우리 강사님 수업에 아주 만족했다. 설명은 쉽고 친절하면서도 가볍지 않았다. 이것은 내 행운이다.

 

파이썬 ;

Jupyter Notebook이 작업 기초 프로그램이다. 코드를 넣으면 곧바로 결과값을 보여준다. 처음에는 Print문부터 시작하는 기초 코드부터 빠르게 되짚어나간다. 이어 라이브러리 역시. 핵심 3대 라이브러리라고 할 수 있는 Pandas, Numpy, Matplolib을 짚고 넘어간다. 그리 긴 시간을 쓰지는 않는다. (이해하기 위해서는 긴 시간이 필요했다)

이걸 수학이라 한다면 간단히 이게 덧셈입니다, 이게 뺄셈입니다, 이건 곱셈이고 저건 나눗셈이에요, 이것들을 조합하면 짜잔, 이제 곧 미분과 적분을 할 수 있답니다. 이런 느낌이었다. 친절한 설명을 따라가지만, 어느 순간 급격히 난이도가 뛰어오를 수 있다. 그러니 저 덧셈, 뺄셈, 곱셈, 나눗셈을 통한 기초 체력 훈련에 진심으로 임해야할테다. 나는 고생했다.

 

데이터베이스(수집과 처리, SQL) ;

데이터베이스를 다루는 주요 언어를 SQL이라고 한다. 데이터를 다루기 위해서는 SQL을 흔히 익힌다. 이 과정에서는 SQL이 중점사항은 아니다. 언어 기반은 마찬가지로 파이썬이고, 주요 SQL 프로그램인 Oracle, MySQL 등을 다루지는 않는다. 파이썬에 속한 SQLite3으로 핵심 명령어를 인지하고 넘어가는 수순이다.

오히려 데이터수집 과정을 조금 더 확실히 짚고 넘어간다. 크롤링(인터넷에서 정보를 긁어오는 일) 실습이 꽤나 세밀하게 이어진다. 이 과정에서 API 사용법, Json 데이터의 의미와 활용법, HTML 기본 문법도 다루고 넘어간다. 최근에는 공개 데이터도 꽤나 많아졌다. 수업을 듣다보면 Kaggle, Dacon 활용법, Open Data 소스와 활용 방안도 알게된다. 강사님이 다 알려주신다.

여기까지는 크게 겁낼 필요 없었다. 다 진행과정에 있는 실습이므로 그대로 코드를 따라하다보면 이해할 수 있다.

 

AI ;

과정 이름이 AI 인재 양성인 만큼 앞의 과정들을 거친 후 핵심 과제는 AI다.

 

그 중에서도 기계 학습 분야가 우리의 주요 탐구 대상이었다. 자, 머신러닝과 딥러닝. 말만 들어도 겁나는 일이다. 이걸 내가 직접 해본다니. 이상한 일이지만 실제로 그 일이 일어났다.

 

AI 학습은 이렇게 이뤄졌다.

1) 개념 이해(수식과 설명) 2) 핵심 도구 학습(Scikit-Learn, Tensorflow가 핵심) 3) 적용

 

분명 한계는 있다. 수식은 기본적으로 미분, 적분, 선형대수학을 이해한다는 전제로 이뤄진다. 물론 난 아니었다. 그러니 실제 수식이 적용되는 과정은 대강 넘기고 그 원리만 이해할 수 있었다. 이마저도 친절한 설명과 몇 차례 돌려보는 녹화본 아니었으면 불가능했을테다. 코드와 도구도 모든 것을 이해하지는 못했다. 다만 적용을 위한 필수 항목만 알아냈을뿐.

 

실제로 3개월만에 척척 AI를 이해하고 곧바로 컴퓨터와 내 프로젝트에 적용하는 것은 어쩌면 불가능한 일일지도 모른다. 다만 이를 위한 모든 과정을 탐구하고 공부해나가야할 방향과 주요 과제들은 명확히 주어진다. 남은 건 내 몫일뿐.

 

수업에서는 머신러닝의 주요 지도학습 이론, 비지도학습 이론, 딥러닝 기본 모델 -> CV, 자연어 처리를 위한 딥러닝 등 모든 범위를 훑는다. 다만 시간에 한계가 있는만큼 기초 이론을 짚고 적용하는 것까지 의의가 있다. 실제 주요 학습은 프로젝트와 동시에 일어나기 때문에 내가 이해하고자 하는 AI 분야가 어디인지 고민하고 이를 프로젝트에 가져오도록 팀원들과 대화하는 것이 중요했다.

 

 

1 - 3) 프로젝트

 

과정을 거치는 중간중간에 프로젝트가 나온다. 내 경우, 수업 시작 약 2주 만에 첫 프로젝트를 진행했다. 인원은 4~5명 사이로 구성됐으며 강사님이 우리가 제출한 코딩 능력 수준에 따라 임의로 정해줬다.

 

나는 프로젝트를 앞두고 무척 걱정했다. 말 그대로 아무것도 하지 못하고 꿔다놓은 보릿자루처럼 멍하니 있을까봐 싶어서였다. 

 

하지만 생각보다 그럴 일은 적다. 프로젝트가 시작하면 각자 해야할 역할들이 있다. 팀원들끼리 코드를 함께 익히고 데이터를 처리할 방안을 고민하다보면 분명히 내가 해결할 수 있는 일이 주어진다. 벅찰 때도 많았다. 따라가는 것만으로 허덕일 때도 있었다. 다만 포기하지 않는다면 분명히 역할을 할 수 있었고, 이는 큰 기쁨으로 돌아왔다.

 

첫 프로젝트는 데이터 처리와 통계였다. 우리 팀은 저 엑셀 형태의 도서관 데이터를 바탕으로 이용자 위치를 입력받아 인근 도서관을 추천해주는 시스템을 구축했다. 그리고 실제로 해냈다. 물론 코딩에 어느정도 해박한 팀원의 리딩을 따라 진행했지만, 나로써도 여러 역할을 해냈기에 무척 놀라운 성과였다.

 

프로젝트는 이론으로 배운 코드들을 실제 데이터에 맞게 적용하는 단계다. 소설 이론을 오래도록 배우면 소설에 해박해질 수 있다. 그러나 단기간에 소설에 대한 이해를 끌어올리려면 직접 시행착오를 겪으며 써보는 것이 가장 큰 도움이 될테다. 프로젝트는 실제로 소설을 써보는 단계다. 지정해준 단계에 맞춰 조금씩 능력을 끌어올리는만큼 이 프로젝트에 최선을 다하는 것이 가장 좋은 학습효과를 줄 것이라 믿는다.

 

우리 반은 총 다섯 번의 프로젝트를 진행했다. 데이터처리&시각화, 머신러닝(ML) 적용 1/2, 딥러닝(DL) 적용, 파이널 프로젝트 이렇게 다섯 개다. 한 번씩 프로젝트를 진행할 때마다 키가 껑충 뛰는 기분이었다.

 

 

마지막 프로젝트(이상형 월드컵 기반 영화 추천 프로젝트)에서 구성한 추천 시스템 코드 일부분이다. 이 아래로 이어지는 긴 코드의 시작점으로 극히 일부분이다. 아무것도 모르던 상태에서 3개월만에 자아낸 코드다. 이 문장들 하나하나를 이해하고 있다는 것도 내게는 참 이상한 일이다. 이 코드 외에도 수없이 많은 코드들을 보고 적용하며 만들어냈다. 이 함수는 심지어 쉽고 간단한 편이다. 놀라운 일이다.

 


 

다음, 마지막 포스팅에서는 진짜 후기를 다뤄본다. 수업을 들으며 느낀점, 배운점, 나아갈 방향들을 적겠다. 

Comments