모르면 배우면 된다

1년 안에 두 팀을 겪은 신입 개발자가 눈물 흘리며 배운 것 본문

성장 이야기

1년 안에 두 팀을 겪은 신입 개발자가 눈물 흘리며 배운 것

Okguri 2022. 7. 12. 10:22

 

웰컴! 저의 개발쑈에 오신 것을 환영합니다. 

개발자로 커리어를 시작한 지 약 1년이 되어갑니다.

그동안 저는 두 개의 팀을 겪었는데요. 정말 파란만장한 경험들을 했습니다.

업무 스타일, 코딩방식, 도메인 지식까지 전부 다른 두 팀을 경험한 신입개발자의 눈부신(?) 성장이 담긴 회고를 재밌게 감상해주시면 감사하겠습니다. 


~개발인생 1막~


 

[입사 전 실력]

  • 국비 학원 6개월 수료 
  • HTML + CSS + JavaScript + SpringBoot + MyBatis로 게시판 만들 정도. 

[입사 ~ 2022.05]

  • 맡은 업무 : A 서비스 화면 프론트 개발, 백엔드 CRUD, 리포트 제작
  • 사용 기술 : React, JavaScript ES6, MySQL
  • 성과 : 6개 화면 제작 및 관리, 리포트 5개 제작 및 관리 

아래 리스트는 내가 이 기간 동안 배운 것들이다. 동료들의 친절한 가이드라인과 나의 피 땀 눈물이 합쳐진 결과다.

 

1. 디버깅
입사 전에는 개발자도구 활용법, 이클립스 디버거 모드 활용법도 몰랐다!

그전까지는 일일이 console.log() System.out.println()을 찍어보면서 디버깅했다.

입사 동기에게 이것저것 배우면서, 아, 학원 같은 곳에서 그냥 떠먹여주는 대로 공부하면 안 되겠구나,

세상에는 다양한 툴과 개발 방식이 있구나, 이것들을 내가 스스로 찾아서 학습해야 하는구나를 느꼈다.

 

2. 프로젝트 구조 파악하기 + React 
입사 전까지는 Java가 가장 익숙했다. 현재 프로젝트도 Java 개발자로 왔는데.

오자마자 시킨 것은 리액트였다. 디용. 저 JS도 잘 못하는데요 ? 공부해라. 네...! 이런 느낌으로 프론트 업무를 맡았다.

큰 프로젝트였기에, 처음 마주한 프론트 코드량도 방대했다. 뭐 뭐부터 봐야하지? 멘붕이 왔다.

정말 다행스럽게도... 다른 팀 선임 + 동기 + 프리랜서 분이 먼저 도움의 손길을 건넸다. 그들이 건넨 조언은 다음과 같다.

 

- 개발자도구로 이벤트 하나하나 브레이크 걸어가면서 흐름을 파악하세요.
- saga, redux 같이 복잡한 부분은 나중에 보셔도 돼요. 미시적으로 접근하지 말고,  크게 보세요.
- 어떤 코드가 어떤 이벤트에 쓰이는지 파악하세요.
- 공통 함수가 어떤 것이 있는지 확인해보세요.
- 가장 많이 쓰이는 라이브러리 매뉴얼을 보세요.

지금 생각해보면 거의 떠먹여준 수준이다.

거의 이 정도 되는 사명감이 아니었을까.. 동료들에게 압도적 감사.

그럼에도 작고 귀여운 신입이었던 나는 어질어질했다.

JS + React 문법을 전혀 몰랐기 때문이다.

리액트는 왜 이렇게 생겼지?  redux? useEffect가 뭔데 그래서.

우선 상대적으로 덜 익숙한 리액트 문법을 익힐 필요가 있었다.

그래서 Udemy에서 인터넷 강의를 결제하고 React 공부를 시작했다.

기초 지식을 채우니 코드가 쉽게 이해됐고, 직접 개발자도구로 이벤트를 돌려 보며 전체적인 흐름도 파악했다.

또 대부분의 화면에서 공통적으로 적용되는 함수(ex. form value 초기화)를 익히니 개발 속도가 상승했다.

 

신입 개발자에게 필요한 것 : 모르는 거 있음 찾아보고 물어보기, 너무 오랜 시간 질질 끌지 않기, 착실하게 보고하기... 그리고 머리 박고 부딪혀보기 ㅋㅋ

 

지나고 보니 최고의 학습 전략은 인강, 책 등으로 기초지식을 공부한 뒤, 직접 코드를 쳐보고 디버깅하는 거였다.

친절한 동료까지 옆에 있으니 무척 좋은 학습환경이었다.

처음에는 하나하나 도와주던 동기도, 내가 어느 정도 안다 싶었는지

"한번 끝까지 해보세요! 자기가 머리 박고 해야 실력이 느니까!"라면서 '머리 박기'를 권장했다. ㅋㅋㅋ

(학생 수준에 맞춰 가이드를 해주던 동기에게 코딩 교사를 진지하게 권유한 것은 번외)


그러나, 곧 한계에 부딪혔다.

 

3. JavaScript 
리액트 지식이 있어도 결국 기본은 JavaScript인 것이다.
데이터를 자유자재로 가공하는 기술이 필요하다는 것을 그 때는 몰랐다. 

타 스크럼에서 제작한 API를 내 화면에 뿌려줘야 하는 미션이 있었다.

그런데 난 JS의 객체와 배열을 제대로 활용하는 방법을 몰랐다. 

그래서 원하는 구조로 만드는 데 오랜 시간이 걸렸다.

그 과정에서 .map, .filter, .reduce 등 관련 함수들을 배워야겠다는 생각이 들었다. 

 

배울 게 끝도 없었지만! 객체와 배열에 대해 이해하고 나니, 웬만한 업무는 쉽게 처리할 수 있었다!

하지만 아직도 배울 게 너무너무 많은.......! (개인적인 한계를 꼽자면, 비동기가 어렵고, class를 잘 활용하지 못한다 ㅠ-ㅠ 아니 하면되자나~! )

 

[해당 팀에서 마주한 한계]

  • back의 경우, 중요한 쿼리 제작은 직급 높은 분들이 했기 때문에, 간단한 CRUD 작업 위주였다.
  • 쿼리를 제작할 기회가 적어, 업무 지식도 배울 기회가 적었다.  
  • 익숙해지고 난 뒤, 도전적인 과제가 적어 조금 지루했다.

그 런 데....
지루해하던 ... 나에게....  엄청난 변화가 찾아오는데....(두둥탁)
바로 팀 변경!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (쩌렁)

 

사유는!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

해당 팀 사원이 급하게 퇴사했!!!!!다 !!!!!!!!!!!! 그래서 속된 말로 땜빵을... 메꾸게 된 거다.

일주일 만에 인수인계를 호로록 받았다. 

사실 일주일 만에 제대로 된 인수인계를 준비/수행할 시간이 날 수가 없다. 사실상 못 받은 거라고 생각하면 된다. 

 

당시 느낀 날것의 위기감은 다음과 같았다. 

- 그 팀 도메인을 전혀 모른다

- 그 팀은 프론트 컴포넌트 구조도 기존 팀과 다르다!

- 그 팀은 SQL이 빡센데 난 SQL 많이 다뤄본 적 없다고! 

- 나 그 팀 사람들이랑 일해 본 적 없어! 이거 언제 또 손발 맞추지..? 오픈이 곧인데.. 

 

지금 다시 생각해보면 어느 회사를 어느 팀을 가든

직접 일에 착수하기 전에 아무것도 모르는 건 똑같은데, 신입이라 더 겁을 먹은 거 같다.

근데, 위기는 기회라고 ^^ 이 팀 변경으로 더 많이 성장할 수 있었던 거 같다.

블로그에 쓰기는 어려운.... 정말 많은 일들이 있었다.. (아련

눈물이 앞을 가리네