F-lab을 지원하게 된 이유

Arthur·2023년 3월 24일
3

F-lab

목록 보기
1/2
post-thumbnail

(F-lab은 1:1 혹은 1:2로 진행되는 개발자 멘토링 교육기관입니다.)

저는 예전에 부트캠프를 한번 들었던 적이있고,
백엔드 개발자로 9개월 정도 업무를 한 적이 있습니다.

제가 F-lab에 들어가 과정을 듣기 전에 주변에서 자주 들었던 말이 있습니다.
"교육기관을 한번 들었는데, 또 들을 필요가 있어?"

이 말을 듣고 나도 고민을 많이 했습니다.
결론적으로 과정을 들으면서 만족하고 있습니다.

이제부터 제가 고민 했던 부분과 만족을 하고 있는 이유를 하나씩 적어 볼 예정입니다.

굳이 교육기관을 또 듣는 이유가 있어?


저는 전 회사를 다니면서 만족스러운 회사 생활을 했다고 얘기할 수 없었습니다.
'회사가 안좋다', '개발자 대우가 안좋다' 이런 말들이 아닌 나 자신에게 만족하지 못했습니다.

회사에 들어가서 업무를 수행하면서 부족한 역량들이 눈에 보였습니다.

  1. CS지식 부족
  2. 자바(주 언어)에 대한 기초 지식 부족
  3. 잘못된 개발 공부 습관

이런 문제들은 각각의 문제라기 보다는 서로가 엮이면서 더 큰 문제가 되었습니다.

1. CS지식 부족

회사에서 회의 및 고객과의 미팅을 하면, 진행 중 나오는 용어에대해 이해 하기가 어려웠습니다.

회의에서 오가는 용어들은 결국에 CS지식을 바탕으로 나오는 내용들이었습니다.
회의에 참석하는 분들은 참석자들이 기본 지식이 있다고 판단해서 짧은 시간 의사를 최대한 표현하기 위해 전문용어를 사용합니다.

결국에 CS지식을 모르면 의사소통 자체가 힘든 것이였습니다.

이런 문제는 요구사항을 이해하는데도 문제가 생겼습니다.
회의에서 나온 내용과 요구사항을 바탕으로 구현을 하는데도 문제가 생겼습니다.

설령 구현을 해서 작동이 잘 된다고 해도 문제가 끝나는게 아니였습니다.

제가 구현한 것들을 동료 개발자 및 고객에게 설명해야 하는 상황이 많았습니다.
이 때 누군가에게 설명을 하기 위해서는 바탕 지식이 필요하다는 것을 느꼈습니다.
특히 비개발직군 분들에게 설명을 하기위해서, 내가 더 많이 알아야 설명을 할 수 있다는 것을 뼈저리게 느끼게 되었습니다.

불행 중 다행으로 좋은 동료와 갑질이 적은 친절한 고객 덕분에 큰 문제는 없었습니다.
문제는 제 자신이 느낀 위기감이였습니다.

 

2. 자바(주 언어)에 대한 기초 지식 부족

자바(Java)에 대한 지식이 부족하다고 느낀 이유는
요구사항에 맞춰서 기능을 구현할 때 발생한 OOM(OutOfMemory) 에러에 대한
대처를 제대로 하지 못한 것입니다.

OOM이 발생하면서 dump 파일이 생성이 되는 것도 제대로 알지 못했고,
그 dump 파일을 참고해서 문제를 어느정도 해결 해볼 수 있다는 것도 몰랐었습니다.

우선적으로 가장 큰 문제는 OOM이라는 에러를 제대로 이해하지 못한 것이였습니다.
JVM에 대한 이해도 부족하고 Heap 메모리와 GC에 대해 잘 몰랐습니다.

교육기관에서 기능들을 구현하면서 무심코 지나간 책의 내용들이
실무에서 칼이 되어서 다시 저에게 날라온 것입니다.
만약에 깊이있게 공부를 했었다면 찝찝하게 해결하고 끝나는 일은 적었을 것 같다고 느꼈습니다.

 

3. 잘못된 개발 공부 습관

첫번째 교육 기관(부트캠프)을 들으면서 저는 기능 구현에만 집중하고
깊이에 대해서는 고민을 거의 하지 않았던 것 같습니다.

당연히 기능 구현 능력도 중요하기는 하겠지만, 그 외에도 중요한게 상당히 많았습니다.

  • 구현한 기능에 예외 처리는 꼼꼼하게 했는지?
  • 구현한 기능에 성능적인 이슈를 발생할 위험이 있는 것은 없는지?
  • 프로젝트 사이즈에 비해서 너무 큰 도구를 사용한 것은 아닌지?
    (프로젝트에서 발생하는 비용과 연결되는 문제)
  • 에러가 발생 했을 때 대처 방법은 강구를 했는지?
  • 구현한 기능에 대해 팀원들에게 내용을 공유할 수 있는지?
    (문서를 통한 공유 혹은 구두로 내용 공유 시)

단순히 만들면 끝이 아니라, 하나의 프로덕트이기 때문에 그 이상을 생각해야 했습니다.
이정도까지 생각을 하기 위해서는 단순히 기능 구현에만 집중하는 공부 방법은 오히려 빈 깡통이 될 수 있는 위험이 되었습니다.

마치 덩치는 엄청 크지만 실용성은 하나도 없고, 오히려 몸이 쇠약한 상태 처럼 말입니다.

 

그러면 어떻게 해쳐나갈까?


결국에 기초부터 다시 차근차근 쌓아가는 것 밖에 없다고 생각했습니다.

그런데 단순히 유명한 CS책과 자바관련 서적을 공부 하는 것 뿐만 아니라,
이미 내가 가진 고민을 해결해 개발자로 자리를 잘 잡고 있는 분들에게 조언을 받으면 더 좋겠다고 생각했습니다.

개발자 커뮤니티에서 취준생 때부터 봤던 분들이 있었습니다.
처음 같이 스터디를 했을때도 어느정도 격차가 있기는 했지만,
시간이 갈수록 그분들과의 격차가 더 벌어졌습니다.

왜 그런지 이유를 고민하고 유심히 관찰해본 결과
그분들은 조언을 꾸준히 요청하고 피드백을 받는 사이클이 빠르다는 것이였습니다.
그러면서 방향성도 잘 잡혀져가게 된 것 같다고 느꼈습니다.

저는 깊은 공부를 하면서 버려야 할 것은 버리고, 집중해야 할 부분으로 나아가기 위해
F-lab 이라는 교육기관에 한번 더 비용을 지불하고 시작하게 되었습니다.

 

구체적으로 어떻게 하고있나요?


제가 하고 있는 것을 나열하면 아래와 같습니다.

  • 휘발성 지식 습득이 아닌, 책을 통한 지속성 지식 습득

    • 책을 통해 저자(프로그래머)의 생각이 담겨 있는 내용을 읽고, 다양한 인사이트 습득
    • 코딩에 대한 지식 습득 뿐만 아니라, 개발에 전반적인 지식 습득
    • 읽고 끝나는게 아닌 노션에 내용 정리 => 링크
  • 공부한 내용을 도식화를 통해 시각적으로 내용 습득 및 연결성 이해

  • 논의 내용을 통해 진행되는 토의방식 스터디 진행 => 노션 링크

    • 공부한 내용을 발표 하는 방식이 아닌, 각 챕터에 나오는 의문들을 팀원들과 얘기를 나누면서 꼬리에 꼬리를 물고 질문을 던지는 진행 방식
    • 논의 내용에 바탕이 되는 레퍼런스를 팀원들에게 공유
    • 공부하면서 '왜' 라는 질문을 계속 던지면서 깊게 파고드는 공부 방식
    • 정답을 찾기 보다는 계속 파고들면서 추론하는 능력 향상

위와 같은 방식들은 F-lab을 하면서 배운 내용들을 기반으로 직접 해본 방법들입니다.
이 외에도 멘토님이 주시는 논의 내용, 키워드를 통한 공부,
프로젝트를 진행하면서 받는 코드리뷰를 통한 빠른 피드백 등을 통해 기반을 다져가고 있습니다.

꼭 F-lab이 아니더라도 공부 습관이 중요하고 그걸 잡아줄 수 있는 곳이 있다면,
(돈을 지불하더라도)빠르게 합류해서 습관을 잡아야하 하는 시기라고 생각했습니다.
그리고 저는 시간을 돈으로 산다는 것을 위와 같은 방식으로 접근했습니다.

제 주변에서 거금을 내고 영어학원을 다니는 분들을 보고 처음에는 이해를 하지 못했었습니다.
얘기를 들어보니 돈도 중요하지만 시간이 더 중요하기 때문에 돈을 지불하더라도
나보다 먼저 배우고 실력 있는 사람에게 배워 시간을 단축한다고 했습니다.

profile
기술에 대한 고민과 배운 것을 회고하는 게임 서버 개발자의 블로그입니다.

0개의 댓글