Home

Blog

프리온보딩 인턴십(프론트엔드) 회고

2023.10.30
15

아주 늦게 작성해보는 프리온보딩 FE 인턴십 회고. 프리온보딩 인턴십이 끝난지 벌써 1달이 넘게 흘렀습니다. 인턴십 끝나고 원티드에 20건 이상 지원하는 것이 수료 조건이라, 이력서 완성하고 수정하고 지원하고 면접보고 이러면서 한달이 훌쩍 가버렸네요.

3주차 과제까지 포스팅을 마쳤으니 최종 회고를 작성해볼까 합니다. 4주차 과제 배운 내용이 크게 많지 않아 스킵했습니다…!

Untitled

https://www.wanted.co.kr/events/pre_ob_fe_12

Pre-Onboarding = Pre + Onboarding

프리온보딩의 뜻은 온보딩보다 더 이전 단계라는 뜻으로, 회사에 보통 온보딩 과정이 있는 것처럼 그보다 더 이전에 회사에 바로 적응할 수 있는 역량을 기르는 것이 목적입니다.

저 같은 경우는, 실무 경험을 해보고 싶어서 인턴십을 찾다가 발견했는데요. 물론 프리온보딩 인턴십의 경우 실제 인턴 사원들처럼 실무 경험을 할 수 있는 프로그램은 아닙니다. 하지만 제가 당시 관심있던 주제들을 많이 다루고 있는 커리큘럼을 보고 지원하게 됐습니다.

  • 제출 서류 : 사전과제, 원티드 이력서

원티드 측에서 제공하는 사전 과제를 수행해서 깃헙으로 제출해야 합니다! 참고로 제가 참여했던 프리온보딩 인턴십 8월의 경우, 경쟁률이 3:1이라고 하셨습니다. 3명 중에 2명은 떨어지는 셈이죠…!

4주동안 매주 기업과제를 수행하게 되는데요. 그 주 과제는 화요일 오후에 공지되어 금요일 밤 자정까지 제출해야합니다. 문제는 개인과제와 팀과제로 두 개를 제출해야해요! 그래서 3.5일의 시간동안 팀과제, 개인과제를 모두 완성해야하기 때문에 생각보다 빡셉니다.

매주 진행했던 과제를 간략히 소개해보자면, (제 개인과제 깃헙 링크도 함께 첨부합니다.)

  • 1주차 과제 : 사전과제로 제출한 투두리스트 리팩토링 (깃헙링크)
  • 2주차 과제 : 무한 스크롤 구현 (깃헙링크)
  • 3주차 과제 : 검색창 구현 (깃헙링크)
  • 4주차 과제 : 데이터 차트 시각화 (깃헙링크)

이렇게 4가지를 진행했고, 쉬워보이지만 작은 부분에서도 고민할 부분이 많아서 각 과제에서 배우는 점이 정말 많았습니다.

찾아보니 각 기수마다 과제 내용이 겹치는 것들도 있는 걸 보니, 모아놓은 일정량의 기업 과제들을 돌려가며 사용하는 것 같더라구요. 그래서 과제 진행할 때 어려운 부분이 있거나 하면 이전 기수들이 했던 과제들 구글링하면서 참고하면 공부도 되고 과제도 더 빨리 끝낼 수 있을 것 같습니다!

4주 동안 매주 화요일, 금요일 3시간동안 강의가 진행됩니다. 앞서 말씀드렸던 것처럼 저는 이 강의 커리큘럼이 맘에 들어서 이 인턴십에 참여하게 됐는데요. 기대했던 대로 상당히 만족스러운 강의였습니다!

강사분이 위코드 출신의 주니어 개발자셨는데요. 강의력이 굉장히 좋으셔서 중요한 것 위주로 이해하기 쉽게 설명해주시는 편이었습니다. 질문에 답변해주시는 내용도 좋았구요.

좋은 코드에 내한 니즈

싸피(삼성 청년 소프트웨어 아카데미)에서는 1학기 때 배운 개념들로 2학기에는 알아서 프로젝트를 완성해야하는 시스템이라, 코드리뷰도 받아본 적이 없고 뭐가 좋은 코드인지도 몰라서 코드 퀄리티가 항상 제자리 걸음이었습니다. 그래서 코드가 이따구(?)로 생긴 게 잘 쓴 거 맞나?라는 의문을 항상 가지면서 프로젝트에 허덕이며 그 의문을 해결하지 못한 채 2학기가 지나갔는데요.

이러한 의문을 해결할 수 있었던 시간이었습니다! 좋은 코드란 어떤 것이며, 그렇게 좋은 코드를 작성하기 위해서 쓸 수 있는 여러 방법론을 배웠습니다. 싸피에서 반년동안 해결하지 못했던 가려운 부분을 시원하게 긁어봤달까요.

강의 커리큘럼을 간략하게 소개해보자면,

  • 1주차 - 1 : 팀으로 일하기위해 알아야 할 것들 (Git, Eslint, Prettier, Husky etc)
  • 1주차 - 2 : CI/CD with GitHub Actions
  • 2주차 - 1 : 렌더링 최적화 & Advanced Hook
  • 2주차 - 2 : useEffect, 관심사의 분리
  • 3주차 - 1 : 횡단 관심사와 Context API
  • 3주차 - 2 : 의존성, Typescript
  • 4주차 - 1 : 소프트웨어 테스트
  • 4주차 - 2 : 실행 컨텍스트와 클로저

이렇게 다양한 주제들을 다뤘고, 가독성과 유지보수성이 좋은 코드를 작성할 수 있는 방법을 배울 수 있었습니다.

프리온보딩 인턴십에서 ‘동료 학습’을 원칙으로 하고 있는데요. 동료 학습이라는 단어를 처음에 들었을 때는 시큰둥했었는데, 생각보다 협업하는 과정에서 팀원들의 코드나 소통 방식을 보며 많은 것을 배울 수 있었습니다.

4주 동안 총 4개의 기업 과제를 수행하면서 4개 중 3개의 기업 과제는 팀 과제, 개인 과제 모두 제출 해야했는데요. (4번째 과제는 개인과제만 진행) 매번 팀 과제를 하면서 제 코드를 팀원들에게 설명하며 조리있고 논리적으로 전달할 수 있게 노력했습니다. 특히, 팀원들의 다른 방향으로 혹은 더 탄탄하게 짜여진 코드를 보면서 좋은 부분은 차용하며 제 코드를 더 발전시킬 수 있었어요. 좋은 코드를 많이 보는 것이 정말 중요하다고 느꼈습니다!

제가 이번 프리온보딩 인턴십을 통해 배운 것을 한 마디로 요약하자면

변화에 유연한 소프트웨어 설계 방법

이라고 할 수 있을 것 같습니다.

위에서 언급했던 것처럼, 저에게 프리온보딩 인턴십은 싸피에서 프로젝트를 하면서 항상 해소되지 않았던 질문(좋은 코드란 무엇이며, 어떻게 좋은 코드를 짤 수 있을까)에 대한 해답을 얻은 시간이었습니다.

강의를 통해 배운 관심사의 분리, 의존성 역전의 법칙, Context API, TDD 등의 모든 내용은 ‘변화에 유연한 소프트웨어 설계‘를 위한 방법일텐데요. 이러한 개념들을 배우면서 어떤 방법을 적용하면 가독성과 유지보수성이 뛰어난 코드를 짤 수 있는지 알게 되었고, 이러한 방법론을 앞으로 더 공부하고 적용해보고 싶다고 생각했습니다!

협업은 어려워

앞서 얘기한 좋은 코드에 대한 고민 이외에도 ‘팀에 긍정적인 영향을 미치는 팀원이 되려면 어떻게 해야할까?’라는 질문을 시작하며 이 프로그램을 시작했습니다. 완전히 낯선 사람들과 협업해야하는 이번 기회가 협업 경험을 쌓을 좋은 기회라고 생각했기 때문이죠.

그 질문에 대한 해답은…아직 찾지 못 했습니다. 찾아가고 있는 중이죠! 참, 협업은 정말 해도해도 너무 어려운 것 같습니다. 함께 일하게 되는 사람들도 계속 바뀌고, 비즈니스 상황도 계속해서 변화하니 그 때 그 때 상황에 따라 유연하게 맞춰가며 협업해야 하는 것 같습니다.

치열하게 소통하고 빠르게 결론짓기

이번 팀에서는 침묵과 정적 속에서 일이 안 돌아가고 있는 꼴을 못 보는(?) 제가 나서다보니 자연스레 팀장을 맡게 되었고, 그러면서 팀원이 아닌 리더로써 의사결정을 빨리 하고 역할 분장을 공평하고 효율적으로 잘 하는데에 에너지를 많이 쓰게 됐습니다.

솔직히 팀장으로써 아주 잘 한지는 모르겠지만! 제가 리더 위치에 있을 때 보완해야할 점이 무엇인지 느낄 수 있던 시간이었습니다.

저는 공평성과 효율성을 매우 중시하는 사람이라, 팀원 모두의 의견을 다 들어보고 최대한의 합의점을 찾으려고 하는 편인데요. 이러다보니 의사결정에 있어서 우유부단해지는 경향이 있더라구요. 빠른 의사결정이 중요하다고 생각하는데, 이를 위해선 가끔 소수의 의견을 희생하더라도 적확한 쪽으로 빠르게 결론짓는 것이 좋겠다고 판단했습니다.

배워야 할 것이 너무 많다

1주차에 팀원들의 코드를 보며 자괴감과 강한 성장 욕구를 느꼈습니다. 팀 프로젝트 세 번이나 하면서 내가 작성한 코드는 정말 쓰레기였구나! 하면서 자기 반성의 시간을 가지며 싸피에서 뭘 배웠나 싶었습니다..

그러면서 나도 코드를 정말 정말 잘 짜고 싶다! 생각했고, 그만큼 많은 노력을 기울이게 됐죠. 모듈을 나눌 때도 어떤 단위로 책임을 분할할지, 이 로직이 이 파일에 들어가는게 유지보수를 생각했을 때 맞는지 등등 많은 고민을 하며 코드를 작성했습니다.

결과적으로 사전과제로 제출한 투두리스트의 코드와, 인턴십이 끝난 이후 개인적으로 리팩토링하여 개발한 투두리스트의 코드를 보면 정말 많이 발전한 것을 알 수 있습니다. 시각적으로 눈에 띄는 변화를 느낄 수 있는 부분이라 정말 뿌듯하더라구요.

짧은 시간이었지만 정말 많이 배우고 성장한 시간이었습니다. 저와 같이 ‘좋은 코드란 무엇이며 어떻게 좋은 코드를 작성할 수 있을까?’와 비슷한 고민을 가지신 분들이 있다면 프리온보딩 인턴십을 추천드립니다. 강의료도 무료이니 밑져야 본전이죠!

변화에 유연하게 대응할 수 있는 소프트웨어를 설계하는 개발자가 될 수 있도록 이번에 배운 내용들을 계속해서 프로젝트에 적용해보고 발전시켜 나가야겠습니다!

Eunjee Lee • © 2023 • https://eun-jee.com