글 작성자: Key Ryung

멘토링 전의 나, 멘토링 중의 나, 멘토링 후의 나에 대한 내용을 담은 멘토링 리뷰입니다.

 

목차

[1편] 관객에서 다이버로

- 명화를 감상하려면
- Intro.
- 평범한 관람객이 멘토라는 전문가와 '모나리자'를 분석한다면?
- 절망의 계곡을 너머 깨달음의 비탈길로 한걸음
- 오롯이 홀로 서보기

 

[2편] 개발이 다이빙이라면

- 개발자에게 필요한 것은?
- 독학으로 채울 수 없는 것
- 멘토링? 멘토? 구루?
- 모르는게 적을수록 많이 안다.
- 멘토링에서 하는 다이빙

 

F-lab을 고민하시는 분들 뿐만 아니라 저 또한 처해있는 상황이 모두 다를 것이기 때문에 '꼭 했으면 좋겠다'라는 의견보다 자신의 개발 실력이 더이상 성장하지 않는다라고 느끼며 답답함을 느끼거나 개발자로써의 커리어에 대한 고민을 하시는 분들이 리뷰를 통해 원하시는 실마리를 얻는데 도움이 되셨으면 좋겠습니다.

 

1편은 멘토링을 진행하며 어떻게 변화했는지, 2편에서는 왜 F-lab 멘토링을 선택했는지에 대한 내용과 왜 변화했는지에 대한 내용을 담았습니다.

 


 

명화를 감상하려면

 

취미로 전시회를 정기적으로 가는 편입니다. 해당 분야 혹은 작가에 대해서 자세히 알게 되면 알수록 더 많은 것을 보고 느끼게 됩니다.

 

프로그래밍의 세계도 명화 감상과 비슷하다고 느낍니다. 많은 회사와 개발자들이 사용하는 오픈 소스들은 나름대로의 철학을 갖고 있기도, 이전에 발생했던 문제들을 해결하기 위해 발전하면서 개발됩니다. 하지만 이전의 저는 모나리자를 박물관의 모나리자구나하고 넘어갈 뿐 감상은 못 했습니다.

 

왜 이런 프레임워크가 나왔는지 왜 사용해야 하는지, 무엇이 성능을 좋게 하기 위한 기법인지 알지 못한채 말 그대로 지켜보았습니다.

멘토링의 받기 전에 이 정도 거리에서 기술을 바라보았습니다.

모나리자는 왜 가치가 있는지 생각도 안해봤습니다. 하지만 전문가 분들은 왜 이 작품이 가치가 있고 어떤 기법을 통해서 작품을 완성하고자 했는가를 알고 있으실 겁니다.

 


Intro.

 

장단점의 경우에도 사람마다 다르게 느낄 수도 있는 부분도 있다고 생각합니다. 그래서 저는 에프랩을 통해 무엇을 목표했고 그 과정에서 어떤 영향을 미쳤는지에 대한 과정을 적어보려고 합니다. 회고에서도 언급한 것처럼 에프랩의 시작은 절박함으로 시작되었습니다.

 

백엔드를 개발하고 있었지만 에프랩을 시작하기 전에 많은 의문점을 갖고 있었습니다.

내가 하고 있는 백엔드는 단지 JSON을 만드는 역할만 하는 개발영역인가?
알고리즘을 사용하는 빈도도 적은데 이런 경험들이 쌓이면 무슨 경력이 되는거지?
초기 시작하는 단계가 아니라면 유지 보수만 하면 되는 것인가?
새로 나오는 기술(WebFlux, Message Queue, K8S)들의 사용법을 익히면 내가 좋은 개발자가 되는 것인가?
이렇게 경력이 쌓이는게 진짜 맞나? 괜찮은 것인가?
코딩 테스트만 잘 보면 나도 좋은 기업에 갈 수 있는 것인가?
나는 핵심 개발자가 될 관상인가?



방향성이 없이 적어놓았던 중구난방의 기술스택을 적어 놓은 흔적

 

의문점들은 꼬리에 꼬리를 물면서 백엔드 개발자로서 가고자 하는 방향에 대한 확신도 줄었고 방향 조차도 모호해지고 있던 와중 동료 개발자가 신청해서 듣고 있다는 에프랩에 대해서 알게 되었습니다. 우리가 흔히 얘기하는 빅테크 기업 출신들이 멘토로써 상위권 개발자가 될 수 있는 방향성을 제시받을 수 있다는 색다른 방향의 문구들도 보입니다.

 

평범한 관람객이 멘토라는 전문가와 '모나리자'를 분석한다면?

 

개발자 입장에서 사용하는 라이브러리나 프레임 워크, 혹은 프로그래밍 언어의 내부까지 파악하지 않고 사용할 수 있는 강력한 개념이 있습니다. 바로 ‘추상화'입니다. 추상화를 통해서 데이터 베이스는 내부 구조를 몰라도 데이터를 읽고 쓰고 수정하고 지울 수 있고 내가 작성한 코드가 CPU에서 어떻게 작동 되는지 모르더라도 마치 모나리자를 보는 것은 누구나 할 수 있는 것처럼 사용할 수 있습니다.

 

다만 차이점은 개발자가 만드는 제품에서 사용하는 라이브러리, 프레임워크는 문제를 발생시킬 수 있습니다. 큰 규모의 오픈 소스 라이브러리나 프레임 워크를 사용한다면 처음으로 그 양에 압도됩니다. 무엇을 봐야 할 지, 어디서부터 봐야 할 지 감도 오지 않아 쉽게 포기하게 되었습니다.

 

하지만 멘토님이라는 전문가와 같이 모나리자를 같이 보면 재밌는 과정이 탄생합니다. 처음 모나리자를 볼 때 조금이라도 멘토님이 보는 시각을 같이 보고 싶어 기본기와 더불어 쉴새 없이 이어지는 질문들을 준비해서 멘토링에 임했습니다. 이런 과정이 끝이라면 좋았겠지만 진짜 홀로 '모나리자'를 보려면 우매함의 봉우리를 넘어야합니다.

 

속으로 생각했습니다.

동시 사용 유저는 한 10만명은 충분히 쉽게 만들수 있지 않을까? 하지만 어리석음을 깨닫기까지 그리 오래걸리지 않았습니다.
(깨달을 수 있는 기회가 생겼습니다.)

 

YOUSINSA 프로젝트의 단순 로그인인데 성능이 처참한 모습

 

동해 바다 한가운데에 혼자 다이빙하고 있다면...? 이것이 실제 서비스였다면..? 

 

더닝-크루거 효과의 그래프는 생각보다 개발자의 정신 상태 곡선을 나타낸 것을 아닐까 생각이 들 정도로 커리어의 시작부터 지금까지의 저의 정신 상태를 말하기에 적절하다 생각듭니다. 책 한권을 읽고 혹은 강의 한편을 완강하고 나면 이제 이 부분은 정복했다라고 착각했던 경험이 많았습니다.

 

우매함의 봉우리에 도착한 경우 더 깊게 학습이 필요하지만 그 당시의 편안함과 만족스러움에 멈춰있으면 반드시 실제 프로덕트를 만들면서 내가 아는 것은 아직 빙산의 일각이였구나, 혹은 수박 겉핥기를 하고 있었구나라는 깨닫고 순식간에 절망의 계곡에 빠져 흥미를 잃거나 Motivation을 잃고 헤맨 경험도 많이 했던 상황이었습니다.

동그라미가 처진 어딘가에 나는 위치할거다라는 생각을 했습니다.

 

하지만 우매함의 봉우리를 넘어 절망의 계곡에 빠지더라도 깨달음의 비탈길로 진입하는 꿈을 가지고서 그렇게 멘토링을 시작했습니다. 

 

절망의 계곡을 너머 깨달음의 비탈길로 한걸음

 

업무로써의 개발, 이론 공부, 멘토링 준비, 프로젝트 개발까지 쉽지 않은 시간이였습니다. 인고의 시간을 견디고 이겨내면 조금씩 멘토님이 어떤 시각으로 코드를 바라보는지 느끼게 됩니다. 모나리자 하나만이라도 자세히 멘토님의 시각으로 보고자 노력했는데 동시대의 작품들이 왜 이런 방식으로 그림을 그렸는지도 함께 보입니다. 

 

더 깊이 다양한 코드들을 봐야겠다는 생각과 행동이 이어졌습니다.

 

Tomcat에 대하여 자료조사와 코드를 뜯어보면서 정리한 문서

 

프로젝트를 진행시에는 Redis 관련 동작에서 지원되지 않는 동작인데 구현한 라이브러리가 있어 분석하다가 실마리를 얻게 경험도 하게 되었습니다.

[#11] 재고 관리는 어떻게 해야될까? - 2. Lua Script 발췌 내용

멘토링 과정을 통해 이론에 대해서 깊게 학습하고 프로젝트까지 진행하고 나니 이전과는 완전히 달라진 자신의 모습을 발견할 수 있었습니다. 이제 조금은 감상할 준비가 완료되었다고 생각이 들었습니다.

 

오롯이 홀로 서보기

 

멘토링을 마치고 이직 전선에 뛰어든 저는 더닝 크루거의 골짜기와 우매함의 봉우리를 수십번 왕복하는 상태가 되었습니다. 잘 안다고 생각하다가 문득 불안감이 스쳐지나가 더 자세히 파고들 때는 모든 것을 모르는 것 같이 느껴졌습니다. 하지만 단 하나 확실하게 달라진 것은 '내가 무엇을 모르는가?'에 대한 확신이 들었습니다.

 

이직 과정에서 겪었던 기술 인터뷰를 생각해보더라도 모든 질문에 대해서 답하지는 못했습니다. 하지만 제가 배운 것은 기술들의 동작 원리나 사용 용도, 베스트 프랙티스가 아니니 홀로 다시 인터뷰를 되짚으며 나아갔습니다. 몰랐던 질문이거나 당황스러운 질문이 있었다면 지금이라도 가면 되는 곳이니 큰 걱정이 생기지는 않았습니다.

 

단단하게 만들기

 

해당 기술, 개념에 대해 내가 정확히 이해하고 있는지 확인하기 위해 정리했을 뿐 면접 문제 은행처럼 질문들을 모아 놓고 기계적인 대답은 최대한 지양하려고 했습니다. 기술 인터뷰는 말 그대로 인터뷰로써 서로가 기술에 대해 논의하고 확인하는 시간이므로 기계적인 답변은 오히려 마이너스가 되지 않을까라는 예상을 했었기 때문입니다.

 

지금은 '그때는 그랬지'라는 담담한 말투지만 실제로 경험할 때는 쉽지 않았습니다. 특히 가고 싶었던 회사 중 하나의 기술 면접도 아니라 Pre-Interview를 보고 정신적으로 많이 지쳐버린 순간도 왔었습니다.

홀로 서는게 쉽지 않아 멘토님에게 도움을 요청하는 한장면

멘토님에게 답변을 받고 다시 한걸음 나아가기 위해 블로그 한 편을 작성합니다.(해당 질문에 대해 얘기를 나눴던 캡쳐본이 유실됐네요.)

 

https://keydo.tistory.com/39

 

[#12] YOUSINSA, 이대로 괜찮은가?

개요 마지막 개선사항까지 포스팅을 완료했지만 그동안 면접, 포트폴리오 피드백을 다양하게 받으면서 알게 된 부분과 더불어서 이미 알고 있는 개선 필요 지점, 아쉬운 부분을 기록하기 위해 "

keydo.tistory.com

 

어떻게 해결할 것인지 직접해보지는 않았지만 그동안 배운 과정을 통해 스스로 되돌아 볼 수 있기 때문에 작성할 수 있는 내용이었습니다. 다시 한번 되돌아보니 이전까지 너무나 당황스럽고 어려웠던 질문들이 명쾌해지는 순간이었습니다.

 

관객에서 프로 다이버의 길로

 

더이상 명화를 보면 그냥 지나치지 않고 감상할 수 있고 그에 맞춰 코드를 작성하기 위해 노력할 수 있는 단계에 올라와 있다고 느꼈습니다. 지금 필요한 것은 더 많은 딥다이브하는 경험이라고 느껴지는 와중에 핏이 정말 잘 맞는 회사를 만나게 되어 수습 기간을 지나 백엔드 엔지니어로 근무중입니다. 

 

서로 배울 수 있고 믿을 수 있는 동료 개발자와 더불어 고민하는 것을 들어주시고 응원해주시는 시니어 개발자분들과 함께 정말 즐겁고 행복하게 개발하고 있습니다. 종종 보다 더 자주 아직 많이 부족하다는 사실을 느끼지만 더 깊이 들어가는 훈련과 많은 것을 더 익혀 좋은 개발자가 되기 위해 노력중입니다.

 

 

2편에서 계속됩니다