프로온보딩 시작 전 이 선택이 정말 맞을까? 고민과 걱정을 계속했다. 부트캠프를 졸업했기에 단순하게 생각하면 부트캠프와 비슷하게 학습하고 프로젝트를 수행하지 않을까? 과연 이 과정이 나에게 큰 도움이 될까? 하는 생각이 들어서 걱정이 들었다. 하지만 부트캠프와 프리온보딩의 성격은 완전히 다르다. 걱정과 달리 너무 큰 성장을 했기에 혹시나 고민하는 사람이 있다면 이 글을 읽고 도움이 됐으면 좋겠다.
개발자에게 성장은 두 번 세 번 말해도 입이 안아플 정도로 너무 중요하다. 그런 의미에서 프리온보딩은 다양항 방면으로 성장 가능한 최고의 환경을 제공했다. 그 이유는 다음과 같다.
기업 과제를 통한 실 서비스 수준의 프로젝트 경험
실제로 한 기업의 직원이 된 것 처럼 프로젝트에 임하고 도전할 수 있다. 이 것이 정말 좋은 기회인 이유는
다른 사람은 모르겠으나 내가 얻은 모든 인사이트 이 3가지 이유로 부터 발생했다. 이 처럼 실제 직원의 위치에서 프로젝트를 바라보고 임할 수 있는 점은 생각하기에 따라 개발 스킬 외 여러 방면으로 성장할 수 있는 기회가 된다.
특히 객관적으로 현재 상황을 파악하고 개발 스킬 외적으로 프로젝트 완성도를 높이기 위해 논의하고 적용했던 과정들이 앞으로 기업에 입사해서도 큰 도움이 될 것이라 확신한다. 실제로 우리 팀은 효율적인 시스템을 통해 점점 더 높은 수준의 프로젝트를 완성 할 수 있었다. 프로젝트가 궁금하면 "클릭!"
2기 기준으로 17개의 기업이 참여했고 8개의 팀프로젝트와 1개의 개인 프로젝트를 완수했다. 우리팀은 프로젝트 성향에 맞게 유리한 기술스택을 논의하고 적용했다. Next.js, Typescript, Css 라이브러리 등 여러 방면으로 새로운 스킬을 접하고 적용하기 때문에 기술에 대한 이해력도 급 성장하게 된다.
마지막으로, 2일 안에 1개의 프로젝트를 완성해야 하기 때문에 밤을 새는 일이 빈번하지만, 이를 극복할 의지만 있다면 개발을 시작한지 3달된 초보자도 폭풍 성장을 이뤄낸 모습을 바로 옆에서 지켜봤기에 적극 추천한다.
팀에서 중간에 도입했던 플래닝 포커라는 시스템이 있다. 이 시스템은 프로젝트 규모를 객관적으로 산정하고 팀원들과 공유하기 위해 사용된다. 우리 팀원은 모두 주니어 개발자이기 때문에 자신의 능력을 객관적으로 평가하기 힘들었다. 그래서 플래닝 포커를 도입하여 미리 개발 규모를 산정해보고 생각했던 바와 결과가 얼마나 다른지 그 차이를 점점 좁혀가는 연습을 했다. 우리는 자신의 능력뿐만 아니라 팀원들의 능력치도 파악할 수 있게 되었고, 이로써 능력치에 맞는 적절한 기능 분배 및 프로젝트 일정 관리도 수월하게 할 수 있었다.
뿐만 아니라, 주니어 개발자 수준의 80명을 선발했기에 이들의 기량을 파악하여 나의 위치도 객관적으로 판단할 수 있게 된다.
플래닝 포커는 Kakao-TECH: https://tech.kakao.com/2020/09/08/planning-poker/ 를 참고했습니다.
마지막으로 팀원을 뽑은 이유는 여러 사람과 머리를 맞대고 고민하는 과정이 혼자서 생각할 수 있는 범주를 넘어 새로운 인사이트를 가져다 주기 때문이다. 단순하게는 트러블 슈팅 부터, 팀원이 사용해야할 공통 함수를 생각하고 개발 우선순위 고려하기, 개발에 대한 마음 가짐에 대한 인사이트 등 개인 프로젝트와 비교해 팀 프로젝트를 통해 얻을 수 있는 경험이 있기에 팀 프로젝트를 꼭 경험해보길 추천한다!!
우리 19조 팀에 대해 소개하자면, 앞뒤 안가리고 프로젝트 완성에 집중하는 3명과 내일을 기약하며 컨디션을 조절할 줄 알았던 1명의 조합이었다. 이 네명은 큰 시너지를 발휘했다. 부족한 개발 기간임에도 밤을 새워가며 프로젝트를 완성시키려는 3명의 의지가 모여 모든 요구사항을 해결했고 배포까지 성공할 수 있었다. 또한 컨디션을 생각하는 1명의 팀원이 있었기에 밤을 새우는 것이 궁극적인 해결책이 아니라는 점을 인식할 수 있었다. 결론적으로 크고 작은 논의를 통해 효율적인 협업 환경을 구축했고 개발 능력치를 끌어올리는 방법을 찾아 낼 수 있었다. 면접용 협업이 아니라 협업을 직접 경험하기 때문에 중요성을 인지하게 된다.
과정은 많이 생략되었지만 협업 과정 일부 경험담 보러가기
짧은 개발 기간이 가져다주는 장점도 있지만 단점도 있다.
최대한 노력함에도 새로운 기술에 대해 깊게 파고들 시간이 부족하다. 적당한 이해를 기반으로 빠르게 도입후 부족한 지식을 추후에 채워넣어야 한다. 예를들어, 한 기업 과제에서 Next.js를 처음 도입해 봤는데 공식 문서를 읽다보면 CSR이 필요한 순간 SWR 이라는 라이브러리를 사용하기를 강력 추천하고 있다. 캐시된 데이터를 기반으로 렌더링 후 비교 검증이 끝난 응답 데이터로 재랜더링하기 때문에 사용자에게 보다 매끄러운 경험을 선사할 수 있다는 점이 매력적이다. 이를 비롯한 핵심 기술에 대해서 빠르게 습득후 사용해야 한다. 자연스럽게 해당 기술을 더 깊이 알기 위해서 주말에 학습하게 되는 구조다.
결과적으로 스스로 검증이 덜 된 기술을 사용했기에 아쉬운 것이다. 만약 실제 현업에서 짧은 기간 내에 새로운 기술을 습득해야 한다면, 안전한 서비스를 위해 어떤 방법을 동원해서도 위의 수준보다 더 철처하게 기술을 검증하고 그 후에 사용해야할 것이다.
취업 후 좋은 팀원이 되자!!! 파이팅!!!