안녕하세요. 김수보 멘토입니다. 
이 글은 2020.01월 피씬을 시작했던 1기 친구들의 "42공통써클 탈출기"입니다. 
글쓴이 eunhkim 님의 허락을 얻어 게재합니다.
"트랜샌더스"란 공통커리큘럼의 끝판왕 과제로, 복잡한 난이도의 웹게임입니다.
당시에는 백엔드로 Ruby on Rails 를 요구해서,지금과는 요구기술이 상이합니다.
다만, 난이도와 풀어가는 과정은 동일한데,이 팀은 좀 너어무 잘한 느낌이라...
암튼 도움이 되면 좋겠습니다.
1. 어쩌다 트랜센던스까지 #1(시작~개발환경)
2. 어쩌다 트랜센던스까지 #2(협업환경)
3. 어쩌다 트랜센던스까지 #3(구현,테스트,프랙티스)
4. 어쩌다 트랜센던스까지 #4(팀원들 회고)

01. iwoo

Q1. 개발을 시작하기 전에 어떤 사람이었는지?

경영학과 출신의, 개발보단 재무와 전략에 관심이 많던 사람이었어요.

살아오면서 생존에 대한 불안이 늘 있었는데, 내가 몸담고 있는 조직이 사라지거나 갑자기 나를 자르더라도 잘 살아남을 수 있는, 자립적인 역량을 지닌 사람이 되고 싶다고 생각해왔어요.

그래서 전문적인 자격증을 따기 위해 회계사를 도전해보기도 했고, ‘안 되던 것들을 되게 만드는’ 창업적 역량을 배워보려고 빠르게 성장하는 스타트업에서 일해보기도 했어요.

영어 회화를 가르쳐주는 사람, 배우려는 사람을 매칭하고 장소를 제공하는 플랫폼이었는데요. 스터디 장소를 관리하는 일을 주로 했어요. 장소 제공 업체와의 비용 협상, 예약 관리와 정산, 그리고 비용을 줄이기 위한 기획 등이 주요 업무였죠.

스타트업이다보니 CS 업무도 같이 해야 할 때가 많았고, 고객이나 파트너들과 커뮤니케이션하는 일이 많은데 그게 에너지가 들었어요. 목표로 했던 ‘스스로 살아남을 수 있는 역량’을 잘 달성해가고 있느냐라는 질문에 대해서도 흡족하지는 않았고요.

일을 하면서 스스로를 관찰했을 때 사람들과 협상하는 일보다는 비용을 줄이거나 수식을 다루는 일이 더 맞았어요. 그러다 보니 자립적 역량이 큰 직업이라고 생각해온 개발자로의 커리어 전환을 고려하게 되었어요. 학생 때부터 개발이 나랑 맞을 것 같다는 생각도 머리 한쪽에 있기도했고요.

창업에 필요한 인재들을 보통 3H라고 하는데, 막상 스타트업에 들어가 보니 허슬러는 나랑 안 맞고, 힙스터는 더더욱 아닌데, 해커는 맞지 않을까 싶기도 했어요(웃음).

결혼했고, 가정이 있기 때문에 아내와 대화가 필요했어요.

다행히 몽골에 여행을 갔을 때 프루공이라는 자동차 안에서 창밖을 안 보고 5시간 동안 스도쿠만 풀고 있었는데, 그런 걸 보면서 아내가 ‘이 남자는 개발을 해야 했는데’라고 생각했었다고 하더라고요(웃음).

평소에 보여준 이런 면들 때문에 설득하기가 어렵지 않았어요.

노마드 코더라는 서비스를 통해 클론 코딩을 해보면서 내가 재미있고, 잘할 수 있는지 스스로 검증했을 때에도 성공적이었고요. 재미있고, 결과물이 빠르게 나오고, 성향도 INTP여서 여러모로 내가 개발자랑 잘 맞겠다는 판단이 들었어요. 그래서 퇴사 후 개발자를 준비하게 되었죠.

Q2. 퇴사하고 바로 42로?

퇴사하고 바로 온 건 아니고요.
42를 알고 퇴사를 한 게 아니었기 때문에 42 공고를 보기 전까지 2개월 정도의 텀이 있었어요.

개발을 어떻게 시작해야 할까 고민했고, 국비학원이나 부트캠프를 알아봤죠.
돈을 많이 들이더라도 좋은 개발자가 될 수 있다면 괜찮다고 생각해서 부트캠프 쪽으로 더 알아봤었어요. 아는 형도 부트캠프를 추천하면서 돈을 빌려줄 수 있다고 했고(웃음).

그러다가 지인을 통해 42서울을 알게 되었죠.

내가 운 좋게 아웃스탠딩한 사람이라고 치더라도 3~4개월 공부하는 것만으로는 롱런할 수 있는 깊이를 다지기 힘들 거라 생각하던 차에, 42서울은 매력적인 교육방식과 지원금 혜택이 있으니 오랫동안 나의 기초를 근본있게 제대로 다질 수 있겠다는 기대가 생겼어요.

그래서 42서울에 도전하게 되었죠.

Q3. 지난 1년은 어떠셨나요?

의식적으로 42에 집중했어요.

클러스터가 열려있는 동안에는 거의 매일 클러스터를 갔어요. 일주일이 있다면 내가 하고 싶은 공부를 하는 하루, 아내와 시간을 보내는 하루를 제외한 시간을 거의 42에 썼어요.

‘개발’ 안에서도 분야가 다양하게 나뉘는데, 내가 어떤 분야를 선택해서 더 깊게 팔지 답을 찾아가는 1년이었어요. 42에선 실습과 경험 중심의 학습이 가능하니 다양한 경험을 통해 해당 분야와 나의 fit을 검증해볼 수 있길 바랐죠.

실제로 cub3D를 하면서 나는 그래픽은 아니구나, 게임은 만드는 것보다는 즐기는 쪽이구나 하고 생각하게 됐고요(웃음).

쿠버네티스를 할 때는 한창 클라우드에 관심이 많아서 IBM 클라우더스에도 가입했었는데, 인프라가 생각보다 어렵고 코드 치는 게 당장의 나에게는 더 재밌다고 느꼈어요.

또 자연어처리 관련 공모전을 통해 머신러닝이 정말 매력적이지만 목표한 기간에 취업이 가능할 만큼 역량 쌓기는 힘들겠다고 스스로 판단할 수 있었어요.

해커톤에서는 라즈베리 파이로 회로를 조립하는 프로젝트를 했는데, 임베디드나 iOS가 나에게 맞는지 고민해 볼 수 있는 시간이었죠.

결국 마지막 서브젝트인 트렌센던스를 통해 웹 프론트엔드와 백엔드를 경험하면서 백엔드 개발자로 방향을 잡게 되었네요.

다만 세상을 바꾸고 있는 힙한 기술들이 많은데, 내가 너무 기초만 파고 있는 게 아니냐라는 걱정이 있었어요. 매일 눈을 뜬 이후부터 잠들 때까지 개발 역량을 쌓으려고 노력했는데, 그런데도 당장 만들 수 있는 게 없어서 불안하더라고요.

한국에서 취업에 중요하게 여겨지는 기술이랑 42의 기술 스택도 많이 다르잖아요.

내가 열심히 노력한 시간이 인정받지 못 할까 봐 스트레스를 받았어요. 처음 선택하려고 했던 부트캠프와 계속 비교하게 되고, 현업으로 바로 가서 배우는 게 낫지 않느냐는 고민도 하게 되고요. 이 길이 정말 나에게 맞는 건지 의심도 들었죠.

그런데도 개발의 근본을 다지는 42의 가치, 이 길이 맞는 길인지가 중요한 게 아니라 맞는 길이 되도록 하겠다는 다짐을 되새기면서 멘탈 관리를 해왔던 것 같아요.

총평하자면, 행복했어요. 오설록 녹차, 쿠키, lo-fi 음악과 함께 코딩하면 행복한 감정을 느꼈어요.

지금도 42를 진행하는 동안 느꼈던 불안감이 사라지지는 않았지만, 기초가 기초인 이유는 그것이 중요하고 어떤 개발을 하든 필요한 기반 지식이기 때문이라고 생각해요.

면접 질문을 보다 보면 결국 기초를 물어보기 때문에 제대로 된 기초를 다지는 이 시간은 헛되지 않고, 그저 제가 너무 조급했던 게 아닌가 싶어요.

사실 2년을 생각했었던 게 저의 초심이고, 공통 과정이 끝났으니 부족했던 기술과 지식은 남은 1년 동안 채우면 되는 거니까요.

Q4. 42에서 무엇이 가장 좋았나요?

솔직히 말하면 지원금(웃음).

음, 좋은 동료들을 알게 된 게 좋았어요.

자극을 많이 받았어요. 저만 열심히 사는 게 아니라 다들 열심히 살잖아요. 이런저런 것을 만들어서 슬랙에 공유하면, 거기에서 자극을 받을 수 있는 게 좋았어요. 덕분에 의욕을 잃지 않고 잘 갈 수 있었던 것 같아요.

지원금과 동료 이외에 좋았던 것은 과제를 어느 정도 수준까지 구현할지 스스로 결정할 수 있다는 거였어요. 보너스 같은 경우 필수가 아니니까 관심에 따라 구현 범위를 조절할 수 있고, 또 깊게 학습을 해서 통과를 하고 싶다면 시간을 들여서 그렇게 해도 되는 게 좋았어요.

예를 들자면 philosopher인데, 3일이라고 권장 시간이 되어있지만 2주 정도 시간을 썼거든요.

서브젝트에 언급되어 있지 않더라도 더 꼼꼼하게 좋은 품질의 코드를 만들고 싶었어요. 학습에 자율성이 있는 건 42의 큰 장점이라고 생각해요.

Q5. 42에서 아쉬웠던 부분은?

코로나로 인해서 원격 동료평가를 해야 하는데, 정성적으로 오프라인으로 동료평가를 할 때보다 경험의 질이 떨어지는 부분이 있어서 아쉬웠어요.

물론 의욕 있는 분을 만나면 15 분할 평가도 1시간을 진행하지만, 전체적으로 이 시국과 42의 포맷이 안 맞는 것 같은 느낌이 있었어요. 사실 42라기보다 시국의 아쉬움이죠.

Q6. 트렌센던스는 어땠나?

어려웠던 건 액션 케이블이에요.

웹소켓으로 브로드캐스팅되는 메시지를 관리하는 것이 가볍지 않았어요. 기술이 어렵다기보다 발생하는 예외가 어려웠어요.

실제 운영이랑 배포를 경험하지 못한 것, 실제 유저의 이용으로부터 만들어지는 트래픽을 감당해보는 경험을 하지 못한 것이 아쉬웠고요.

저희 케이스에 상속이 따로 필요 없어서 쓰지 않기는 했지만, 객체 지향을 공부하면서 상속을 잘 써보고 싶었는데 쓸 기회가 없었던 점도 아쉬웠어요.

Gemfile.lock 과 관련한 환경 이슈가 계속 있었는데, 결국 해결하긴 했지만, 확실히 알고 해결한 느낌이 들지 않아서 그것도 아쉽습니다.

좋았던 점은 성장하는 데 도움이 되었다는 거겠죠.

그 이유는 좋은 팀이랑 협업할 수 있었기 때문인 것 같아요. 의욕이 넘치고, 학습에 대한 욕심이 있어서 아무도 무임승차하지 않았어요.

더 좋은 방식으로 코딩하기 위해서 팀원들이 노력을 아끼지 않았다고 생각해요. 팀원들의 코드를 볼 때 더 좋은 코드를 만들기 위한 노력이 늘 숨어있었고, 그런 걸 발견하면서 배우는 즐거움이 컸어요.

PR 단위도 크게 느껴지니까 적정 PR 단위를 고민해서 브랜칭이나 PR 전략을 변경하던 순간도 인상 깊어요.

또 이전에 프론트에 대한 개념을 많이 찾아봐서 알고는 있었지만, 몸으로 느끼지는 못했었어요.

우리가 역할을 fix하지 않고 학습을 위해 모든 역할을 경험하면서, 프론트와 백이 나뉘는 이유가 무엇이고 그 이점이 무엇인지를 몸으로 느낄 수 있어서 좋았어요.

특히 프론트와 백을 다 직접 해보면서 오랜 고민이었던 진로를 백엔드로 정할 수 있었고요.
Rspec으로 스펙을 설계하고 test를 하나씩 통과할 때마다 게임을 하는 것 같은 쾌감이 있더라고요.

Q7. 5명이 비대면으로 협업을 하는 과정이 힘들지는 않았나?

불편함을 크게 못 느꼈어요. 자연스러웠어요.

의식적으로 처음에 개발환경을 세팅하는 데 많은 시간을 쓴 데다가, 디스코드와 라이브쉐어를 잘 활용해서 정말 불편함 없이 협업했던 것 같아요.

비대면이 가지는 불편함이라고 하면 즉각적인 커뮤니케이션, 피드백이 어렵다는 점일 텐데 모두가 풀 커밋하고 있어서 그런 이슈도 없었고요.

이런 점이 늘 연결되어 있다는 불편함을 낳을 수 있는데, 디스코드에 오아시스나 옥상 같은 채널을 만들어서 휴식도 할 수 있게 환경을 세팅함으로써 잘 넘어갈 수 있었죠.

종일, 밤늦게까지 대화를 해야 하다 보니 굳이 불편함을 얘기한다면 아내에게 미안한 마음?

Q8. 만약 트렌센던스를 처음부터 다시 한다면?

기본적으로 모든 시간이 다 필요했던 시간이었다고 생각하고, 도입을 못 하거나 늦어져서 아쉬웠던 점만 있어요.

포스트맨으로 요청하고 응답을 확인할 수 있어서 테스트케이스를 따로 만들지 않았는데, 코드를 변경하면 다시 확인해야 하는 비용이 있었죠.

RSpec을 늦게 도입한 게 아쉬워요. 특히 모델이나 잡에는 테스트가 쌓였지만, 브라우저까지 포괄하는 통합 테스트 도입에는 실패했는데 이 점도 아쉬워요.

구현적인 관점에서는 더 SPA스러운 코드를 만들려고 할 것 같아요.

처음에 백엔드에서 프론트에 데이터를 가능한 한 다 넘겨주고, 그다음부터는 프론트에서 대부분의 요청을 처리하는 방식으로 구현해보려고 하지 않을까.

또 게임 화면과 채팅 화면을 한 화면에 놓는 방식으로, 게임을 하면서 채팅도 자연스럽게 가능하도록 시도해 볼 것 같아요.

Q9. 어쩌다 트렌센던스까지 끝나게 되었는데?

트렌센던스를 시작할 때 백본, 루비, 레일즈 같은 기술 스택을 아무것도 몰랐지만 결국 해냈어요.

모르면 배워서 하면 된다는 걸 다시 한번 느꼈죠. 이름만 생각해보면 트렌센던스는 ‘초월’이라는 의미잖아요. 기초만 다지던 내가 상용 서비스를 만들기까지 깨야 할 벽 중 하나를 깨게 만든 서브젝트인 것 같아서 후련하고, 또 공통 서클을 빠르게 깬 축에 속하기 때문에 그것도 좋아요. 이제 벽 하나를 깬 거고, 깨야 할 벽은 더 많지만요.

팀원들한테 고마움이 많아요.

생각만 해도 한숨이 나온 에러들을 몇 시간씩 붙잡고 두려움 없이 부딪혔던, 커밋 메시지에도 신경을 써서 프라이드 있게 작업해줬던 동료들한테 고마움을 많이 느껴요.

집에서 아주 시끄러웠는데 배려해준 아내한테도 고맙고요.

Q10. 이후 계획은?

운영과 배포에 대한 경험을 42에서 많이 하지 못했고, 학습을 목적으로만 어플리케이션을 만들었기 때문에 실제 유저가 있는 서비스를 만들어서 운영과 배포를 해보고 싶어요. 그 과정에서 개인 브랜딩도 해보고 싶네요.

백엔드로 진로를 생각하게 된 만큼, 그쪽으로도 더 파볼 생각입니다.

백엔드 개발자에게 필요한 DB 튜닝, 인프라적 지식, 백엔드 프레임워크, 디자인 패턴 같은 것을 중점적으로 학습해보려고 하고 있어요. 42 아우터 서클 중에 흥미로워 보이는 것들이 있어서, 시간이 되면 해보고도 싶어요. 물론 가정의 생계를 위해 올해에는 취직해야 하겠지만요.

Q11. 이제 막 카뎃이 된 사람들에게 해주고 싶은 말이 있다면?

42의 컨셉은 3~6개월 만에 바로 현업에 투입 가능한 개발자를 만드는 게 아닌 것 같아요.

비전공인 사람도 와서 2년의 시간을 통해 컴퓨터 공학을 전공한 사람처럼 기초를 쌓고, 롱런할 수 있게 도와주는 곳이라 생각합니다. 그 외의 것은 스스로 쟁취해야 합니다.

42가 포커싱하지 않는 방향의 교육을 기대하고 오면 실망할 수 있어요.

42의 컨셉을 이해하고 받아들이면 편해지는 것 같아요. 42가 제공하는 것이 기대하는 것과 다르더라도 결국 다 필요한 지식이라고 생각해요. 혹시라도 제가 도울 수 있는 부분이 있다면 편하게 slack으로 DM 주세요. @iwoo.


02. sanam

Q1. 42 이전의 삶은 어땠나?

금융을 공부했어요. 열심히 했고, 잘했어요.

원래 계획은 대학원에 가는 거였죠. 실무에서 중요하다고 말하는 자격증도 200만 원 넘는 돈을 들여서 땄어요. 학생 신분에서 진짜 큰 돈이었는데(웃음).

그렇게 대학원을 준비하다 원하는 대학원의 교수님과 연락이 닿아서, 어떤 걸 준비하면 좋겠냐고 여쭤봤어요. 코딩을 얘기하셨어요. 금융도 손으로 계산을 하는 게 아니고, 프로그램을 쓰면 숫자를 다루기에 유리하다고요. 그런 이유로 4학년 때부터 컴퓨터공학 수업을 듣게 됐어요.

듣다 보니까 예전에 했던 금융 계열의 공부랑 너무 다르더라고요.

이전에는 책에 있던 내용만 공부해오고, ‘나중에 어떻게 써먹을 수 있을까?’라는 고민을 해왔어요. 사실 금융 만이 아니라 모든 공부에서 평생 그랬죠.

그런 와중에 C언어 수업을 듣다가 가위바위보 과제를 했는데 그게 너무 재밌더라고요. 너무 기초적인 거였지만, 그걸 만들자마자 컴퓨터 공학과로 진학한 고등학교 친구한테 바로 문자를 보냈어요.

이렇게 재밌는 걸 왜 혼자만했냐고.
공부가 재밌다고 느끼면서 4학년 동안 컴퓨터와 관련된 수업을 들었어요.

열심히 금융을 공부해왔지만, 미래가 잘 보이지 않고 회사의 부품이 되는 미래만 잘 그려졌어요.

어느 순간 회사에서 나가라고 하면 짐을 싸야 하고, 나가서 능동적으로 할 수 있는 게 없는 그런 미래가 그려졌어요.

그런 와중에 코딩이 재미있고, 이 계열도 전망이 유망하고, 컴퓨터 공학과 교수님도 절 아껴주시고, 성적도 잘 나와서 그렇게 마음을 바꾸게 됐어요. 이 길로 가야겠다.

그러다 어느 날 OKKY라는 사이트에 들어갔는데, 공부만 하면 100만 원을 준다는 광고가 보였어요.

바로 결심했죠. 나는 여기 가야겠구나. 2년간 제대로 공부도 할 수 있고, 돈도 주는구나. 그게 42였죠. 특별할 건 없었어요. 열심히 살아왔지만, 부품은 되기 싫었고 마침 기회가 온 거죠.

Q2. 고민은 안 했나?

금융 쪽이지만 대학원에 가려고 했었으니까, 대학을 졸업하고 2년은 더 쓰려고 했어서 시간이 부담스럽지는 않았어요.

OKKY라는 사이트를 자주 들어갔었기 때문에 국비지원과 싸피를 비교하는 글을 많이 봤었는데, 싸피는 시험을 봐야 해서 부담스러웠어요.

학교 수업에도 시간을 써야 했던 상황이었기 때문에.

Q3. 4학년 2학기가 끝나고 바로 왔나?

운이 좋게도, 코로나가 터져서 4학년 2학기와 42에서의 첫 3개월을 병행했어요.

마지막 학기라 수업도 적고 원격이라 시간에 여유가 있었거든요.

Q4. 카뎃으로 1년을 어떻게 보냈는지?

그렇게 성실하지만은 않았던 것 같아요. 원래 제가 성실의 아이콘이었는데(웃음).

코로나 때문에 대부분 집에서 했잖아요. 변명일지는 모르겠지만, 집에서 하게 된 것 때문에 게을러진 것 같아요. 공부 시간이 목표했던 것보다 엄청나게 많지 않았어요. 일요일 빼고는 10~12시간 정도씩 공부는 했는데, 집에서 하다 보니까 유혹도 많고 집중을 잘 못해서 공부의 질이 떨어졌어요.

누구도 지켜보지 않으니까 스스로 통제하기도 힘들었고요.

그래서 중간중간 클러스터가 열릴 때마다 가서 집중하려고 했는데, 그 외의 시간에는 자신의 노력에 대해 아쉬운 부분이 있어요. 42는 소통이 중요한데, 그런 부분도 아쉬웠어요.

Q5. 소통이 아쉬웠다고?

대학교에서 랩실에서 생활할 때는 오고 가는 사람들이랑 친하게 지냈었어요.

42 클러스터에서도 비슷한 생활을 기대했어요. 오가는 사람들이랑 많이 대화하고, 함께 코딩하면서 성장해가야겠다.

그런데 클러스터에 직접 가지 않고 원격으로만 하다 보니까, 사람들과 그런 커넥션이 만들어지지 않은 거죠.

커넥션이 일어날 수 있는 과정은 평가밖에 없는데, 제가 그런 부분에서 미숙해서였는지 평가를 통해서 사람들과 관계를 만들기가 생각보다 쉽지 않았어요.

Q6. 무엇이 가장 좋았나?

앞으로 어떤 걸 해야겠다는 생각하게 된 것, 그게 가장 좋았어요.

원래는 임베디드를 하고 싶었어요. 기계를 만져보고 싶었고, 멘토님과 상담을 할 때도 그랬어요. 웹서버까지만 해도 웹은 생각도 안 했어요.

그런데 트렌센던스를 하면서 앞으로 프론트를 해야겠다는 방향을 정하게 되었고, 그게 42를 돌아볼 때 가장 좋은 점이에요.

프론트에 페이지를 만들고, 백엔드와 연결시키는 실제적인 서비스를 만들어보면서 자연스럽게 결심이 됐어요.

프론트를 더 공부해야겠다. 개발을 시작하면서 계속 고민을 해왔던 주제였는데, 트렌센던스를 하기 전까지도 그 고민이 풀리지 않던 게 가장 큰 스트레스였거든요.

그런데 마지막 과제인 트렌센던스를 하면서 이것이 좋은 기술이고, 이걸 잘한다면 나도 성공할 수 있겠다는 자신이 서더라고요.

Q7. 왜 프론트였나?

기술이 이렇게 많은 시대에서 풀스택을 꿈꾸는 것은 어불성설이고, 하나를 집중적으로 해야 할 것 같은데 눈에 보이는 작업을 한다는 게 프론트의 큰 매력이더라고요.

처음에는 편견이 있었어요. 프론트 개발자는 진정한 개발자가 아니라는 편견이요. 부끄러운 말이지만, 처음 개발 공부를 시작하면서 그런 편견이 저를 지배하고 있었어요. 웹서버를 할 때까지도 마찬가지였어요.

트렌센던스를 하면서 그런 편견이 와장창 깨졌죠. 기대하지도 않았던 게 엄청난 것으로 느껴지면 빠져버리는 게 있잖아요. 그런 게 저한테 프론트였어요. 아무것도 아니라고 생각했는데 막상 해보니까 너무 대단했던 거죠.

앞으로 몇십 년을 개발자로 살아야 할 텐데, 클라이언트 사이드의 스펙이 좋아지면서 점점 프론트엔드가 맡을수 있는 책임이 커지겠다는 기대도 있었죠.

트렌센던스도 쉬운 프로젝트였다면 42에 실망했을 거예요.

웹서버까지도 실망을 하고 있었거든요. 그런데 그게 아니었고, 트렌센던스는 정말 고마운 프로젝트가 되었어요.

Q8. 트렌센던스 얘기를 더 해달라.

힘들었던 것부터 말씀을 드릴게요.

처음에 실시간 처리를 하기 위해 액션 케이블을 다룰때 너무 큰 스트레스를 받았어요. 내 마음대로 되는 게 아무것도 없었어요.

구독하지도 않았는데 왜 자동으로 구독이 되는 거야?

또 액션 케이블을 사용하면 프론트와 백엔드가 언제든지 먼저 메시지를 줄 수 있는 양방향 통신을 할 수 있게 되는데, 이게 제가 알고 있는 상식선에서 와닿지 않았어요.

처음에는 백엔드에서 먼저 프론트로 메시지를 줄 수 있게 하는 기술이라고 생각했는데, 양방향으로 메시지를 주고받을 수 있고 그런 사실에서 파생되는 개념과 현상들을 이해하는 게 가장 힘들었어요.

가장 좋았던 건 ‘어피어런스 뷰’를 작업할 때였어요.

사람들이 접속할 때, 게임 중으로 상태가 변할 때, 로그아웃했을 때 사람들의 접속 상태를 변경하는 실시간 처리를 하는 작업이었어요.

모델을 만들고, 모델에 이벤트 핸들러를 등록해서 처리하는 일련의 과정들이 좋았어요.

Q9. 5명이 비대면으로 협업하는 게 힘들지는 않았나?

협업이란 게 어려운 거잖아요.

저는 상대적으로 팔로우하는 입장에서 참여했는데, 제가 생각했을 때는 잘 된 협업이었다고 생각해요.

오히려 대면이 아니라 온라인이었기 때문에 잘 되었다는 생각도 들어요.

서로가 언제든 온라인으로 만날 수 있었고, 또 얼굴을 보지 않았기 때문에 더 편하게 대화를 할 수 있었던 것 같아요.

eunhkim님이 잘 리딩하고 iwoo님이 잘 기록하는 등 커뮤니케이션이 전반적으로 원활했던 것 같아요.

나중에 제가 팀을 꾸려나간다고 하면 막막할 것 같아 걱정이네요(웃음).

Q10. 만약 트렌센던스를 처음부터 다시 해야 한다면?

학습 시간이 길었던 것 같아요.

제 문제일지는 모르겠는데, 학습하라고 하면 허송세월하게 되는 느낌이 있었어요.

자바스크립트, 백본, 루비 등 45일간의 학습 기간에 얻은 게 많지 않은 느낌이에요.

학습 기간을 줄이고 닌자 프로젝트를 늘렸을 것 같아요.

Q11. 설계나 구현을 바로 들어가는 게 아니라 닌자를 늘리자고?

아예 모르는 상황에서 설계하고 구현을 한다는 건 많이 어려운 것 같아요.

제대로 된 웹페이지를 만들어 본 적이 없는 상황에서, 또 SPA라는 새로운 형태의 애플리케이션을 바로 구현한다는 건 말이 안 된다고 생각해요.

그러니까 학습 기간을 줄인다기보다 닌자 프로젝트를 통해 실습을 거쳐 학습하는 방향으로 가는 게 맞는 것 같아요.

Q12. 설계나 구현 단에서 달라지는 게 있을까?

설계는 저희가 했던 것으로도 만족스러워요.

구현 단에서는 할 얘기가 많은데요. 서브젝트에서 요구한 바는 이미 모두 넘어섰다고 생각하고, 서브젝트와 무관하게 SPA는 빠른 속도, 즉각적인 반응을 추구해야 한다고 생각해요.

그런데 저희 서비스를 보면 어피어런스 뷰에서만 그런 느낌을 많이 받아요.

다시 돌아간다면 모델과 컬렉션, 액티브 잡, 액션 케이블을 훨씬 적극적으로 이용해서 서비스 전체적으로 실시간 연동에 신경을 많이 쓸 것 같아요.

유저가 새로고침 버튼을 누르거나 페이지에 다시 접근할 필요 없이, 특정한 페이지를 렌더링하는 데 필요한 데이터의 상태가 변경될 때마다 실시간으로 해당 뷰를 다시 렌더링하는 거죠. 앱 전체에서요.

워 모듈을 작업할 때에도, 워타임에서 일어나고 있는 전투 상태는 실시간으로 계속 변경을 하면서도 전쟁 현황에 대한 정보는 실시간 렌더링을 하지 못한 게 너무 후회가 돼요.

다이렉트 메시지 역시 해당 유저와의 대화창을 켜야지만 도착한 메시지가 있다는 걸 확인할 수 있는데, 열지 않아도 새로운 메시지나 읽지 않은 메시지를 확인할 수 있게 처리를 했다면 좋았을 것 같고요.

마지막으로 랭킹 역시도 지금은 유저가 요청할 때마다 인덱스를 계산하는 방식인데, 10분이나 30분 단위로 주기적으로 job을 통해 랭킹을 서버 사이드에서 업데이트하고, 프론트로 전송해서 정보를 업데이트하는 것도 해보면 좋겠어요.

Q13. 어쩌다 트렌센던스까지 끝나게 되었는데?

마지막 과제는 괜찮았지만, 마지막 과제까지 버티는 과정이 험난했어요.

고비도 많았고, 하기 싫었고, 내가 이걸 왜 하나 싶었어요.

제가 앞으로 어떤 분야로 가야 할지 구체적으로 선택하지 못했고, 42에 오면 빠르게 정할 수 있을 것으로 기대했는데 마지막까지 잡히지 않아서 스트레스였어요.

마지막 과제 전까지는 정말로 불만족스러웠지만 지원금으로 버텼고, 마지막 과제로 인해 그래도 42 과제가 할만하다고 생각하게 되었어요.

다만 마지막 과제도 이왕이면 많이 쓰는 기술들, 리액트나 node.js를 썼으면 더 좋았겠다 싶지만요.

Q14. 이후 계획은?

프론트 엔드 개발자가 되기 위해 앞만 보고 달릴 겁니다.

아직 HTML/CSS에 대한 두려움이 남아있어서 그걸 없애는 것, 자바스크립트의 언어적 특성이나 문법적인 영역을 학습하는 것 등이 요즘의 과제에요.

드림코딩 엘리 채널의 강의를 보면서 역량도 다질 거고요.

개인적으로 하고 싶은 프로젝트가 생기면 해보고도 싶어요.

그러다 자연스럽게 반년 뒤에 취업하면 좋겠다고 생각하고 있고요.

Q15. 이제 막 카뎃이 된 사람들에게 해주고 싶은 말이 있다면?

저처럼 살면 안 돼요.

저처럼 살았던 게 어떤 거냐면, 커리큘럼에만 올인하는 거예요.

다른 프로젝트를 하나씩 계속해야 해요. 누군가 시키는 걸 하는 게 아니라, 내가 원하는 걸 찾아서 하나씩 구현해가면서 학습을 하는 게 더 좋아 보여요.

그게 즐거움도 있고 진로를 정하는 데도 큰 도움이 되는 것 같아요. 간단한 것이라도 좋으니까 프로젝트를 계속 병행하면 좋지 않을까 싶어요.

제가 42 교육과정에 대해 아쉬움을 많이 얘기했는데, 사람에 따라서는 좋은 과정일 수도 있을 것 같아요.

취업이 문제가 아니라 C언어나 유닉스 관점에서 컴퓨터를 바라보고, 그런 깊이를 추구한다면 이 교육 과정도 충분히 좋을 수 있다고 생각합니다.


03. yohlee

Q1. 어떻게 살아왔나?

개발을 시작하기 전에도 42에서처럼 열심히 살아왔어요.

클래식을 전공했어요. 피아노를 전공해서, 예고로 가려다가 잘 안 됐죠. 내신이 안 좋았거든요. 공부에 대한 갈증을 그 때 제대로 느꼈고 그 뒤로는 열심히 공부를 하게 됐어요.

누나가 오르간을 전공해서 음악을 하면서 독일에서 살고 있는데, 비용이 많이 들어서 부모님이 제가 음악 하는 것에 대해 부담을 느끼셨어요.

그래서 저는 돌아가더라도 공부를 해서 좋은 대학을 가고, 독문과로 간 다음에 독일의 음악대학원으로 유학을 가려고 했어요.

운이 좋아서 좋은 대학을 갔고, 대학을 가서도 음악에 대한 갈증이 계속 있었어요. 꿈이 다른 쪽에 가 있다 보니 학술적인 공부는 잘 안 하고 피아노를 많이 쳤어요. 연주회도 많이 하고요.

그러다 군대를 갔는데, 군악대는 음대생을 뽑기 때문에 저한테는 기회가 안 왔어요. 일반적인 병과로 가다 보니 음악을 할 수 없는 상황이 너무 힘들었어요.

2년이라는 시간이 짧은 시간이 아니니까, 전역했을 때는 너무 늦어버렸다고 생각하면서도 클래식을 하고 싶다는 마음은 계속 남아있었어요. 두 마음 사이에서 답을 찾다가 지휘로 방향을 틀었죠.

음악은 재능이 차지하는 비중이 큰 분야이고, 2년이란 시간 동안 음악을 놓았다가 다시 시작하는 상황이기 때문에 한 켠에 고민은 계속 남았지만요.

지휘에 대한 공부를 계속하고 레슨도 받다가 우연히 4차 산업혁명에 관한 심포지엄에 참여하게 됐어요. 유명한 교수님들이 하나의 기술을 놓고 어떻게 인간적으로 사용할 수 있는가에 대한 방법론적 이야기들을 많이 나누셨어요.

음악만 쫓으면서 살아왔던 저에게 큰 충격이었어요. 인공지능을 더 찾아보다가 자연어 처리(NLP)라는 분야를 알게 되었고, 저도 어쨌든 언어가 전공이다 보니 배우면 잘하겠다는 생각이 들었어요.

그러다 마침 뮤직 제네레이션(AIM)이라고 인공지능이 음악을 만드는 영역을 보면서 큰 가능성을 봤죠. 나
중에 역량이 쌓여서 NLP와 AIM을 합치는 작업을 해보면 좋겠다. 그런 이유로 마침내 진로를 변경하게 했어요.

Q2. 왜 42였나?

솔직히 얘기하면 이쪽 분야에 정보가 없었어요(웃음).

42를 하기 전에는 학교 수업 정도로만 인공지능을 접해봤었고, 코딩을 어떻게 해야 할지 잘 몰랐어요.

처음부터 코딩을 배우고 싶다는 갈증이 있었죠. 친구들도 다들 문과생이다 보니 당시의 저에게 다른 선택지는 없었던 것 같아요.

Q3. 지난 1년의 카뎃 생활을 돌아본다면?

학부 과정이 끝나지 않았기 때문에 1년 동안 휴학을 하고 42에만 집중했어요.

주말에는 쉰다든가 하는 루틴을 두지 않고 매일매일 했어요. 하루에 쓰는 시간은 달마다 달랐는데, 처음 몇 달은 개인적으로 힘든 일이 있어서 8시간 정도씩만 앉아있었고, 다섯 달쯤 지난 후부터는 꼬박꼬박 12시간 이상씩 한 것 같아요.

중간중간 클러스터가 열릴 때는 매일 클러스터에 갔었고, 예약에 실패했을 때는 출입제한이 풀리는 저녁 11시에 가서 아침 9시에 집에 왔어요.

통학에만 3시간이 걸리는 거리였지만, 집이 쉬는 공간이 아니게 되는 게 싫어서 어떻게든 클러스터에 갔죠. 클러스터가 닫힌 기간에는 어쩔 수 없이 집에서 코딩했지만요.

책으로는 거의 학습을 하지 않았고, C++ 직전 과제들까지는 책을 한 번도 안 읽었어요.

모든 것을 웹서치로 해결했어요. webserv부터 웹서치로 부족하다는 생각이 들어서 책을 읽기 시작했죠.

서브젝트 자체는 절대적인 것으로 받아들였기 때문에 모든 사항을 꼼꼼하게 지키려고 노력했고, 딥러닝을 빨리 공부하고 싶다는 마음이 점차 강해져서 보너스는 웬만하면 하지 않았습니다.

그룹 과제들을 제외하고는 혼자 학습했던 것 같아요.

Q4. 무엇이 가장 좋았나?

저는 42의 시스템이 영국 엘리트 교육을 모방했다고 계속 생각해오고 있었는데, 유럽의 잘 사는 애들이나 받는 교육이 한국에 들어와서 잘 정착이 될까라는 생각이 있었어요.

영국의 엘리트 교육이라고 하면 큰 특징이 자기주도적 학습인데, 한 마디로 혼자 알아서 하라고 하는 거잖아요. 제가 인상 깊게 들었던 얘기 중 숲에 아이들을 들어가라고 한 뒤에 선생님들이 그냥 집에 간다는 얘기가 있어요. 이런 게 한국에서는 절대 안 통할 거라는 선입견이 있었어요.

좋지 않은 시선으로 42를 바라보고 있었는데, 막상 교육 체계 안에 편입이 되어보니 너무 좋고 신기하더라고요. 반전이었죠. 모르는 사람이랑 인사하고, 아무렇지 않게 다가갈 수 있다는 것도 특히 좋았어요.

또 작년 여름부터 밴드 동아리를 했는데, 합주를 6번밖에 못했지만 그때가 되게 재밌었고요. 작년 8월쯤에 자연어 처리 스터디를 하고 공모전에 나갔는데 그때도 기억에 강하게 남아있어요.

Q5. 아쉬웠던 부분은?

제일 큰 건 좋은 코드를 짜지 못했다는 거예요.

시행착오가 있어서 printf만 두 달을 했는데, 다른 1기 1차 분들보다 진도가 느려져서 자꾸 비교됐어요. 결국 속도를 맞추기 위해 코드의 품질에 대해 타협을 했죠.

더 많은 사람을 만나려고 개인적인 노력을 하지 않았다는 것도 아쉬운 부분이에요.

Q6. 트렌센던스 얘기도 듣고 싶다.

전체적으로 좋은 점들이 많았어요. 다른 팀원분들이 열정이 많으시다는 게 좋았어요. 열정맨들(웃음). 프로젝트 일정에 대한 팀원들의 의견이 안 맞으면 눈치를 자꾸 보게 되잖아요.

마음껏 열심히 할 수 있다는 것, 서로 자극을 받고 더 열심히 하려고 한다는 것, 프로젝트 기간이 길어지더라도 누구 눈치를 안 봐도 된다는 게 무엇보다 좋았죠.

또 설계를 제대로 하고 프로젝트를 했다는 것을 빼놓을 수 없는 것 같아요.

이렇게 정교하게 협업을 하는 것 자체가 20대 통틀어서 처음이었거든요. 설계를 잘하고 들어가는 게 좋다고 듣기만 했었는데 실제로 해볼 수 있어서 좋았고, 그 과정에서 루시드 앱, adobe xd, 포스트맨 같은 다양한 툴들을 썼던 것도 좋았던 포인트였어요.

구현 과정에서는 range나 progress bar와 같은 UI 컴포넌트를 렌더링할 때, 내가 이런 소스 코드들을 잘 가져와서 쓸 수 있게 되었구나 싶어서 좋았고요. validates 옵션이 아니라 validator 클래스를 따로 만들어서 유효성 검사를 처리할 때에도 보람찼어요.

아쉬운 부분이 있다면 에러 처리에요. 서비스 에러 객체를 만들고, 각 모델별로 개별적인 예외를 처리하는 에러 객체를 서비스 에러 객체로부터 상속받아 생성하려고 했었는데 잘 안 됐어요.

또 팀원들의 열정이 많은 게 장점이었지만, 열정이 너무 크다 보니 아침부터 시작해 새벽까지 할 때도 있어서 작업 일정이 체계적으로 관리되었다면 더 좋았겠다 싶었어요.

쉬는 시간이나 필수적 작업 시간, 선택적 작업 시간이 체계적으로 관리가 되었다면 쉬고 싶을 때 편하게 쉴 수 있지 않았을까 싶네요.

끝으로 후반에는 작업 일정이 맞아떨어지지 않아서 jujeong님이나 sanam과 주로 팀을 이루어서 작업했는데, iwoo님과는 밀도 있게 같이 작업해보지 못해서 아쉬웠어요.

Q7. 5명이 비대면으로 협업을 하는 과정이 힘들지는 않았나?

딱히 힘들지 않았어요.

오프라인으로 했을 때의 장점도 있겠지만, 오프라인이 아니었을 때의 단점도 크게 느끼지 못했어요.

대시보드 관리도 잘 되고, 설계도 잘해놓고 진행을 했기 때문에 오프라인이 가능했더라도 그게 더 좋았겠다는 생각은 안 드네요.

Q8. 만약 트렌센던스를 처음부터 다시 한다면?

사전학습에 대한 기간을 줄이고, 처음부터 닌자 프로젝트를 진행할 것 같아요.

저희가 처음 45일간 공부만 했을 때는 공부를 하면서도 뭐가 뭔지 잘 몰랐어요. 닌자 프로젝트를 했을 때야 ‘공부했던 것들을 이렇게 활용하면 되겠구나’라는 감이 생겼어요.

그 감은 빠르게 잡을수록 좋은 것 같고, 기술을 잘 모르더라도 튜토리얼들을 무작정 따라가도 감은 잡히는 것 같아요. 괜히 프로젝트 학습이라는 말이 있는 게 아닌가 봐요.

닌자 프로젝트 이후로는 비슷하게 갈 것 같아요.

설계 자체는 이번이 너무 좋은 경험이었기 때문에 똑같이 갈 것 같고요. 구현에 관해서는 백본의 모델과 컬렉션을 더 적극적으로 활용해보려고 할 것 같아요.

CSS 역시 반응형에 더 힘을 실어보고 싶고, 백엔드에서 모델의 수를 줄이거나 연관 관계를 더 디테일하게 설정하려고 할 것 같아요. 백엔드에서 어떤 데이터를 찾으려고 할 때 쿼리가 복잡해지는 경우가 많았던 게 불편했거든요.

Q9. 어쩌다 트렌센던스까지 끝나게 되었는데?

아직 얼떨떨해요.

홀리그래프에 들어가면 원래는 다음에 진행해야 할 서브젝트 한두 개에만 흰색 테두리가 있었는데, 지금은 바깥 서클의 많은 서브젝트가 흰색 테두리로 둘러싸여 있어서 신기해요.

이제 본격적으로 시작인 느낌이라 마냥 좋다고만 할 수는 없지만, 어쨌든 큰 하나가 끝났으니까 기분은 좋습니다.

Q10. 이후 계획은?

아우터 서클의 10시 방향에 AI와 머신러닝 관련된 서브젝트들이 있는데, 해당 서브젝트들을 먼저 하려고 합니다.

사실 이미 register했어요(웃음).

규모가 큰 것들이 아니어서 2주 안에 4개는 할 수 있을 것 같아요.

해당 분야에서는 약간 예전 것들이고, 관련 기술의 공식 홈페이지 첫 번째 챕터에 있는 내용들이거든요. 42의 AI 커리큘럼이 상당히 기초적인 편이라 빠르게 끝내고 코테와 취업을 준비하려고 합니다.

Q11. 이제 막 카뎃이 된 사람들에게 해주고 싶은 말이 있다면?

이번에 4기로 친구들 2명이 들어왔어요.

1차인 한 명은 인터뷰하는 지금 final exam을 보고 있고, 2차인 다른 한 명은 다음 주에 피씬을 시작해요.

제가 이 둘에게 매일 하는 얘기가 ‘개 같이 하라’에요.

열심히 하라고. 이곳은 친절하지 않아요. 누구도 먼저 알려주지 않죠. 스스로 할 수 있는 최선을 다하는 게 이곳에서 살아남을 수 있는 길이에요.

대신에 비전공자라고 너무 걱정할 필요 없다는 얘기도 꼭 하고 싶어요. 저도 해냈으니까.

이번에 트렌센던스를 함께 통과한 5명 중에서 비전공자가 4명인데, 사실 42가 추구하는 방향의 산 증인들인 것 같아요.

저희가 다른 분들보다 빠르게 공통 과정을 끝냈다는 것 자체가 응원의 메시지가 될 수 있지 않을까요.


04. jujeong

Q1. 이 팀의 유일한 전공자라고?

네. 컴퓨터 공학을 전공했어요.

학교가 특이한 게, 컴퓨터 공학과와 소프트웨어 학과로 나뉘어요.

소프트웨어는 코딩 위주이고, 컴퓨터 공학과는 코딩 반 하드웨어 반이에요. 저는 하드웨어 쪽에 관심이 많다 보니 C나 파이썬을 주로 사용해서 아두이노나 아두이노보다 더 딥하게 쓰는 기계들 위주로 코딩을 했어요.

이론 수업은 많이 들어서 기본적인 CS나 알고리즘 이론은 학습이 된 상태였지만, 졸업하고 보니 친구들보다 취업하기에 코딩 쪽이 부족한 것 같아서 추가적인 공부만 필요하다고 생각했어요.

혼자 하는 것보다 나을 것 같아서 42에 들어오게 됐어요.

Q2. 왜 42였나?

대학교를 졸업하고 코딩을 준비해야겠다고 생각했을 때, 형의 교수님이 마침 42서울을 알려주셨어요.

공교롭게도 테스트 당일 아침 8시에 알려주셨는데, 당일이어서 테스트나 봐보자는 생각으로 봤어요.

테스트를 잘 본 것 같지는 않았는데 다음 날 합격했다는 문자가 와버렸죠.

다른 프로그램들은 비용적으로도 비싸고 시간 준비도 많이 들 것 같아서 42로 들어오게 됐어요.

Q3. 지난 1년은 어떤 방식으로 학습을 했는지?

42에만 집중했어요. 빨리 취업을 하고 싶은 마음에 처음부터 엄청나게 달렸죠.

놀고 싶을 때 놀긴 했지만, 생산적인 일에 관해서는 다른 것을 하지 않고 42만 했어요. 학교에서 C 를 많이 했기 때문에 초반 과제들은 어렵지도 않았고요.

minishell에서 제동이 걸렸죠. 같이 할 팀원이 없어서 기다리는 시간이 있었고, 그다음부터는 계획과 다르게 시간이 많이 늦춰졌어요.

아무래도 혼자 하는 과제들이 아니니까요. 예상했던 것보다 기간이 길어져서 중간에 이 과정을 계속해야 하나 싶은 고민도 있었지만, 이왕 시작한 거 이너 서클까지는 끝내보자는 생각으로 계속했어요.

책은 따로 안 읽고, 일단 만들면서 테스트하는 스타일이라 직접 해보면서 학습을 했어요.

printf나 minishell도 그런 방식으로 학습을 했죠.

쿠버네티스나 이런 새로운 기술들이 나올 때도 웹서치로 해결했고, 웹상에 자료가 많아서 42 전체 교육 과정에서 특별히 웹서치로 부족하다고 느꼈던 적은 없는 것 같아요.

굳이 꼽으라면 cub3d인데, mlx를 어떻게 사용해야 하는지 감도 안 잡히고 사례도 많이 없어서 힘들었었죠.

Q4. 무엇이 가장 좋았나?

원 없이 코딩을 할 수 있는 환경이에요.

제가 딱 원했던 거에요. 제 취업에 도움이 된다고 할 수는 없지만, 코딩을 실컷 하고 다른 사람들과 협업을 할 수 있다는 건 분명히 장점이에요.

꾸준히 과정을 따라가다 보면 자연스럽게 사람들과 협업을 해야 한다는 시스템이 좋은 것 같아요.

Q5. 아쉬웠던 부분은?

마지막 트렌센던스 과제도 그랬지만, 저희가 학습하기를 원하거나 취업 시장에서 중요하게 여겨지는 기술 스택이랑 42 서브젝트의 기술 스택이 아주 다르다는 점이 아쉬웠어요.

또 저 같은 경우에는 학교에서 C를 많이 했기 때문에, C 기반 과제들이 공통 서클에 너무 많아서 시간이 아까운 부분도 있었어요.

그래서 싸피가 저랑 더 맞지 않았을까 하는 생각도 해봤죠.

42 자체에 문제가 있다기보다 비전공자에게는 42가 더 좋고, 전공자에게는 다른 프로그램이 더 맞지 않겠냐는 생각을 해요.

Q6. 트렌센던스 얘기를 해보자.

저는 졸업과제도 하드웨어를 이용해서 진행했어요.

굳이 백엔드와 프론트엔드를 결합해 서 하는 것이 아니라, 백엔드만 간단하게 만들어놓고 프론트엔드는 넘어온 데이터만 보여주는 식이었죠.

그런데 프론트와 백엔드가 데이터를 주고받고, 그 과정에서 실시간 처리도 해보면서 많은 도움이 되었어요.

협업하면서 다른 분들의 코드들을 많이 보다 보니, 지금까지 제가 해왔던 구현들에 대해서 더 좋은 방법은 없었는지 돌아볼 수도 있었고요.

초반의 학습 기간이 너무 길었던 건 아쉬웠어요.

저는 직접 해보면서 배우는 스타일이라, 학습 기간 때 많은 걸 배웠다기보다 나중에 직접 개발을 하면서 많이 배웠던 것 같아요.

너무 완벽하게 학습을 하고 진행하려고 하지 않았나. 처음에는 라이트하게만 학습했다가, 실습한 뒤에 경험을 가지고 다시 한번 학습을 하는 게 좋은 것 같아요.

Q7. 전공자라도 5명이 100일간 비대면 협업을 하는 건 처음이었을 것 같은데.

처음에는 힘들었어요.

다른 것보다 집에만 있다 보니 작업능률도 잘 안 오르고, 초반 학습 기간에는 특히 집중이 잘 안 됐던 것 같아요.

그런데 저희가 어느 순간부터 무조건 디스코드에 모이게 되었잖아요.

의무적으로 디스코드에 접속해있어야 하고, 설계를 시작하고서부터는 또 음성 채널에 대해 상시접속을 유지하기로 하면서 능률이 확 오른 것 같아요.

디스코드 강제 참여가 가장 크게 도움이 되지 않았나 싶어요(웃음).

Q8. 만약 트렌센던스를 처음부터 다시 해야 한다면?

저는 속도 위주에요. 무조건 되기만 하게 만들자는 거죠.

그래서 처음에 모든 기능을 가능한 한 빠르게 구현하고, 수정해가는 스타일이에요.

일단 구현하고, 구현 과정에서 발생하는 문제들을 수정하고, 구현이 끝나면 나중에 있을법한 문제들을 수정해가는 방식이죠.

그런데 제가 이전에 겪어왔던 협업은 2-3명이 소규모로 할 때 통용되었던 방식이었고, 수많은 사람과 제대로 협업을 하려면 계획을 제대로 해야 한다는 걸 이번에 느꼈어요.

또 제대로 된 프로젝트에서는 코딩 못지않게 대화하는 시간도 많이 필요하다는 것도 느꼈고요.

그래서 다시 처음부터 해야 하는 상황이 되더라도 제 성향보다는 지금처럼 계획적인 협업을 진행할 것 같아요. 코드에 대해서는 아쉬운 부분이 딱히 없어요. 저는 작동만 잘 되면 된다는 스타일이라(웃음).

Q9. 어쩌다 트렌센던스까지 끝났는데?

정말 후련해요.

웹서버가 끝나고 트렌센던스를 시작할 때까지 딜레이가 되었던 시간을 포함하면 4달이 넘었는데, 긴 시간이었어요.

학교에서도 DB 설계까지 꼼꼼히 하지는 않았거든요. 설계 과정을 꼼꼼하게 진행해본 게 큰 도움이 되었어요. 취업을 준비하는 데에도 큰 도움이 되고, 현업에 가서까지 좋은 영향을 줄 것 같아요.

Q10. 이후 계획은?

1순위는 취업입니다.

대학교 졸업하고 벌써 1년이 넘었어요. 처음 42서울에 들어올 때는 6개월에 이너 서클을 통과하고 6개월 안에 취업하는 게 목표였거든요. 계획보다 많이 늦어졌어요.

포지션에 대해서는 고민이 여전히 많고, 솔직히 이너서클은 포지션 결정에 큰 도움이 되지 않았어요. 그나마 트렌센던스를 하면서 프론트나 백의 재미도 느꼈고, 싫은 포인트들도 느꼈죠.

백엔드를 생각하고 있지만 프론트도 아예 생각이 없는 건 아니라, 취업 준비를 하면서 많이 생각해 볼 것 같아요.

둘 다 해보고 싶은 마음이 있어서 취업 공고의 수요를 보면서 생각이 바뀔 수도 있을 것 같고요.

우선 코테부터 준비하고, CS는 공부도 학부 때 했지만 바로 대답할 수 없을 만큼 까먹었기 때문에 리마인드도 해야 할 것 같아요.

토이 프로젝트는 당장 계획이 없지만 좋은 기회가 생긴다면 혼자서 A부터 Z까지 해보고 싶은 욕심도 있습니다.

Q11. 이제 막 카뎃이 된 사람들에게 해주고 싶은 말이 있다면?

전공자 입장에서 얘기를 드리는 게 좋겠네요.

42는 당장 취업이 목표가 아닌, 기초를 다지고 싶은 비전공자에게 더 적합하지 않나 생각합니다.

저는 이너 서클은 뚫고 취업을 하겠다는 오기가 있었고, 또 이미 시작했는데 중간에 끝내버리기에는 아쉬운 부분이 많아서 끝까지 왔어요.

만약 전공하셨거나 그에 준하는 지식이 있으시다면 이너서클은 큰 도움이 되지 않는 것 같아요. 대학을 1년 더 다니는 느낌이었거든요.

또 취업을 생각하고, 취업을 목표로 42서울에 오셨다면 이너 서클을 뚫는 것만으로는 도움이 되지 않는 것 같아요. 아무래도 취업을 목표로 최신 기술만 열심히 파는 프로그램이 많으니까요.


05. eunhkim

Q1. 자기소개 좀 해달라.

6년 차 교육기획자였습니다.
사회적 경제 영역, 구체적으로는 혁신 교육 분야의 사회적 기업들에서 주로 일해왔고요.

처음에는 교육 프로그램 기획/운영을 주로 하다가, 교육 콘텐츠나 학습 방식이 가지는 한계를 느껴서 교육 게이미피케이션 업무로 넘어갔어요.

그러다 대면 교육의 한계를 느껴서 교구 개발 및 사업 운영에 관한 업무들을 작년까지 했고요.

결국 교육 문제 해결의 열쇠는 기술에 있다는 생각이 들어서, 직접 원하는 서비스를 만들어 보려고 개발을 시작하게 됐어요.

무엇이 되었든 만드는 거라면 다 좋아하기도 하고, 장기적으로 봤을 때 개발은 동료에게 위임할 역량이 아니라고 판단했어요.

Q2. 왜 42였나?

시스템 때문이죠.

제가 일하던 섹터에서 42는 교육 혁신의 대표적인 사례이기 때문에 모를 수 없는 곳이고, 저도 2015년에 에꼴42를 알게 된 이후로 계속 지켜봐 왔어요.

사실 다른 것보다 42의 LMS나 시스템적 혁신성을 체험해보고 싶었던 마음이 가장 컸어요. 개인적으로 흥미로운 교육 모델을 몸으로 경험하는 것만큼 즐거운 일이 없거든요.

또 전반적으로 교육에 대해 신뢰를 잘 가지는 편이 아니기 때문에, 해외에서 검증된 42 모델이 주는 신뢰도가 있었고요.

Q3. 지난 1년은 어떤 방식으로 학습을 했는지?

평일이나 주말을 가리지 않고 개인적인 약속이 있을 때를 제외하고는 매일매일 했어요.

밥 먹는 시간 빼고는 대부분? 친한 동료들이 별로 없어서 클러스터가 열리든 말든 집이나 카페에서 코딩했는데, 동료학습 관점에서 볼 때 모범적인 카뎃은 아닐 거에요(웃음).

공부한 건 반드시 정리하는 편입니다. 노션에 하다가 gitbook으로 옮겼습니다.

학습 방식으로는 영상보다는 문서를 많이 봅니다. 책을 읽기보다 웹 서치를 주로 하는 편인데, 웹서버와 트렌센던스는 책들을 같이 봤어요. 돌아보니 도커나 쿠버네티스는 한 권 사뒀으면 좋았을 것 같네요.

Q4. 무엇이 가장 좋았나?

피씬에서 BSQ를 할 때, 둘 다 개인 과제에 대한 욕심을 내려놓고 마지막 주를 BSQ에 쏟았었거든요. 정말 좋았어요. 카뎃이 되어서 피씬 평가자로 참여했던 것도 기억에 남고요.

간간히 열렸던 글로벌 코딩게임 대회들, 소인수분해 대회, 두 번의 42 해커톤 같은 이벤트들도 즐거웠어요.

기본적으로 42의 학습 환경을 경험하는 것 자체가 멋진 일이었어요. 제가 피씬 때 모든 러시에서 각각의 이유로 0점을 맞았는데, 끝내주는 경험이었죠. 그중 두 명의 평가자가 도비와 김수보 멘토님이셨었는데, 평가해주시는 태도에서 감동을 많이 받았어요.

업이 교육이어서인지 모르겠지만, 가만히 슬랙만 보고 있어도 ‘이런 시스템이 한국에서 가능하다는 증명’이 실시간으로 진행되고 있는 것 같아 뭉클할 때가 많아요.

서브젝트만 놓고 얘기했을 때는 두 가지인데, 하나는 트렌센던스에요.

아무래도 웹에 관심이 많았으니까 실제적인 역량, 협업 경험을 쌓을 수 있어서 좋았어요.

그보다 좋았던 건C++ module 00의 ex02였는데, 맥락에 기반한 스토리텔링이 있었다는 점에서 42 이너서클을 통틀어 가장 좋은 과제라고 느꼈습니다.

Q5. 서브젝트만 한 것 같지는 않다.

42라는 영역 안에서 재미있는 건 다 하려고 했어요.

42 해커톤이 각각 한 달과 3일에 걸쳐 두 번 열렸는데, 둘 다 참여해서 각각 슬랙앱과 ios 앱을 만들어봤어요. 일주일씩 있었던 코딩 게임 대회도 두 번 다 참여했고요.

그 외의 사이드 프로젝트는 대부분 42 과제와 관련한 것들이었어요.

C++ 과제에 반복적인 작업이 많아, 불필요한 작업을 극단적으로 줄여주는 터미널 기반 익스텐션(c+++)을 만들었고요.

webserv는 튜토리얼을 만들었고, 트렌센던스는 이 인터뷰가 들어갈 플래닝 가이드를 만들고 있네요(웃음).

C++, webserv, transcendence가 시간을 많이 잡아먹는 프로젝트들인데 제가 남긴 콘텐츠들을 잘 활용하신다면 시간을 줄이는 데 큰 도움이 되지 않으실까 싶어요. 제 github profile에서 확인하실 수 있어요..

Q6. 아쉬웠던 것도 있을 것 같은데.

서브젝트와 평가 문항이 서로 다른 말을 하는 경우가 있어요.

서브젝트에 없는 항목이 평가에서 등장하면 당황스럽고, 또 한쪽이 업데이트되면서 다른 한쪽은 예전 버전을 유지할 때 논리가 어긋나는 부분들도 더러 보였습니다.

C++의 문제들이 특히 말도 안 되는 오류가 많은데, 프랑스에 문의해도 반응이 오지 않아서 답답했어요.

본 과정 초기에는 보컬들이 학습자를 연결하거나, 문화를 촉진하는 이벤트들을 많이 열었는데 어느 순간 사라진 점도 아쉽습니다.

이제는 코알라시옹 리더들이 해야 하고 또 그에 맞는 충분한 지원이 이루어져야 하는 일인데, 아쉬운 마음이 들어요.

Q7. 트렌센던스는 어땠나?

하고 싶은 걸 마음껏 해볼 수 있어서 좋았어요.

이제 여러 사람이 같이 하나의 웹 서비스를 개발할 때 어떤 과정을 거쳐야 할지 구체적인 흐름이 조금씩 잡히는 것 같아요. 아무래도 학습, 설계, 구현 과정에서 필요하다고 생각하거나 쓰고 싶은 툴, 하고 싶은 것들을 원없이 해볼 수 있었기 때문이겠죠.

사실 그런 시도를 마음껏 해보고 싶어서 팀장을 자원했는데, 다행히 팀원들이 좋은 경험으로 받아들여 줘서 감사했어요.

제가 처음으로 다녔던 회사가 루비 온 레일즈로 플랫폼을 개발했었고, 개발자는 아니었지만 당시에 레일즈 튜토리얼을 했었기 때문에 정겨웠어요.

웹도 좋아하고 게임도 좋아하기 때문에 전체적으로 언어나 영역, 콘텐츠가 모두 즐거웠던 프로젝트였다고 말할 수 있겠네요.

실력도 많이 늘었고, 웹 프레임워크도 나름대로 잘 써봐서 과제를 통과했다는 기쁨이 아니라 이 기술을 어느 정도 소화했다는 기쁨이 특히 큰 것 같아요.

Q8. 비대면 협업은 괜찮았나?

개인적으로 비대면은 환경이 반, 사람이 반이라고 생각해요.

일하고 돈을 받는 회사에서도 온라인 커뮤니케이션 역량이나 피드백 속도 면에서 동료들한테 아쉬운 적이 많았기 때문에 큰 기대를 안 했어요.

그런데 동료들이 모두 열정이 넘치고, 저희가 환경 구성을 워낙 잘해서 문제도 없고 오히려 오프라인보다 더 나은 협업을 했던 것 같아요.

그간 많은 종류의 협업을 해왔다고 생각하는데도 정말 손꼽을만한 협업이었어요.

Q9. 만약 트렌센던스를 처음부터 다시 해야 한다면?

그때 그때 할 수 있는 최선을 다했던 것 같아요.

지금의 지식과 경험을 가지고 다시 한다면 파일 구조, 네이밍, 나열 순서, 뷰 형식 등 스타일 가이드를 더 꼼꼼하게 세울 것 같아요.

추상화를 충분히 해서 필요한 상속들은 가능한 쓰고, 예외처리나 에러 로그를 처음부터 꼼꼼하게 남겨야겠죠. 레일즈 컨트롤러와 모델의 책임을 명확하게 나누고, Rspec을 처음부터 제대로 도입해서 TDD를 하고 싶어요.

모델과 컬렉션을 더 적극적으로 활용하고, dom, css, view와 관련해서도 가능한 컴포넌트화를 하고 싶어요.

Q10. 어쩌다 트렌센던스까지 끝났는데?

정말 어쩌다 끝났네요. 아쉬운 점은 학습 기록이 산발적이라는 거에요.

저는 책을 쓰듯이 기록하는 걸 좋아하고, 그러자면 아예 튜토리얼 형식의 글을 쓰거나 기술 자체를 소개하는 글을 써야 하는데 그걸 잘하지 못했어요.

산발적으로 코드나 지식을 정리해서, 나중에 봤을 때 체계가 없어서 직관적으로 원하는 내용을 찾기 어려운 경우가 많았죠. 다행히 웹서버와 트렌센던스는 그걸 비교적 제대로 한 케이스고요.

또 애써 학습해서 통과한 프로젝트도 금방 까먹다 보니 어셈블리나 mlx는 가물거리고, 도커와 쿠버네티스는 이력서에 쓸 만큼 자신이 없어요.

시간이 지나도 자유롭게 기술을 사용할 수 있을 때 진짜 학습이 일어났다고 생각하는데, 그런 면에서 애써 익힌 기술도 잊어 버렸다는 게 가장 큰 아쉬움입니다.

어쩌면 처음부터 제대로 학습하지 못했던 것일 수도 있겠죠. 반면 새로운 기술을 학습하는 역량과 개발, 좋은 코드에 대한 감각이 많이 늘었다는 건 유의미하게 느껴집니다.

새로운 기술에 대한 겁이 많이 사라진 것 같아요.

스스로 비판을 했지만, 자축하고 싶은 점도 있어요.

이너 서클의 모든 보너스를 다 했다는 거예요.

심지어 보너스 점수를 주지 않는 C++의 보너스들도 전부 했어요.

이너 서클을 온전하게 경험하고, 가능한 한 많이 학습하고 싶었거든요.

무조건 보너스까지 다 한다는 개인적 목표가 있었는데, 중간에 타협하지 않고 지키게 되어서 스스로 칭찬해주고 싶어요.

Q11. 이후 계획은?

온라인 교육 서비스부터 시작해서 제가 원하는 서비스들을 만들면서 살아가고 싶어요.

좋은 경영자가 되는 게 삶의 목표이자 계획이고, 지금은 그에 필요한 주요 역량 중 하나를 다져나가는 시기라고 생각해요.

그래서 취업을 어떤 회사의 어떤 직무로 하게 될지 아직 잘 모르겠지만, 개발자로 취직한다면 그게 뭐가 됐든 제 미션이나 비전과 관련해 배울 점이 가장 많은 조직, 포지션으로 가지 않을까 싶네요.

우선 평범하게 코딩 테스트와 면접 준비를 하는 한편으로, 취업 시장의 요구와 상관없이 다양한 기술들을 학습하고 흥미로운 프로젝트를 많이 해보려고 합니다.

Q12. 이제 막 카뎃이 된 사람들에게 해주고 싶은 말이 있다면?

42를 오랫동안 동경해왔기 때문에, 이곳에서 개발을 시작한 게 개인적으로 영광이에요.

이유는 많지만, 그중 하나는 역사를 몸으로 경험하는 곳이기 때문이에요.

shell과 c부터 시작하여 시계의 태엽을 한 바퀴씩 감아내면서 이전 기술의 한계를 다음 기술이 어떻게 혁신하는지, 시간에 따른 기술의 변화를 몸으로 학습하잖아요.

제가 바라보는 42는 옛날 기술이 아니라 기술의 변화에 대한 흐름을 학습하는 곳이고, 그 감각을 기반으로 불편함에 더 민감하고 혁신에 더 익숙한 사람들이 자라나는 곳이에요.

개별 기술이 한국의 취업시장에서 얼마나 쓸모 있는가가 아니라, 이전 서브젝트와 다음 서브젝트가 맺고 있는 관계에 집중해서 학습하다 보면 42에 감사한 마음이 들 때가 많아요.

또 42가 왜 잘 정리된 레시피를 따라 하는 클론 코딩이 아니라 실패와 시행착오를 통한 학습을 중요시하는가도 음미해볼 주제인 것 같아요.

결국 우리는 현장에서 레시피가 없는 문제들을 풀어가게 될 텐데, 두려움 없이 부딪히면서 마침내 자기만의 크리에이티브한 접근에 도달하는 과정에서 만들어지는 근육은 꽤 질기다고 느끼거든요.

우리가 자신의 선택을 더 신뢰하고, 열린 몸으로 겪어간다면 42는 정말 멋진 선택이 될 거예요.

끝.

1. 어쩌다 트랜센던스까지 #1(시작~개발환경) 
2. 어쩌다 트랜센던스까지 #2(협업환경) 
3. 어쩌다 트랜센던스까지 #3(구현,테스트,프랙티스) 
4. 어쩌다 트랜센던스까지 #4(팀원들 회고)