🧿

첫번째 이야기 - 김지형

생성일
2021/10/06 11:07
태그
Work
1 more property

지원 및 입사

학기가 끝난 5월말부터 프로그래머로서 실무적인 경험을 쌓고 싶다는 생각에 여러 구인공고를 둘러보았다. 수백개의 인턴 구인공고는 대부분 단조로운 양식을 가지고 있었는데, 담당업무와 자격요건만 명시된 채, 회사가 어떤 비전과 가치관을 함유하고 있는지에 대한 설명이 결여되어 있었다.
며칠 째 마음에 드는 인턴쉽 프로그램을 물색하던 도중, 지극히 한국스러운 이름과 함께 스터디그룹형 인턴쉽이라는 신선한 프로그램을 내세운 흥미로운 채용공고에 눈길이 갔다. 단순히 업무를 나열한 공고들과는 달리, 성장이라는 키워드에 중점을 둔 공고가 아래와 같은 이유로 제법 마음에 들었다.
1.
이제 막 개발자로서 걸음마를 뗀 인턴의 부족함을 질책하는 대신 포용하는 분위기
2.
마찬가지로 일어서기를 준비하는 스타트업과 함께 성장할 수 있다는 성취감
재빨리 입사지원서를 제출한 뒤, 코딩테스트 그리고 인터뷰를 통해 운이 좋게도 제2의봄의 일원이 될 수 있었다.

입사 후 적응

1주차

입사 첫 날 받은 과제는 자신이 좋아하는 영화에 대해서 소개하는 PPT를 만들어 오는 것이었다. 처음 과제를 이메일로 확인했을 때, 당황스러워했던 기억이 난다. 여자친구와 식사를 하던 중으로 기억을 하는데, 여자친구가 이메일을 같이 읽어보고 나서, 해줬던 말이 아직도 기억에 남는 것 같다.
"대표님이 회사 분위기나 소통에 신경을 쓰시는 분 이는가 보네. 잘해봐."
그 말과 같이 첫 주는 소통에 주안점을 둔 오리엔테이션이었다. 준비해온 PPT를 발표하고, 의견을 나누며 서로에 대해 알아갔던 것이 나중에 같이 협업을 하는데 있어서 큰 도움이 되었다. 또한, 메타버스와 그 저변 산업에 대한 자세한 설명을 들었던 것이 나머지 7주간 업무를 하는데 있어서 뚜렷한 목표의식을 세워주었던 것 같다.

2주차

제2의봄에서 프로그램을 개발하는데 있어서 가장 핵심적인 언어가 될 Three.js를 Udemy로 수강하고 배운 것을 활용한 간단한 토이프로젝트가 업무로 주어졌다. 복기해보자면, 2주차때까지만 하더라도 업무에 대한 확신이 없었던 것 같다. 물론 어느정도의 Three.js를 다루어야하는 것은 알고 있었지만, 프론트엔드 전반을 다루는 스택에 더 큰 주안점을 두고 있던터라 초기에는 고백하건대 큰 흥미를 느끼지 못했다.
하지만, 시간이 지남에 따라 2주차의 업무가 미래의 업무를 수행하는데 있어서 얼마나 많은 비중을 차지하는지 알게됐다. 나중에 설명할 메타데이터, 플레이어, 혹은 썸네일 모듈은 전부 탄탄한 Three.js 지식을 필요로 했으며 Three.js와 친해져야 한다는 것을 알게 되었다.
운이 좋게도, @최준혁 님 덕분에 Three.js와 관련한 많은 도움을 받았고 지금도 매우 감사하다. 혹여 나중에 다른 개발자가 입사를 하게 된다면, Three.js의 필요성을 인지시켜주는 것이 가파른 성장 속도를 위해 중요하지 않을까하는 생각을 한다.

인턴쉽을 통해 배운 점

대표님의 이해와 배려덕분에, 시간이 지나며 점차 알맞은 업무가 주어졌던 것 같다. Three.js에 대해 어느정도 익숙해졌을 때쯤, 본격적으로 이를 활용한 프로그램을 개발하고 수정해나가는 일은 매우 보람찼다.

Three.js

Three.js는 매우 특별한 라이브러리이며, 앞으로도 그럴 것이다. 여기서 "특별"하다는 것은, Three.js가 유별나다는 것이 아닌, 해당 라이브러리로 작업을 하고 깊은 이해를 가진 개발자가 흔히 존재하지 않다는 것이다. 흔히 존재하지 않는다는 것은, 다시 말해 Three.js를 사용할 수 있는 개발자는 그 희소가치를 인정받을 수 있다는 것이 된다.
더불어, 브라우저 상에서 보여지는 수 많은 3D 오브젝트들의 생성 원리와 작동 매커니즘을 이해하고, 이를 활용해 무언가를 만들었던 경험을 통해 프론트엔드 개발자로서 역량을 한 단계 성장시킨 것 같다.

협업

제2의봄에서 인턴쉽을 시작하기 전에는, 주로 혼자 개발을 했었다. 소통은 우선순위에 없었으며, 그저 내가 이해할 수 있는 코드를 빠른 시간안에 짜고 구현하는 것이 가장 큰 목표였다. 하지만 위와같은 개발 방식은 실무에서는 적용될 수 없는 방식이며, 결국 대규모 프로그램을 개발하는데 있어서 여러 개발자들과 소통과 협업은 필수사항이다.
지난 8주간, 내가 짠 코드를 남과 공유하고 이에 대한 피드백을 주고 받았다. 문제에 대해서 고민하고 다방면의 접근 방식에 대해서 의견을 개진하며, 공통의 문제를 해결하려는 개발 방식은 본 스터디그룹형 인턴쉽이 제공한 가장 귀중한 경험이었다.

코드 분석과 가독성

4DView의 라이브러리를 받아 이를 토대로 개발하기 위해서는 4DView의 코드를 상세히 분석해야 했다. 얼굴도 목소리도 모르는 사람이 작성한 코드를 받아, 한 줄씩 읽어보며 활용 방법에 대해 모색하는 것은 단 한번도 해본 적이 없는 경험이었다. 수백줄이 되는 코드를 읽어가며 이해하기 위해 애를 쓸때쯤, Three.js에 대한 깊은 숙련도가 필요하다는 것을 다시한번 느끼게 됐다. Three.js 공식문서로 돌아가 복습을 하고, @최준혁 님께 질문도 하고, 파라미터값을 변경해가며 흔히 말하는 "learn as you go"를 적용했던 것 같다.
코드 분석을 완료하고 나서, 이를 토대로 제2의봄의 자체 프로그램 (metadata, thumbnail) 을 개발하며 나뿐 아니라 @최준혁 님, 그리고 나아가 외주 개발 인력까지 이해할 수 있는 가독성 있는 코드를 짜기 위해, 최대한 간결하고 단순명료한 코드 구조를 고안해내려 애를 쓰며 성장했던 것 같다.

마치며

인턴으로 일하며, 매 순간이 즐거웠다고 하면 거짓말이다. 나 자신에 대한 의구심이 생길 때도 있었으며, 때로는 기대를 충족하지 못한 성과물에 실망스러울 때도 있었다. 하지만 주위의 대표님과 @최준혁 님이 잘 끌어주고 이끌어준 덕분에 해결할 수 없었을 것 같았던 문제의 해답을 찾고, 한 걸음 한 걸음 나아갈 수 있었던 것 같다. 회사와 직원이 같이 성장하는 가치를 중점으로, 나를 성장시켜준 경험과 사람들께 감사드리고 싶다.