상세 컨텐츠

본문 제목

F-lab Backend 멘토링 수료 후기

카테고리 없음

by AyaanDev 2023. 12. 6. 15:04

본문

반응형

1. 지원 이유

2022년 군대를 전역하고 갓 복학한 나는 공부해야겠다는 의욕은 있었지만 아는게 정말 하나도 없었다. 프론트 엔드나 백엔드 같은 개념이 뭔지도 몰랐던 나는 무엇을 공부해야 할 지도 무엇부터 공부해야 할지도 알지 못했다. 막막함에 어디선가 들어봤던 생활코딩 유튜브를 찾아 HTML, CSS 같은 것을 보다가 이건 조금 아닌 거 같은 생각이 들었을 때, 라이징 캠프라는 교육 프로그램에 node.js 서버 포지션으로 참여했다.

라이징 캠프에서는 무언가를 만들기 위해 필요한 최소한의 지식들을 배울 수 있었다. 서버가 무엇인지 배웠고 ERD를 작성해 보고 API를 직접 구현하는 등, 아는 거라고는 1학년때 배운 C언어 밖에 없던 내가 2달 동안 많은 것을 배웠다. 아는 게 적을수록 자신감이 넘친다고 하던가 교육을 수료하고 나는 넘치는 자신감으로 많은 활동을 했다. 1년간 해커톤도 참여하고 공모전도 나가고 토이프로젝트도 4개 정도 진행했다. 2023년 초쯤 시작했던 토이프로젝트는 처음으로 스프링을 사용했다. Java도 능숙하지 않았고 SpringBoot도 처음 써보지만 유튜브 스프링부트 튜토리얼을 보고 JPA를 조금 공부하고 적당히 적당히 코드를 작성하다 보니 토이프로젝트를 어느 정도 완성했다.

그러다 보니 자연스레 고민이 생겼다. 뭘 공부해야 하는 거지? 코딩을 잘한다는 게 어떤 거지? 사실 기능이 다 거기서 거기인 거 아닌가? 그냥 여러 기술 많이 써봤으면 잘하는 건가? 최신 기술을 사용할 줄 아는 게 잘 하는 건가? 지금 내 실력은 어느 정도인 거지?

라이징 캠프를 수료한 후에 거의 1년 가까이 API 상하차 작업만 한 것 같다. 여러 가지 프로젝트를 하면서 수많은 기능을 구현해 봤지만, 라이징 캠프를 수료한 직후에 비해서 실력이 많이 올랐는지 모르겠다. 라이징 캠프를 들을 때 하루하루 성장한다는 느낌이 그리워졌다. 물론 그때 당시에는 0에서 시작해서 배워나가는 것이었으니 성장의 속도가 빨랐던 것이고 점점 느려질 수밖에 없지만 실력이 제자리걸음이라는 느낌은 나한테 조급함을 줬다. 이런 상황에서 우연히 F-lab이라는 프로그램을 접하게 되었고 그때의 성장하는 느낌을 다시 느끼고 싶어 고민 끝에 지원하게 되었다. 가격적인 측면에서 고민을 많이 했지만 멘토링이 끝난 지금 되돌아봤을 때, 수업을 듣기로 한 것을 후회하지는 않는다.

2. 좋았던 점

좋았던 점을 언급하기 전에 우선 멘토님마다 추구하는 가치가 달라 교육 방식이 많이 다를 수 있다. 또한 F-lab의 큰 틀에서의 커리큘럼은 정해져 있지만, 교육생의 수준에 따라 멘토님의 판단아래 커리큘럼이 바뀔 수도 있다. 예를 들어 어떤 멘토님은 프로젝트를 하는 것을 중요시 생각하지만 어떤 멘토님은 프로젝트는 배웠던 것을 적용해 보는 연습을 하는 것일 뿐 이론을 더 중요시 생각하시는 멘토님도 있다. 나는 자바 기초부터 멘토링을 시작했지만 이런 과정을 건너 띄고 객체지향부터 시작하셨다는 멘티분들도 계셨다. 이런 교육 스타일과 커리큘럼은 멘토님과 충분히 의논해 보는 것을 추천한다.

일방향 수업이 아니다.

나는 수업이라는 형태를 별로 좋아하지 않는다. 단순하게 지식을 듣기만 하는 것은 이미 이 세상에 너무 많은 지식 습득 매체가 존재한다. 이런 매체는 인터넷에 있는 자료일 수도, 책 일수도, 비디오일 수도 있지만 공통점은 내 템포에 맞출 수 있다. 내가 쉽게 이해되는 부분은 빠르게 넘어갈 수 있으며 어려운 부분은 천천히, 공부하다 드는 의문들은 바로바로 찾아봄으로 써 해결할 수 있다. 반면 일방향 적인 수업은 내 이해도와는 상관없이 진도가 나가며 내 머릿속에 떠오르는 수많은 의문들에 대한 즉각적인 피드백도 받기 힘들다. 이런 면에서 나는 수업보다는 혼자 공부하는 것을 더 좋아한다.
이런 면에서 F-lab은 수업이라는 단어보다는 멘토링이라는 단어가 더 어울린다. 이론 수업 때는 면접 형식으로 질의응답을 주고받았고 우리가 모른다고 판단되는 지식에 대해 설명해 주셨다. 그때그때 드는 의문점을 질문하면 바로바로 응답해 주셨고 내가 잘 못 생각하고 있는 점이 있다면 짚어 주셨다.

자바 기초부터 시작했다.

사실 처음 멘토링을 시작할 때, 자바 기본서 부터 시작한다는 것이 불만이였다. 멘토링을 시작하기 전에 첫 주제는 자바이고 "자바의 신"을 공부해 오라고 전달받았다. 자바 서적을 읽을 때 내 목표는 "자바 주제를 최대한 빨리 지나쳐 가는 것. 가능하다면 자바를 건너 띄는 것"이었다. "그 비싼 돈을 내고 언어 수업을 받다니? 인터넷에 언어 수업들이 얼마나 많은데 굳이 이 비싼 돈을 내고 여기서 언어를 배워야 할 이유가 있나?" 그래서 나는 자바 진도를 최대한 많이 빼고 나서 첫 수업에 들어갔다. 질문에 잘 대답하는 모습을 보여주고 최대한 빠르게 자바 진도를 넘기고 싶었다. 어쩌면 자바 진도를 건너 띄자고 제안할 수도 있으려나 생각하면서 첫 수업에 들어갔지만 계획은 완전히 박살 났다. 질문에 제대로 대답하는 게 하나도 없었다. 아는 내용에 대해서도 제대로 대답하기 어려웠고 JVM관련 질문들이 들어왔지만 JVM에 대해서 아는 내용이 없었다. 내가 설명하는 능력이 얼마나 형편없는지, 얼마나 대충 공부했는지를 잘 알게 된 부분이었다. 자바 멘토링을 건너 띄겠다던 꿈은 접고 다시 천천히 자바 공부를 해야겠다고 결심한 순간이었다. 사실 이때 까지는 언어 공부가 왜 중요한 지 몰랐다. 언어 잘 몰라도 기본적인 기능들만 활용해서 지금까지 개발을 잘 만 해왔으니.. 이런 내용을 왜 알아야 하는 건지 이해하지 못했다. 다만 면접에 나온다니까, 그리고 공부하다 보니 재밌어서 성실히 멘토링을 준비했다. 추후 프로젝트로 넘어가고 나서 이때 열심히 공부한 자바 지식이 빛을 바란 순간이 왔다. A라는 방식보다 B라는 방식으로 짜는 코드가 더 훌륭하다는 이야기를 할 때, 자바의 개념들을 모르고 있다면 이해할 수 없는 내용들이 빈번히 등장했다. 나는 언어 공부의 중요성을 몰랐기에 이번 기회가 아니었으면 취업할 때까지 자바를 깊게 공부할 생각을 못했을지도 모른다. 그런 면에서 자바 기초부터 시작한 커리큘럼은 나에게 큰 도움이 되었다.

끊임없이 토론해 볼 수 있었다.

나는 멘토1 멘티2로 구성되어 1:2멘토링을 받았다. (현재 f-lab은 1:1 멘토링 형식으로 바뀌었다고 한다)  다른 멘티분들의 PR기록을 볼 때, 우리 팀은 멘티끼리 코드 리뷰를 적극적으로 진행한 팀으로 보인다. 멘티끼리 코드리뷰를 진행하다 보면 수많은 의견 충돌이 일어난다. 이를 해결하기 위해선 내 의견을 정리해서 전달해야 하고 상대방의 의견이 어떻게 나온 것인지를 이해해야 한다. 내 의견이 왜 옳은지를 상대방이 이해할 수 있게 전달하는 것은 생각보다 어렵다.
이런 토론 경험이 커뮤니케이션 능력만 향상시켜준 것은 아니다. 스스로가 납득하는 것에 비해 남을 설득하기 위해서는 조금 더 고민해 보고 생각을 다듬어 봐야 한다. 또한 상대방의 의견을 이해하기 위해 내가 바라봤던 것과는 다른 관점에서 다시 코드를 바라보게 된다. 앞에서 1년간 API 상하차 작업만 해온 것 같다고 했는데 이번 프로젝트가 그와 달랐던 것은 여기에서 비롯했다고 생각한다. 내 의견을 정리하는 과정에서 "지금까지 내가 해왔던 방식이 정말 옳은 방식이 맞는가?"에 대해 고민하는 시간을 자연스레 가지게 된다. 상대방이 묻는 질문 때문에 내가 옳다고 생각했던 방식에 대해 다른 방향으로 생각해 보게 된다. 상대방이 리뷰해 준다는 것을 의식하기에 한 번 더 코드를 보고 PR을 보낸다. 이는 기계적인 코드 작성이 아닌 점점 성장하고 나아지게 해 주었다.

멘티끼리의 토론도 좋았지만 그만큼이나 좋았던 것은 멘토님의 의견이었다. 코드 리뷰에서 결론이 나지 않았던 다양한 문제들은 멘토님과의 세션에 가져가서 이야기했다. 거기서 주니어끼리는 생각하지 못했던 관점과 깊이에서 피드백을 받을 수 있었다. 이러한 피드백은 아직 대학생인 내가 어디 가서도 받을 수 없는 경험이기에 f-lab의 가장 큰 장점이라 생각한다.

 

멘토링 기록이 남는다.

멘토링을 받아서 좋은 이야기를 나눴더라도 잊으면 소용이 없다. f-lab 홈페이지에서는 녹화 음성과 스크립트를 제공해줘서 나눴던 이야기를 다시 들을 수 있다는 점이 좋았다.

3. 아쉬웠던 점

내 실력에 따라서 얻어가는 것이 달라질 수 있다.

나는 프로젝트 중에 삽질한다고 보낸 시간이 많았다. 테스트 코드 자체도 처음 작성해 보며 myBatis라는 기술도 처음 사용했다. 테스트 코드 작성법을 익히느라 한참의 시간을 보냈다. 서버 배포작업도 너무 오랜만에 해봐서 배포 작업에서 한참을 삽질했다. f-lab을 하기 전에 나는 Spring의 기초적인 기능을 잘 몰랐다. Spring Boot로 프로젝트를 진행한 경험은 있지만 Spring에 대해 공부한 것이라고는 youtube에 한두 시간짜리 튜토리얼을 본 것이 다였다. Spring을 공부하면서 몰랐던 기능이 너무 많았고 Spring에서 제공해 주는 기능들을 익히고 찾아보는데 시간이 자꾸 소요되었다. 이런 삽질은 f-lab전에 하고 오고 익숙한 상태였다면 더 피드백받고 싶은 내용들에 집중할 수 있었을 텐데 멘토링중 삽질한 시간들이 조금 아깝게 느껴졌다.

멘토링에서 더 많은 것을 얻으려면 멘토링 때 많은 질문을 해야만 한다. 그런 질문에서 멘토님의 생각과 경험을 많이 엿볼 수 있었고 이는 내게 분명 많은 도움이 되었다. 가끔씩 내가 조금만 더 똑똑했 더라면.. 내가 좀만 더 아는 게 많았더라면 더 의미 있는 질문을 던질 수 있었을 텐데.. 하는 게 아쉽다는 생각을 하곤 했다.

오직 F-lab에만 집중할 수 있는 상황이 아니었다.

F-lab을 시작할 때, 얼리버드 할인을 받기 위해서 4월 멘토링 시작으로 신청했다. 멘토링에 집중하기 위해 1학기는 휴학을 냈지만 9월부터 10월까지 2달간은 학교를 다니며 병행했다. 학교와 다른 토이프로젝트, 스터디를 병행하면서 진행하다 보니 멘토링 기간 내에 원하는 기능 구현을 완성하지 못했다. 특히 Push-Pull모델이나 성능테스트와 같은 작업은 멘토링 기간 동안 꼭 진행해보고 싶은 작업이었는데 못해서 아쉽다. 워낙 금액대가 높다 보니 내가 다시 저런 멘토링을 받을 수 있는 기회가 있을지 잘 모르겠다. 차라리 1학기 더 휴학을 하거나 다른 활동들을 잠시 멈추고 멘토링에 더 집중했더라면 멘토링 기간 동안 더 성장할 수 있었을 텐데라는 아쉬움이 남는다.

 

4. 얻은 것

멘토링을 진행하면서 얻은게 굉장히 많았다. 같은 멘티분과 활발히 논의하면서 의사소통 능력이 많이 성장했다고 느낀다. 또, 더 읽기 쉬운 코드를 위한 리펙토링, 내가 생각못한 시나리오는 없는지에 대해 고민하는 시간, 코드 리뷰와 멘토링 세션을 통한 토론등을 통해 기능 하나를 구현하더라도 이전보다 많은 관점에서 고민하는 습관이 만들어진 것 같다. 하지만 무엇보다 내가 가장 기쁘게 생각하는 것은 공부의 방향성을 잡았다는 것이다.

지원 동기에서 말했듯 멘토링을 지원한 이유는 내가 무엇을 공부해야하는 것인지를 잘 몰라서였다. 단순 노동으로 느껴지는 API 상하차 작업만 진행하다가 내가 부족한 것이 무엇인지, 개발을 잘 한다는게 무엇을 의미하는건지 모르겠었다.

멘토링을 진행하면서 피드백을 받고, 계속 생각을 공유하고 혼자 생각해보는 과정을 가지면서 자연스레 내가 부족한 지점들을 알게되었다. 내 성장을 위해 어떤 노력을 해야하는지가 명확해졌다는 느낌이 들어 기쁘다. 

 

반응형

댓글 영역