Kernel360 파이널프로젝트 회고
진심을 다한 서비스 프로젝트 회고 그리고 이후
파이널 프로젝트는 약 4개월간 서비스를 기획하고 개발, 운영까지 다루어보는 과정이다. 그 과정에서 배운 것을 몇가지 써보려고 한다. 진심을 다했다고 그렇게 썼는데, 실제로 그랬다. 이 글은 파이널 프로젝트 최종 발표가 끝난 며칠 뒤에 작성되는 글로 내가 쓸 수 있는 가장 생생한 후기를 쓰는 셈이 된다.
뭘 배웠는가? : 협업
Kernel360은 부트캠프의 이름에 걸맞게 항상 핵심을 얘기하고 나는 그 핵심 중에 가장 중요한 것이 협업이라고 생각한다. 그것의 의미를 곱씹어 보지만 아직은 확실하게 알고있다고 자부할 수 없다. 나는 Kernel360 서류전형에서 협업을 “전문성을 토대로 각자의 일을 모두가 알고 공동의 목적을 향해 조직을 이루는 것”이라고 호기롭게 얘기했다. 사람의 두뇌는 컴퓨터가 아니기 때문에 동일한 코드를 리뷰한다고해서 Ctrl C + Ctrl V가 되지 않는다. 그래서 다른 사람이 작업한 내용을 완벽하게 알고 있는 것은 사실상 불가능하다고 생각한다. 하지만, 개발자를 처음 준비하면서 내가 스스로 쌓아왔던 것들이 조금씩 허물어지는 것을 느꼈다.
협업을 할 때 더 많이 개발하고 더 많이 배운다.
- 혼자서 코딩하는 시간은 충분히 가졌다고 생각했다. (사실 이마저도 그렇게 충분하지는 않은 것 같다.) 하지만 그렇다보니 코드나 기술보다는 기능에 몰두하는 경향이 더 커지게된다. 즉, 개발자로서 자기객관화나 다른사람이 읽기 쉬운 코드를 짠다는게 어려워진다. Kernel360에 왜 왔을까를 다시 생각해보면 나에게 이런 부족함을 절실하게 느꼈기 때문이라고 생각한다.
- 다른 사람들과 수많은 회의, 코드리뷰, 회고를 거치다보니 사람들 각자마다 배울점이 꼭 하나씩은 있었다.

하지만 협업은 어렵다.
- 개발자로서 협업을 한다는 것은 쉽지 않았다. 그리고 우리팀이 만든 프로그램에 다른 사람들로부터 피드백이 오고 그것을 반영하는 것은 더더욱 어려웠다.
- 다른사람들이 읽기 쉬운 코드를 짠다는 것은 결국에 그 사람들의 코딩 스타일과 닮아가야한다는 것을 의미한다. 여기서 아집을 갖거나 코드를 자신과 동일시한다면 상당히 힘들어질 수 있다.
협업은 도착지가 아니라 끝없는 여정
-
다음 기업에 지원할 때 만약 협업에 대한 질문을 받는다면 할 수 있는 말은 더 많아졌겠지만 협업을 잘 할 수 있다고 말할 자신감은 떨어져 있는 상태이다. 어쩌면 Dunning-Kruger Curve의 골짜기 어느 지점에 있는 것 같다. 더군다나 그 골짜기 어디인지 확실하지는 않아서 그나마 변곡점은 지났길 바란다. 과거의 내가 협업 능력이 부족하다는 것을 알고 있었다는 것은 다행이었다고 생각한다. 그래서 Kernel360에 들어올 수 있었다.
-
협업은 막연하게 개발자들 간에 사이좋게 지내는거나 같이 일한다고 이루어지는게 아니다. 지금 생각해보니 협업을 잘하기 위해 두가지 요소가 있으면 좋을 것 같다.
-
실력: 어쩌면 협업이 일어나기 위한 필요조건이 아닐까 한다. 나는 협업을 “집단적 몰입”으로 정의하고 싶다. 몰입은 실력이 과제 수준보다 너무 낮거나 높아도 일어나지 않는다. 거기다 다른사람들과 함께하는데 그 사람들 마저도 유사한 수준을 갖춘다는건 어쩌면 운도 따라야하는 일이다. 한가지 다행인점은 좋은 실력을 갖춘 개발자가 소통 능력이 있다면 팀 내부적으로 중추적인 역할을 할 수 있다는 것을 여러번 볼 수 있었다. 나는 Kernel360에 들어와서 진정한 협업을 하기위해 실력을 최대한 갈고 닦아야한다는 것을 여러번 느끼게 되었고 그에 대한 확고한 동기를 얻을 수 있었다.
-
자아성찰: 자기자신을 객관적으로 볼 수 있는 능력은 협업에서 2차로 필요한 것이라고 생각한다. 나는 이것을 팀장을 맡으면서 알게되었다. 자아성찰은 협업에서 2가지 역할을 한다. 첫쨰는 성장에 대한 동기 부여, 둘째는 갈등상황 정리이다. 첫번째 역할은 위에서 충분히 말을 한것 같다. 자아성찰이 빛을 발할때는 팀 내부적으로 긴장상황에 있을 때다. 파이널 프로젝트는 4개월간 피로감이 누적되는 경험이었다. 평일은 매일같이 야근에 중간에 주어지는 방학이나 주말에도 출근하는 일이 잦았다. 그리고 파이널 프로젝트도 기능 개발에 있어 한 사이클을 전부 돌아보는 것이 모토였기 때문에 기획과 배포, 프론트엔드 개발자들과의 소통 등 개발 외적으로도 신경써야할 것이 많았다. 팀을 이끈다는 것은 팀원들을 설득시키고 방향성을 지속적으로 리마인드 시키는 지난한 과정이었다. 그럴때마다 간간히 나를 객관적으로 바라보고 나의 역할을 상기하며 필요한 일을 하는 것이 도움이 되었다.
-
서비스에 대한 이야기
- 커널스퀘어의 모토는 “지속가능한 성장을 위한 개발자 커뮤니티”이다. 처음에는 Stack Overflow처럼 간단한 Q&A 서비스를 제공하고 이런 서비스를 기반으로 개발자 자신을 드러낼 수 있는(뽐낼 수 있는) 서비스를 기획했다. 일종의 게미피케이션(Gamification)이 가미된 개발자 커뮤니티였다. 하지만 Q&A와 더불어 커피챗 기능, 모각코 기능이 추가되면서 게임적인 요소는 레벨업 하나로 축약되었다.
- 이러한 결정을 하게된 이유는 기획에 대한 소요를 줄이고 코딩에 집중할 시간을 많이 갖기위해서였다. 각각 요약하면 다음과 같은 기능을 제공한다.
- 개발자 QnA : 신입 개발자 또는 개발자 지망생들이 일정한 물음에 대하여 개발자 커뮤니티나 인공지능의 도움을 받을 수 있는 서비스
- 커피챗 : 일정한 비즈니스 로직에 따라 1:1 채팅을 예약하고 코드를 보낼 수 있는 채팅창에서 멘토링을 받는 서비스
- 모각코 : 동기부여가 필요한 개발자들이 일정한 장소에 모여 각자 코딩을 하고 필요한 경우 네트워킹을 할 수 있는 서비스
- 막상 프로젝트가 끝나니 더 욕심이 난다. 오늘 팀원들과 기술 회고를 하는 시간에 몇마디 나누었지만, 1:1 커피챗은 화상채팅으로 바꾸고, 모각코 기능에 단체 채팅기능을 추가하는게 어떨까 싶었다. 물론 그 말을 듣는 팀원들의 표정은 좋지 않았다.
- 커널스퀘어의 서버를 언제까지 유지할지는 모르겠지만, 당분간은 내가 사용자가 되어 갖가지 면접 질문을 올리고 그에 대한 답을 해볼까한다. 물론 코드 리팩터링도 같이 할것이다.
파이널 발표 후기
- 파이널 발표는 이전 오픈세미나를 진행했던 마루180에서 하였다. 나는 서비스 시연과 인프라, 배포, 부하테스트 부분을 맡아서 진행했다. 나머지 팀원들도 프로젝트가 바쁜시기에 (우리팀은 마지막까지 쉬지않고 일을 했다.) 발표자료를 준비하고 실제로 발표도 잘 해주었다.
- 끝이 났다. 1차 시연에서도 느꼈던 감정이지만, 팀원들에게 감사하다. 팀원들 아니었으면 여기까지 못왔을 것이다.

앞으로 무엇을 할까?
-
파이널 프로젝트 발표가 끝난 며칠뒤인 오늘(4월 4일), 디렉터님과 면담을 하고 앞으로 무엇을 하는것이 좋을지 방향성을 잡아봤다. 우선, 내가 완벽하게 준비된 상태는 허상이라고 생각해야할 것 같다. 취업 전선에 뛰어들기 전 약간의 재정비 기간이나 공부기간이 필요하다고 생각했는데, 이력서나 포트폴리오도 결국에 면접을 보기 위한 것, 코딩테스트도 배경지식 유무를 보는것, 취업은 줄세우기가 아닌 소개팅이라고 한다. 그리고 가장 중요한 것은 내가 만들고 싶은 제품을 만드는 것은 큰 의미가 없다는 것이다. 나도 개발자로서 성장하는 것은 시장의 요구에 빠르게 반응할 수 있는 기술자가 되는 것이라고 생각된다. 물론 취업시장이 요즘 좋지 않지만 찾아보니 결국 내가 가고싶은 회사는 어디엔가 있다. 그 회사(또는 유사한 곳)에 빠르게 지원을 해볼 생각이다. 그렇게 하기 위해 앞으로 내가 할 것을 아래에 적어본다.
-
프레임워크 코드를 읽고 어떤식으로 동작하는지 다시 리마인드한다.
-
이전 프로젝트의 소스코드를 리팩터링한다.
-
뽑고 싶은 개발자 포트폴리오를 만들고 구직활동을 열심히 한다.
-
그래도 평소에 하고싶었던거를 조금은 해봐야겠다.
-
(가장 중요) 그리고 위 내용에 대한 기술 블로그를 이 홈페이지에 작성을 시작한다. 어쩌면 이 파이널 프로젝트 회고의 2차 회고 성격이다. 그떄는 기술적인 내용이 주가 될 것이다.
-
마지막으로 …
This is not the end, this is not the beginning, Just a voice like a riot rocking every revision
이건 끝도 시작도 아니야, 모든 변화를 흔드는 폭동과 같은 목소리지
But you listen to the tone and the violent rhythm And though the words sound steady, something’s empty within ‘em
하지만 그 톤과 난폭한 리듬에 귀를 기울인다면 공허한 무언가를 지닌 지속적인 말이 들릴거야
We say, yeah, with fists flying up in the air.
우리는 “예”라고 외치며 주먹을 높이 올리지
Like we’re holding onto something that’s invisible there
마치 보이지 않는 그곳에 있는 뭔가를 잡고 있는 것처럼
Cause we’re living at the mercy of the pain and fear Until we dead it, forget it, let it all disappear
우리는 고통과 두려움의 자비속에 살아가고 있으니, 그걸 소멸하거나 잊거나 사라질 때까지 계속할거야.
Waiting for the End - Linkin Park