2020 이노베이션 아카데미 컨퍼런스(INNO-CON) 후기

2020 이노베이션 아카데미 컨퍼런스(INNO-CON)

2020 INNO-CON 홈페이지 (http://www.innocon.co.kr/)

[키노트 스피치] “왜 42인가?”

  • 소피비제_Ecole42 교장

소피비제(Ecole 42 교장) - keynote speech 중

42에 대한 소개와 42의 Global Interaction에 대한 이야기가 주를 이루었다. 국제적으로 10개가 넘는 42캠퍼스가 존재하며, 앞으로도 계속 확장을 이어갈 예정에 있다. 42가 국제적으로 각광받고 각국에서 요구되는 이유는 바로 ‘지식’의 접근법이 매우 달라졌기 때문이라고 볼 수 있을 것 같다. 그저 단순하게 ‘누가 이야기해주는 것을 듣는것’만으로는 좋은 교육방법이라고 할 수 없다. 스스로가 직접 문제를 파악하고 해결해볼 수 있는 Problem Solving 이야말로 42에서 가장 체득하기 좋은 ‘능력’이 아닐까 싶다.

소피비제님의 말씀을 들었을 때, 내가 42를 선택한 것은 정말 행운이었구나 하는 생각이 가장 크게 들었던 것 같다.

새로운 기술시대에 적응해야 하는 지금, 지식을 어떻게 습득하고 지식을 습득하는 방법을 어떻게 배우느냐가 새로운 시대를 맞을 수 있는 핵심적인 필요성이자 기업이 개발자에게 요구하는 가장 큰 능력이지 않을까 싶다.


Global 42 소개

자세히 보기

42Seoul 마지막 공통과제를 앞두고, 뼈문과 비전공자가 경험한 1년간의 회고록

42Seoul 지원과 La Piscine(1개월 집중교육) 까지

2019년 11월, 우연히 학교에서 이노베이션아카데미의 42Seoul 포스터를 보지 않았었다면, 지금 내 인생은, 개발자로의 길은 어떻게 되었을까 하는 생각을 가끔씩 하게 된다. 정말이지 답도 없고 길도 없고 막막한 순간들만 있진 않았을까…? 나에게 42Seoul은 참 좋은 동반자고 좋은 멘토였다. 나는 피아노를 전공하려고 했었던, 일반고등학교 문과 출신에 독어독문학을 전공한 뼛속까지 문과에 비전공자이다. 그런 내가 마지막 과제를 남겨두고 있는 지금, 지금까지의 과제들을 수행하면서 느꼈던 점들과 성장과정, 42Seoul에서의 생활들에 대해서 회고록을 작성해볼까 한다.

지금 생각해보면 참 까마득하다. 작년 11월, 아무것도 모르던 내가, 코딩을 업으로 삼을 것이라고 생각지도 못했던 내가 당당히 온라인 테스트에 합격하고 곧바로 체크인 미팅과 창의캠프, 그리고 한 달간의 La Piscine 까지, 본과정에 오기 위해 쉴새없이 달렸던 것 같다. 처음에는 그저 코딩이 유행하니까, 인공지능이 급성장하니까 호기심에 신청해보았다. 물론 그 호기심만으로 지원했던 것은 절대 아니다. 돈도 준다고 하지, 아이맥도 쓸 수 있다고 하지, 비전공자 생도, 졸업예정자가 아닌 일반 사람들도 지원가능하다 하지 조건이 너무 좋았다. 그렇게 나의 42 Life가 시작되었다. 이때까지만 하더라도 영국 엘리트 교육을 모방했네, 결국 헬조선화 되겠구나, 이런 부정적인 시선들의 입장도 들어왔었다. 한국에서, 특히 정부에서 주관하는데, 심지어 교육도 시켜주는 게 아니라 자기가 스스로 공부하는 시스템이기에 충분히 있을법한 이야기들이다. 그리고 나 역시 그런 입장들에 어느정도 동의했었다.

작년 12월, 이노베이션 아카데미 개소식에 참여할 수 있었다. 그 때 이민석 학장님의 말씀, ‘소프트웨어 개발자가 세상을 바꾼다.’ 이 한마디가 너무 좋았다. 단순하게 인공지능을 공부해보고 싶다던 비전공자 문과생이었던 내가, 세상을 바꿀 개발자가 되고 싶다는 생각을 하게 되기 까지는 그렇게 오랜 시간이 걸리지 않았다. 딱 저 한 마디, 대학입시에 합격했을 때보다 가슴뛰던 그 설렘은 정말이지 오랜만에 느껴보았던 것 같다. 그 한 마디가 42에 대한 온갖 부정적인 입장을 무너트려주었다. 그것이 내가 42Seoul에서 버틸 수 있었던 원동력이 되었던 것 같다.

온라인 테스트에 합격한 이후, La Piscine이 끝날때까지 참 많은 것이 변하고 바뀔 수 있는 시간이었던 것 같다. 특히 창의캠프를 갔다오고 나서 ‘왜 이렇게 퀄리티가 좋지? 3인실 호텔방을 그냥 숙소로 준다고? 정부기관은 역시 다르긴 다르구나’ 하면서 감탄했던 것, 첫 번째 과제를 마주하고 ‘아 xx,, shell이 뭐야 대체…’ 라며 욕을 했던 것, 첫 번째 시험에서 10분이 지나자 로그인 못 한 사람들을 불러모아서 “이렇게 저렇게 하면 될거에요~” 라고 알려주는 줄 알았으나 20분이 지나도 돌아오지 않던 사람들을 보면서 ‘뭐지…?’ 싶었는데 알고보니 집에 가라고 했던 충격적인 사실, 그 때 당시에는 매우 어색했으나 지금은 너무나도 당연해졌다. 이렇게 42 Seoul에, 42 Style에 나도 모르게 융화되고 적응되었다. 치열했던 1월의 La Piscine. 1월에 La Piscine을 할 수 있었던 건 나에게 매우 행운이었다. 코로나가 유행하기 전이었기 때문에 마스크를 착용하지 않았고, 매일 클러스터에 출석하며 눈치보지 않고 사람들과 대화할 수 있었으며, 오아시스에 모여 커피를 마시며 시험에 떨어졌다는 절망의 목소리도, 다양한 목소리들이 오고 갔다. 이것이 ‘한국에서 일어날 수 있는 일인가’ 라는 생각이 들었다.

C를 공부한다는 것은 소프트웨어 개발자라면 모두가 거쳐가야 할 필수관문이라고 익히 들어왔다. 하지만 나는 어차피 인공지능에 관심이 있었고 그러기 위해서는 Python을 필수적으로 익혀야만 했기에 당장도 급한데 내가 42 과정에 참여하면서 C를 공부해도 되는것일까? 싶은 걱정이 들었었다. 물론 그 당시야, 아무것도 몰랐을 때였고 42Seoul 도 자리를 잡기위해 시간이 필요했었으니 정보도 많이 없었다. 그렇게 혼자 끙끙대며 고민했었는데, 지금에서는 당당하게 말할 수 있을 것 같다. “Python을 주력으로 사용할 것이라도, Web 개발자가 될 것이기에 다른 언어와 프레임워크만을 사용할 것이라도, C를 요즘 누가 쓰냐고 왜 공부하냐고 욕을하더라도 42Seoul에 조금이라도 관심있으면 ‘무조건’ 참여하세요” 라고 말이다. 물론 본과정에 합격하고 공통과제에 집중하게 되면 당연히 다른 언어 사용할 기회는 없다고 봐도 된다. 하지만 C를 통해 진행하는 42의 커리큘럼은 그 모든 걱정거리들을 잠재울 수 있을 정도로 체계적이며, 단순히 ‘C 언어’ 만 공부하고 체득하는 것이 아니라 소프트웨어 개발자로서의 태도와, 학습방법을 스스로 체득하고 적용할 수 있는 ‘능력’, 그리고 ‘커뮤니케이션 능력’을 기를 수 있다.

가장 핵심적인 42Seoul의 시스템은 바로 교수와 선생이 없는 ‘동료 학습’이지 않을까 싶다. 이 시스템 속에서 옆에 있는 동료가 서로의 선생님이자 교과서가 되는 것, 또한 그 지식을 공유하는 과정에서 발생하고 향상되는 커뮤니케이션 능력과 학습방법은 어느 기업을 가더라도 필수적으로 지녀야할 핵심가치이자 유용한 태도라고 생각된다. 이것을 얻을 수 있다는 것만으로도 주력으로 하게 될 언어와 기술스택에 조금 멀리 돌아가게 되더라도 충분히 42의 일원이 될 필요성은 충분하다고 생각한다.


본과정 합격, 그 이후

42Seoul 본과정 합격 메일

자세히 보기

Attention is all you need - Transformer 논문 요약

기존에 지배적이던 모델은 RNN이나 CNN에서 Attention Mechanism을 적용한 모델들이다. 구글이 이번 논문에서 발표한 Transformer는 Attention만으로 인코더와 디코더를 구성함으로써 보다 적은 계산량으로 높은 성능을 내는 모델이다. RNN모델은 문장이 길어질수록 메모리의 제약때문에 앞에 나온 sequence들을 반영하지 못한다는 단점이 있고, 기존 RNN을 이용하면 “The animal didn’t cross the street because it was too tired.” 라는 문장이 있을 때 it이 무엇인지 알아낼 수 없었다. 하지만 Transformer의 self-attention 기법을 사용하면서 그것이 가능해졌다.

Model Architecture

트랜스포머의 가장 주요한 특징은 벡터간 계산이 필요하던 것을 행렬로 바꾸어 병렬처리를 가능하게 했다는 것이다 . Positional encoding으로 단어들의 위치정보를 계산하였으며, residual connection을 사용하여 레이어를 정규화 하면서 안정성을 더해주었다. 또한, 인코더의 input과 output의 차원이 같기 때문에 여러 인코더를 배치할 수 있다는 특징이 있다. 디코더 역시 인코더와 비슷하지만, 다른점은 마스킹을 적용한다는 것이다. 아직 나타나지 않은 단어에 대한 어텐션을 배재시키기 위함이다. 멀티헤드 어텐션에서는 key, value, query로 연산을 하고 피드포워드를 통해 행렬을 벡터로 변환시킨 후 리니어와 소프트맥스 레이어를 통해 벡터를 단어로 변환시킨다.

소프트맥스함수를 거친 이후에 label smoothing 기법이 사용되는데, 예를들어 thank you 라는 시퀀스가 한국어로 ‘고마워’ 와 ‘감사합니다’ 라는 라벨로 학습되어야 할 때, 고마워와 감사합니다는 전혀 상이한 벡터이기 때문에 학습에 지장이 생길 수 있음. 그러나 원핫벡터가 아닌 레이블 스무딩을 이용하게 되면 정답에 가까운 벡터값은 1에 가까운 실수로, 정답에 먼 벡터값은 0에 가까운 실수로 표현되기 때문에 어느정도 보완이 될 수 있음.

자세히 보기

Your True Review - 감정분석기반 영화 리뷰 평점 예측 서비스

안녕하세요. ‘2020 국어 정보 처리 시스템 경진 대회’에 참가하게 된 42Seoul의 Team Gaepodong 입니다.

너무나 좋은 동료분들과 함께 프로젝트를 진행하였으나, 대회에는 아쉽게 탈락하게 되었습니다.😭

그럼에도 이렇게 대회 참여 후기를 작성할 수 있게 해주신 Polarbear님과,

이런 좋은 경험을 할 수 있게 해준 42Seoul에 다시금 감사함을 느끼면서

저희의 프로젝트를 공유해드리고자 합니다.

1. 대회 소개

문화체육관광부와 국립국어원이 주최하는 ‘2020 국어 정보 처리 시스템 경진 대회’는

국립국어원이 구축한 말뭉치 자원의 활용도를 높이고 국어 정보를 처리하는 시스템의 개발 및 수준을 높이기 위한 대회로,

자세히 보기