Post

세션 다시보기 : 강의 링크 (인프런 로그인 필요)

어느 날 고민 많은 주니어 개발자가 찾아왔다: 주니어 시절 성장과 고민들

진행자: 김영한 님

성장을 위해 중요한 것은 기술비즈니스 크게 두 가지가 있으며, 이 둘은 똑같이 중요하다.

1. 기술

어떤 기술을 공부해야할까?

  1. 팀에서 사용하는 기술
  2. 업계에서 최신 유행하는 기술

경우 1. 기술 공부를 안하는 개발자

  • 기술을 공부하지 않아도 필요한 업무를 모두 처리하는 것이 가능하다.
  • 기술을 따로 배우지 않아도 팀의 동작하는 코드를 통해 배울 수 있다고 생각한다.

일단 주어진 일은 꾸역꾸역 처리할 수 있기 때문에 이러한 생각에 빠지기 쉽다. (나도 당신도!)

한계

  • 팀의 코드를 보고 따라하는 것은 배운 것이 아니라 Copy & Paste를 한 것이다.
  • 기술의 원리를 알지 못하기 때문에 어려운 문제의 근본 원인을 파악 및 해결하는 것에 어려움을 겪는다.
  • 팀에 새로운 기술을 도입하려 할 때 주저한다.
  • 1년차 경험을 10번 반복한 10년차가 된다.

경우 2. 업계 최신 기술만 찍먹하는 개발자

한계

  • 기술을 실전 활용하는 것까지 이어지지 않아서 기술의 깊이가 만들어지기 어렵다.
  • 팀에서 사용하는 기술을 정작 이해하지 못한 상태라 업무 성취도가 낮다.
  • 새로운 기술을 배워도 팀에 도입할 수 없다. (팀에 신뢰를 주지 못하기 때문)

경우 3. 팀 기술을 잘 이해하는 개발자

  • 팀 업무를 원활하게 진행하는 것은 물론, 팀에서 기술 문제가 발생했을 때 원인을 정확히 파악해 해결할 수 있다.
  • 팀에서 점점 중요한 업무를 맡게 되고, 결과적으로 평가와 연봉에 반영된다.
  • 팀에 영향력을 끼쳐 새로운 기술, 개발 문화를 도입하기 쉬워진다.

결론은 레거시라도 당장 팀에 필요한 기술부터 학습하는 것이 좋다.

그 다음으로는 업계에서 사용하고 있는 메인 기술을 학습하면 된다. 향후 팀에 도입될 가능성이 높고, 이직 후 사용할 확률이 높기 때문이다.

마지막 순서로 직무와 관련이 적은 기술이나, 새로 등장한 최신 기술을 익히는 등 점점 범위를 넓혀나가는 쪽으로 접근하는 것이 좋다.

팀 기술 학습의 장점

1. 동기부여

  • 당장 나의 업무 성과에 영향을 줄 확률이 높다.
  • 성취감 및 성과로 인한 자연스러운 동기부여가 이루어진다.

2. 자연스러운 학습 사이클

  • 이론과 실습의 완벽한 조화를 통해 자연스러운 학습 사이클을 만들 수 있다.
    • 이론 학습 → 실전 적용 → 부족한 부분을 찾아 재학습 → 반복…

어디까지 학습해야 할까?

기술의 기본 원리를 이해하고 깊이 있게 학습해야한다.

  • 해당 기술을 사용해 밑바닥부터 스스로 완성할 수 있어야 함
  • 해당 기술이 왜 필요한지 설명할 수 있어야 함
  • 해당 기술을 사용하면서 문제가 발생했을 때, 해결사 역할을 할 수 있어야 함

최소한 이정도는 할 수 있게 되고나서 다른 기술에 눈을 돌리자.

2. 비즈니스 이해

기술 학습에 시간을 투자하는 것 만큼 비즈니스 이해를 위한 투자도 중요하다.

비즈니스 지도 만들기

개발자가 비즈니스를 이해한다는 것은, 비즈니스와 개발이 어떻게 연결되어 있는지를 나타내는 큰 지도를 그리는 것과 같다.

내 업무가 지도에서 어느 부분인지 알 수 있어야 한다.

STEP 1. 비즈니스 내용 이해하기

  • 기획자, 팀장, 문서 등 다양한 경로를 통해 비즈니스에 대해 듣고 이해한다.
  • 비즈니스가 제공하는 어드민 기능, 사용자 기능을 하나하나 다 사용해보고, 각 기능이 어떤 목적으로 사용되는지 이해한다.
  • User Flow를 모두 따라가 보면서 서비스의 흐름과 실제 작동을 파악한다.

STEP 2. 비즈니스 구현 이해하기

스스로의 방식으로 아래 두 가지를 그려낼 수 있어야 한다.

  1. 핵심 데이터: 서비스를 위한 DB의 핵심 테이블, 핵심 필드 정리 (백엔드 관점)
  2. 핵심 업무 프로세스

비즈니스를 알아야 하는 이유

어디까지 질문해야 할지 잘 이해할 수 있다.

  • A → B → C의 흐름에서 B에 대한 질문이 있을 때 고맥락으로 정확히 필요한 것을 질문할 수 있다. A/C를 배제하고 대뜸 B를 물어보면 질문 내용을 파악하기도 어렵고, 도움이 되는 답을 얻기는 더 어렵다.
  • 시간이 지날수록 비즈니스와 아키텍처에 대한 이해도가 높아진다.
  • 변경 사항이 있을 때, 변경이 미치는 영향 범위가 어디까지인지 이해할 수 있다.
  • 아키텍처 변경과 같은 큰 업무, 메인 업무 등 도전적인 업무가 가능해진다. (역량 향상)
  • 비즈니스에 적용할 수 있는 다양한 아키텍처들의 트레이드-오프 관계를 이해하여 합리적인 의사결정을 할 수 있다.

3. 성장을 위해 필요한 태도

1. 약간의 용기

img 출처: https://positivepsychology.com/comfort-zone/

Comport zone을 벗어날 때(지금까지 하는 것과 다른 것을 시작할 때) 역량이 성장한다.

3~6개월 차가 되어 기술과 비즈니스에 대해 어느정도 이해가 가기 시작하면 약간의 용기를 내어 중요한 일을 도전해 볼 수 있어야 한다.

본인이 완벽하게 알고 있지 못하더라도 과감하게 메인 업무를 도전해 보아야 한다.

2. WHY?

결국 근본적인 이유를 알아야 올바른 대안을 찾을 수 있다.

WHY가 중요한 이유

  • 동기부여
    • 내가 이 일을 왜 하지?를 이해해야 동기부여가 생길 수 있다.
  • 기술역량성장
    • 기술을 왜 사용하는지 고민하는 것을 통해 기술 간의 트레이드-오프 관계를 파악
    • 고민을 통해 자신만의 판단 기준이 생김
    • 좋은 코드를 쓰는 것을 넘어, 좋은 해결책을 제시할 수 있음

#4. 주니어 시절 자주 고민하는 문제들

CASE 1. 환경

환경이 안좋은 것은 스스로의 의지로 극복할 수 없다.

본인의 의지를 믿지 말고, 좋은 환경을 찾아 떠나는 것이 좋다.

좋은 환경이란?

지금 좋다기 보다는, 앞으로 일하기 좋은 방향으로 바꾸어 나가려고 노력하는 조직

  • 내가 바꿀 수 있는 것들이 많은 조직
  • 고민하고 도전할 때 응원해주는 조직

CASE 2. 생각과 고민이 너무 많은 경우

고민은 어떻게든 성장에 도움이 된다.

다만 너무 고민이 많아 업무, 학습의 속도가 너무 느린 경우 고민은 하되, 가장 단순한 방법을 선택해서 실행하는 것을 추천한다.

실제 결과물 없이 고민하는 것과, 결과물을 두고 고민하는 것은 전혀 다른 문제이다.

먼저 실제로 만들어 봐야 더 나은 방향/구조를 볼 수 있다. 볼 수 있다면 개선해 나가면 된다.

CASE 3. 조급한 마음이 들 경우

거북이 마음을 갖는 것이 중요하다.

속도 ≠ 깊이 - 30분 강의를 1시간 넘게 걸려서 듣더라도 깊게 이해하는 것이 중요하다. 배속 걸지 말자.

인간의 CPU(뇌)는 하나 뿐이고, 컨텍스트 스위칭 비용이 매우 크다.

인간이 멀티태스킹을 할 경우 오히려 효율이 급격히 떨어진다는 뇌과학 연구결과가 이를 뒷받침한다.

느린 것 같아도 우직하게 한번에 하나씩 배워가는 태도를 갖자

코멘트

염원하던 취업에 성공하고, 첫 출근에서 그냥 멍때리면서 헛되이 시간을 보낸 것 같다.

회사는 나를 기다려주지 않는 만큼, 이대로 시간을 보내면 안될 것 같았다.

어떻게 빠르게 역량을 성장시켜서 제 몫을 할 수 있을지 고민하다가 INFCON 다시보기에서 좋은 세션을 발견하여 시청하고, 정리하게 되었다.

조급해하지 말고 당장 실무에 필요한 것부터 차근차근 익혀나가는 것을 목표로 해야겠다.

지금까지 잘 해온 만큼 앞으로도 잘 할 수 있을 것이다!

This post is licensed under CC BY 4.0 by the author.