Skip to main content

7주 차 신입 프론트엔드 개발자, 온보딩 적응기

· 22 min read
조영동
웹프론트엔드팀

안녕하세요! 비브로스 웹프론트엔드팀에 합류하게 된 조영동입니다.

약 7주 동안 신입 개발자 온보딩 프로세스를 거치며 느꼈던 경험과 제 생각을 나눌 기회가 돼서 영광입니다!

그럼 본격적으로 제가 경험한 7주간의 온보딩 과정을 소개하도록 하겠습니다.😁

1

사진 출처 : https://24ways.org/2017/levelling-up-for-junior-developers/

1. 7주 동안 경험한 것

체계적인 온보딩 프로세스

신입 부스터에게 무려 10단계의 온보딩 프로세스를 제공해서 온전히 기술에 대한 적응 기간을 주는 점이 좋았습니다. 아무래도 개발자로서는 첫 입사이기 때문에 모르는 부분이 많아서 걱정됐습니다.

하지만 온보딩 과정에서 한 챕터마다 해야 할 부분이 분명했기 때문에 과정을 진행하면서 완료 표시를 누를 때마다 성취감을 느낄 수 있어서 좋았고 실무가 어떻게 진행될지 확인할 수 있었습니다.

처음 접한 Angular 프레임워크

온보딩 과정 중 특히 앵귤러에 대한 걱정이 이만저만이 아니었습니다. 앵귤러는 처음이고 생소한데 그동안 개발 공부를 하면서 프론트엔드 삼 대장 중 가장 러닝 커브가 높은 프레임워크라고 많이 들었던 터라 낯선 프레임워크를 접하는 불안감이 있었습니다.😱

좋았던 점

2

  • 프레임워크만의 강점

    앵귤러가 모든 부분을 지원하는 프레임워크라서 초기에 어렵다는 말이 많지만, 유지보수할 때 리액트보다 오히려 쉽다는 의견이 많습니다. 오히려 자유도가 없는 프레임워크기 때문에 프레임워크 특성상 코드 작성에 있어서 정형화된 패턴이 있기 때문에 유지보수에 특화된 장점이 있는 것 같습니다. 이 부분이 사실일지는 실무를 경험해보면서 제가 직접 확인해봐야겠습니다.🤣

  • 친절한 공식 문서

    아직은 어렵긴 하지만 앵귤러 공식 가이드가 초심자가 쉽게 따라 할 수 있도록 작성되어 있어서 생각보다 초기에 받아들이기 쉽다고 느꼈습니다. 물론, 이후에 배워야 할 게 많다는 점을 체감할 수 있었지만, 공식문서가 어떤 문서보다 보기 편하게 작성돼서 잘 읽혔고 라이브 예제도 첨부되어 있어서 어떻게 동작하는지 실행해 보며 쉽게 이해할 수 있었습니다.

어려웠던 점

  • 진짜 배울 게 많은 러닝 커브😂

    초반에는 앵귤러 가이드에서 튜토리얼을 진행하면서 객체지향 방식을 채택해서 사용한다는 점, constructor에서 의존성을 주입할 수 있는 점, 템플릿과 CSS가 분리된 형태라는 점을 제외하고 리액트와 비슷한 점이 많다고 생각했습니다.

    그런데 이후에 RxJS, Form, Router, Pipe, directive, operator 등 앵귤러에서 새롭게 배워야 하는 부분들이 계속 추가되는 것을 확인하면서 프레임워크답게 정말 소소한 것까지 많은 것을 제공하기 때문에 시작 지점에 배울 게 진짜 많다는 것을 느낄 수 있었습니다.

  • 최신 자료 부족

    앵귤러는 자료가 부족하다는 말을 SPA 삼 대장과 비교하면서 많이 들었습니다. 그래도 앵귤러가 가장 오래된 프레임워크로 알고 있었기 때문에 리액트보다 상대적으로 자료가 적다는 의미가 아닐까 추측했었는데 생각보다 더 자료가 부족했습니다.

    앵귤러 공식 가이드북은 초심자도 쉽게 접근할 수 있도록 작성되었지만, 오류가 발생했을 때 검색하면 다른 프레임워크는 최신 문서가 많아서 해답이 비교적 명확하게 나오는 것에 비해 앵귤러는 최신 문서가 상대적으로 적은 편이라서 검색하는 시간이 상대적으로 더 오래 소요됐던 것 같습니다.😥

Angular보다 더 생소한 RXJS

3

사진 출처 : Angular- Introduction to Reactive Extensions (RxJS)

Angular를 접하면 꼭 같이 학습해야 하는 부분이 RxJs(Reactive Extensions For JavaScript) 입니다. Angular는 들어봤지만 RxJs는 생전 처음 들어보는 개념이라 더 생소하게 다가왔습니다. 😱

Rxjs는 비동기 프로그래밍 패러다임 중 하나로 데이터 스트림을 Observerble 객체로 만들어서 일관된 방식으로 안전하게 데이터 흐름을 처리할 수 있는 라이브러리입니다. 모든 것을 스트림이라는 데이터의 흐름을 중심으로 처리하기 때문에 지금까지 경험한 프로그래밍 패러다임과 너무나 달라서 초반에 혼란스러웠습니다. 하지만 많은 자료를 참고하면서 가장 확실히 와닿았던 설명은 아래와 같습니다.

방송국의 예에서 TV 방송국은 Observable이고 TV는 Observer며 영상 정보 프레임은 Observable이 방출한 notification이라고 할 수 있다. (모던 자바스크립트 Deep Dive)

좋았던 점

  • 모든 데이터를 Observable로 처리하여 심플하다

    함수호출, 이벤트, 콜백, 프로미스를 모두 Observable로 처리해서 데이터 스트림 내에서 단순하게 처리가 가능하여 비즈니스 로직에 집중할 수 있다는 점이 좋았습니다.

  • 일관된 결괏값을 받을 수 있다.

    RxJs는 순수함수를 지향하고 Observable 객체가 immutable이기 때문에 같은 입력이 주어지면 항상 같은 출력이 반환되기 때문에 side effect가 발생하지 않고 원하는 결괏값을 받을 수 있는 함수를 만들 수 있어서 좋았습니다.

어려웠던 점

  • 초기 학습이 어렵다.

    앞에서도 나와 있지만 새롭게 경험하는 프로그래밍 패러다임이기 때문에 초기 학습에 어려움이 있었습니다. 앵귤러와 마찬가지로 자료가 많지 않은 터라 초기에 이해하기 어려웠지만 잘 정리된 관련 책과 유튜브를 통해 RxJs에 대해 조금씩 이해할 수 있었습니다.

가이드를 진행하다가 갑자기 Observable과 mergeMap이 나왔을 때는 스트림 개념을 모르는 상태라서 이해가 되지 않아 우왕좌왕했었는데 친절히 팀장님이 Rxjs에 대한 특강을 손수 그림을 그리며 해주셔서 초반 개념 파악에 도움이 많이 됐습니다.. 🙏

  • RxJS를 배우기 전 참고할만한 자료
    • 쉽게 써봅시다. RxJS! - 손찬욱

      40분이지만 Rxjs를 너무나 명쾌하게 설명해주셔서 시간 가는 줄 모르고 볼 수 있었습니다!

      Rxjs가 처음에 이해가 안 되는 분은 보시는 걸 추천해 드려요 👍

2. 좋았던 점

Upsource를 통한 코드 리뷰 (feat. 성장을 위한 피드백)

비브로스에 합류하며 가장 기대했던 점은 다름 아닌 코드 리뷰 시간이었습니다! 🔥

주니어 개발자에게 가장 큰 성장의 장애물은 메타인지의 부족이라고 하죠. 내가 뭘 모르고 있는지 모르는 게 가장 큰 문제라고 할 수 있습니다.

제가 나름대로 고심하고 작성한 코드를 개선할 방법과 발견하지 못한 작은 부분 하나하나 까지, 꼼꼼하게 피드백을 받을 수 있어서 어떤 부분을 제가 간과하고 있었고 개선할 수 있는지 알 기회가 돼서 개발자로서 성장에 큰 보탬이 되고 있습니다!!

  • 기억에 남는 코드 리뷰
    • 안티 패턴에 대한 코드 리뷰
      • 매번 아무 생각 없이 사용하던 증감 연산자였는데 단항 증감 연산자를 사용하면 연산이 먼저인지 값 할당이 먼저인지 가독성이 떨어질 수 있다고 합니다.
      • 코드 리뷰를 해주실 때 친절히 참고 자료도 첨부해주셔서 부족한 부분을 더 학습할 기회가 돼서 좋았고, 감사했습니다. 👍

4

데일리 스크럼

저희 웹프론트엔드팀에서는 보통 오전 10시 30분에 다 같이 모여서 데일리 스크럼을 진행하고 있습니다. 어제는 업무를 어느 정도 진행했고 오늘은 어떤 업무를 할지, 이슈 사항은 없는지 확인하며 팀원의 업무 내용을 파악할 수 있습니다.

무엇보다 편안한 분위기에서 데일리 스크럼이 진행되기 때문에 업무 파악에도 도움이 되고 이슈가 있을 때 바로 이야기해서 해결할 수 있다는 점이 좋았습니다! 작은 사항이라도 팀장님이 적극적으로 해결하기 위해 도움을 주시기 때문에 불편함 없이 좋은 환경에서 작업을 할 수 있었던 것 같습니다.😊

최고의 복지는 좋은 동료

비브로스에 합류를 결심하게 된 결정적인 이유 중 하나는 1차 면접 때 느꼈던 화목하고 안정적인 분위기였습니다. 대수롭지 않은 질문도 진지하게 고민하고 정성스레 답변해주시는 팀원분들, 데일리 스크럼 때 필요한 부분이나 불편한 부분을 매일 꼼꼼히 챙겨주시고 해결을 위해 노력해주시는 팀장님까지 제가 1차 때 면접을 보면서 상상하던 분위기 이상의 화목한 분위기라서 비브로스에 합류하기 너무 잘했다는 생각을 매일 하고 있습니다.😁

시니어 개발자와의 면담 시간

저희는 한 달에 한 번씩 팀장님과 1대1로 면담 하는 시간이 있는데요. 한 달에 한 번씩 개발적으로 궁금한 부분이 있을 때 면담 시간을 이용하여 물어볼 수 있다는 점이 너무 좋았습니다!💪

취업 전에는 독학으로 개발 공부를 해서 개발에 대해 궁금한 게 있을 때 구글이나 유튜브에서만 찾아봐야 했습니다. 하지만 면담 시간을 이용해서 직접 팀장님께 평소 궁금했던 효율적으로 공부하는 방법에 대해 질문했을 때 진지하게 고민하고 답변해주셔서 주니어 개발자로서 도움이 많이 되었습니다. 프레임워크보다 기본이 가장 중요하다는 점 가슴 깊이 새기고 실천하도록 하겠습니다!!

하루하루 성장을 위한 기록 또 기록

5

비브로스에서 배울 수 있는 게 이렇게 많습니다.👍

  • 매일 기록하는 습관

    • 매일 그날 배운 점들을 정리해서 한눈에 확인 할 수 있도록 하고 있습니다. 기억은 항상 믿을 수 없다고 생각하기 때문에 그날 이해한 내용은 최대한 정리해서 언제 어디서든 꺼내서 확인할 수 있도록 기록합니다.
  • 효율적인 기록 검색

    • 하루하루 배운 것을 기록하는 것도 중요하지만 다시 똑같은 내용을 질문하지 않도록 기록한 내용을 효율적으로 잘 찾아서 확인할 수 있는 게 중요하다고 생각했습니다.
    • 처음에는 단순 나열하는 형식으로 기록해서 배운 점을 다시 찾기 너무 어려웠는데 이 부분을 개선하고자 비브로스에서 배운 점을 따로 기록하고 태그나 날짜, 어떤 과정에서 배운 점이었는지를 따로 기록해서 필터를 활용해 기록했던 내용을 빠르게 찾아볼 수 있도록 변경하였습니다!

3. 아쉬웠던 점

ngrx를 진행할 때 공식문서를 초반부터 정독하지 않은 점

  • 온보딩 과정에서 ngrx를 적용할 때 공식문서를 처음부터 정독하지 않아서 시간을 많이 할애했습니다. 🥲 초반에 있는 walkthrough를 확인하면 creatSelector로 쉽게 풀 수 있는 문제였는데 마음이 급한 나머지 초반 부분을 건너뛰고 설치 다음부터 보면서 적용하다가 시간을 많이 잡아먹었습니다.

    앞으로는 조급한 마음을 가지지 않고 공식문서를 정독하면서 차근차근 문제해결 하는 습관을 지녀야겠습니다!

내겐 너무 무거운 WebStorm😂

  • 저희 팀은 IDE로 WebStorm을 사용하고 있는데요. 저의 경우 WebStorm이 하루에 한 번씩 프리징이 발생해서 다시 껐다가 켜야 하는 번거로움이 있었습니다. 껐다가 켜도 작성한 코드가 그대로 저장되어 있어서 다행이었지만 코딩에 몰두하고 있을 때 갑자기 흐름이 깨져서 이 부분이 아쉬웠습니다.
  • 이 부분은 면담할 때 팀장님께도 말씀드렸는데 WebStorm 내부 메모리 사용량을 높여보라는 피드백을 주셔서 적용해보니까 성능이 확실히 나아진 모습을 보여서 만족하고 있습니다.😀

실무 프로젝트 파악하는 프로세스 필요

  • 실무 프로젝트는 너무 크기가 커서 신입 입장에서는 파악하기 어려운 부분이 있는 것 같습니다. 앵귤러, RxJs, Next.js 등 처음 사용하는 프레임워크에 대한 온보딩 프로세스는 체계적으로 진행되는 데 비해 실무 프로젝트를 제대로 파악하는 데 시간이 부족하다고 생각됩니다. 짧게나마 실무에서 필수적으로 알아야 할 부분이나 기능에 관해서 파악하는 온보딩 프로세스가 추가되면 좋을 것 같습니다.

4. 마치며

해보고 싶은 것

  • 블로그 기술 공유

    • 앵귤러는 최신 자료가 많이 부족하기 때문에 어떤 문제가 발생했을 때 해결 과정을 블로그에 작성해서 공유하면 다른 개발자분들에게 도움이 더 많이 될 거라는 생각이 들었습니다! 그래서 부족하지만 어려운 문제를 발생했을 때 해결 방법을 잘 정리해서 공유를 많이 해야겠다고 생각했고 실무를 하면서 실천해볼 계획입니다.
  • 실무를 충실히

    • 이번 주부터 새롭게 운영 이슈를 받아서 실무에 투입하게 됐습니다. 긴장 반 설렘 반이지만 아직은 설레는 마음이 더 큰 것 같습니다.😆 아직 많이 얘기해보지 못한 다른 팀들과 협업하면서 커뮤니케이션하고 코드 분석을 충실히 해서 현재 받은 업무를 빠르게 잘 마무리하는 게 현재 가장 큰 목표입니다.🔥

마무리

  • 코드 리뷰를 받으면서 개발자로서 배워야 할 것이 너무나 많고 아직 갈 길이 멀었다는 생각을 많이 하게 되었습니다. 아직 많이 부족한 게 많지만, 팀원분들의 도움으로 매일 조금씩 점진적으로 성장하고 있는 것 같습니다!

    응원해주시고 피드백을 아낌없이 해주셔서 아직 합류한 지 한 달밖에 안 됐지만, 행복하게 개발자의 삶을 살고 있습니다. 이 자리를 빌려서 팀원분들께 너무 감사드린다고 말씀드리고 싶습니다.🙏

  • 매일 개선하다 보면 결국 크게 성장할 수 있다는 믿음을 가지고 비브로스에서 1인분 역할을 톡톡히 할 수 있는 개발자가 될 수 있도록 개발 공부를 끊임없이 하며 성장하는 팀원이 되겠습니다!

    긴 글 읽어주셔서 감사합니다.🙇‍


💡 🚀 우리 팀이 일하는 방법! 👉🏻 비브로스 웹프론트엔드팀 👈🏻

비브로스