3 minute read

봄학기 종강을 하자마자 카이스트에서 여름학기로 열리는 몰입캠프에 참여했기 때문에 한동안 바빴습니다. 어제 몰입캠프 종강을 한 지금, 이 캠프에 참여하면서 얻은 것들을 정리해보고자 합니다. 이 후기를 쓰고 있는 저는 카이스트 전산학부지만, 타대생과 타전공을 하고 있는 수강생도 많이 만날 수 있었습니다.

개요

실라버스를 보면 알 수 있듯, 완전히 개발 프로젝트 중심의 세미나가 진행됩니다. 4주동안 각 주마다 프로젝트 하나를 2~3인 팀을 구성하여 수행합니다. 매 주 프로젝트 발표를 마친 후 투표를 하여 금주의 픽으로 선택되면 전체 수강생들 앞에서 한 번 더 발표를 하게 되는 영광을 누리기도 합니다. 금주의 픽 발표가 끝나면 스타트업 관계자가 들려주는 생생한 창업 스토리나 프로젝트에 사용될만한 기술, 개발 방법론 등을 들을 수 있습니다.

프로젝트

프로젝트를 위해 약 20명으로 구성된 각 반마다 실습실 하나를 사용합니다. 인당 모니터 두 대와 쓸만한 성능의 컴퓨터가 제공됩니다.

저는 이 수업을 듣기 전 개발 중에 사용한 대부분의 프로그래밍 언어(Java, Javascript 등)나 프레임워크(React Native 등)로 개발한 경험은 없지만, CTF 문제를 풀어보면서 기본적인 서버와 데이터베이스 개념과 몇 가지 문법을 써본적이 있어서 기술에 대한 적응은 빠른 편이었던 것 같습니다. 이런 공부와 응용들을 혼자서는 한 주 만에 절대 하지 못했을 것 같지만 주변에 물어볼 사람도 많고, 다 같이 몰입하며 열심히 하는 분위기가 형성되기 때문에 놀랄 정도로 많은 기술들을 배워볼 수 있습니다. 이 프로그램 이름이 몰입캠프이기도 하고, OT때 장병규 멘토(?)님이(현재 크래프톤 의장이신 그분 맞습니다) 몰입의 중요성을 강조하시는데, 그만큼 혼자서는 쉽지 않은 몰입의 기회를 프로젝트를 통해 얻어 진정한 몰입을 맛볼 수 있었습니다.

사실 각 프로젝트의 세부적인 내용은 중요하진 않지만, 그래도 한 번 정리해보았습니다. 모두 일주일만에 급하게 완성한거라 안정성은 아마 거의 없을 겁니다. 몰입캠프는 개발의 내용적인 부분보다는 마음만 먹으면 몰입을 통해 내가 구상한 서비스를 만들 수 있고, 창업까지도 할 수 있다는 철학(?)을 가르쳐준다는 데에 의미가 있습니다.

1주차

안드로이드 앱 개발을 합니다. 탭1에는 사용자의 연락처 목록을 받아와 연락처 화면을 구성하고, 탭2에는 사진을 받아와서 갤러리 화면을 구성합니다. 마지막 탭3은 자유 주제로, 저는 날씨 API에서 현재 위치하고 있는 지역의 날씨 정보를 받아와 일기예보를 보여주는 화면을 만들었습니다. 사용하는 언어나 프레임워크는 자유이고, 저를 포함한 대부분의 팀은 대부분 Android Studio로 Java 프로그래밍을 하였습니다. 몇몇 팀은 Kotlin을 사용하기도 했습니다.

2주차

안드로이드 앱 개발은 그대로이지만, 서버와 데이트베이스 기술을 적용해야 합니다. 탭1과 탭2의 형식은 연락처와 갤러리로 동일하나 서버와 상호작용하는 부분을 추가해야 합니다. 저는 1주차 때 했던 탭1 탭2 구성을 똑같이 하고 싶지 않아서 간단한 SNS 서비스를 만들어 탭1을 친구 목록, 탭2를 피드로 대체하였고, 새로운 개발 프레임워크를 경험하고 싶어서 React Native를 이용해보았습니다. 덕분에 공부할게 한두개가 아니어서 UI는 엉망진창이지만(ㅎㅎ..) 그래도 밤새워서 완성했습니다. 백엔드 서버는 NodeJS로 express 엔진을 돌렸고, MySQL DBMS를 이용했습니다.

3주차

Figure 1. 위키피디아 COVID-19 문서에 적용한 모습

자유 주제. 웹 페이지에 표시되는 모든 텍스트를 ‘냥’과 ‘meow’로 바꾸고, 모든 사진에서 얼굴을 인식하면 고양이 얼굴로 바꾸는 크롬 익스텐션을 만드는 프로젝트를 진행하였습니다. 다같이 야식으로 찜닭 먹다가 말끝마다 냥을 붙이는 게임을 했는데, 이런 걸 자동으로 변환해주는 서비스를 만들면 재밌겠다 해서 진짜로 만들어버렸습니다. 개발할 때 테스트를 해보면서 어찌나 웃었던지 ㅋㅋㅋㅋㅋㅋ…

  • 프런트엔드(크롬 익스텐션): HTML/CSS with Javascript
  • 백엔드: Python with Flask, OpenCV, konlpy, nltk, Kakao Vision API

4주차

자유 주제. Unreal Engine을 이용해 3차원 잠입 액션 게임을 만들었습니다. 언리얼 엔진은 애니메이션 하나만 추가해도 150MB만큼의 용량을 요구하기 때문에(…) Github를 통해 관리하다가 포기해습니다.

Figure 2. Phantom Sight - 3차원 잠입 액션 게임

언리얼 엔진은 제가 생각했던 형태의 개발이 아니어서 적응하는 데에 많이 힘들었고, 갈아엎을 생각도 많이 했었는데 그래도 어떻게 만족스러운 결과물이 나와서 다행입니다. 제가 3D멀미가 심해서 만드는 과정을 즐기기 힘들었던 게 컸습니다. 팀원에게 마음고생을 시켰을 것 같아 아직까지도 미안한 마음이 있습니다.

마치며

한 달 동안 같은 실습실에서 밤을 새면서 개발을 했기 두루 친해질 수 있었습니다. 개발 외적으로도 틈만 나면 모임을 꾸려 식사나 술자리를 가져서 놀 기회가 많았습니다. 정말 착하고 좋은 다양한 사람들을 만나서 4주 내내 행복했습니다. 신청을 할 때를 돌이켜 생각해보면 여러가지 동기가 복합적으로 작용했는데, 대충 추려보면 다음과 같습니다:

  • 여러 명이 참여하는 개발 프로젝트를 경험하고, 개발 역량을 키우기 위해서
  • 방학을 의미있게 보내고 싶어서
  • 개발에 관심이 있는 새로운 사람을 만나고 싶어서
  • 스타트업 생태계와 창업의 경험에 대한 생생한 정보를 듣고 싶어서

결과적으로 기대했던 것들을 다 얻을 수 있었고, 잊지 못할 방학이 될 것 같습니다. COVID-19로 어려움이 있음에도 불구하고 이런 프로그램을 준비한 류석영 교수님과 장병규 멘토님, 찾아와 좋은 경험을 공유해주신 강연자분들과 같은 공간에서 같이 밤을 새며 울고 웃은 분반 동료들에게 감사하다는 말을 전하고 싶습니다. 이 글을 찾아와주신 분들 모두 감사하고 혹시 궁금증이 있으면 댓글을 달아주시면 제가 답변해드리겠습니다.

2021.06.10 - 거의 1년이 지난 지금 글을 보았는데 너무 못 쓴것 같아 다시 한 번 고쳐보았습니다.

Leave a comment