(회고) 원티드 x 코드스테이츠 프리온보딩을 마치며

호두파파·2022년 4월 1일
0

Retrospect

목록 보기
2/4


원티드x코드스테이츠 프리온보딩을 마쳤다.

그것은 아주 우연한 기회였다. 한참 취업을 위해 프로젝트를 리팩토링하다 프로그램에 대해 알게 되었는데, 고민할 시간조차 남아 있지 않았다. 부랴부랴 정신 없이 참가하게된 원티드 코드스테이츠 프리온보딩 프로그램(이하 프리온보딩 프로그램). 어느덧 빠르게 시간이 지나서 5주 동안의 일정을 모두 마쳤다.

2월 7일 프로그램 접수에 대해서 인지를 하고 일정을 확인해보았다. 이틀 후인 2월 9일까지 과제 접수를 마쳤을 경우 가산점이 주어지고, 6개 과제 모두 제출했을 경우 추가 가산점이 주어진다는 점을 확인할 수 있었다. (과제를 모두 마치라는 이야기나 다름이 없지..)

참가를 위한 사전 과제 마감기한은 2월 15일까지였지만, 이 프로젝트에 참가를 희망하는 사람이 많을 경우 가산점 1점도 당락에 중요한 영향을 줄 것 같다는 생각이 들어 무조건 이틀 안에 과제를 마치자는 목표를 가지고 사전 과제를 진행했다.

과제는 총 6가지 컴포넌트를 제작하는 것이었는데 토글, 탭버튼, 모달 등 웹 페이지에서 유저가 자주 사용하게 되는 기본 기능을 구현하는 것이었다.

이미 지나온 과정에서 구현해본 기능들도 있었지만, 해쉬태그 생성 등 몇 가지는 처음 구현해보는 것이었기 때문에 차근차근 처음 접해본 기능을 중점으로 구현해보았다.

프로젝트 github 보기

문제의 요구 조건으로 하나의 페이지에서 모든 컴포넌트를 보여줘야 했는데, 페이지에서 스크롤로 보여주는 방식 보다는 레이아웃을 이용해 탭버튼을 클릭 시 컴포넌트를 렌더링하는 방식으로 구현했다. (이유는 없다. 이게 깔끔해보였기 때문..)

🧲 꽤 시간이 지난 오늘, 이 과정을 돌이켜보면 생각보다 좋은 사전과제였다고 생각한다. 앞으로 진행하게 될 기업 과제에서 구현해야하는 기능들이 많있기 때문이다. 짧은 시간(6시간 ㄷㄷ;)안에 과제를 구현해야 하는 프로그램 특성 상 시간을 매우 절약할 수 있었다.


🖱 프리온보딩 프로젝트는 어떻게 진행되었나

온보딩 프로그램에 합격한 이후, 그 다음주 바로 프로젝트가 시작되었다.

프로온보딩 프로그램을 통해 내가 향상시키고자 했던 목표를 설정해두었다.

  • 팀 프로젝트 경험을 통해 협업 경험을 최대한 구축하기
  • 바닐라 JS부터 서버, 인프라 등까지 공부했던 지식을 다시 환기하기

이론 공부

오전에는 코드스테이츠의 교육 플랫폼 urclass에서 제공하는 학습자료를 통해 일정에 맞게 자습이 이루어지고,
오후에는 요일에 맞는 프로그램이 진행되었다.

월요일에는 함께 프로그램에 참여하고 있는 분과 1:1 모의 대면면접을 줌으로 실시했고, 화요일부터 목요일까지는 팀 조원(7명)들과 기업에서 제출한 그룹 과제를 작성했다. 금요일에는 작성한 과제를 다른 조와 함께 경험을 공유하는 일정으로 진행되었다.

팀원들은 나처럼 독학으로 개발을 공부한 분도 있었지만, 다양한 교육기관(주로 코드스테이츠 등 부트캠프)의 과정을 졸업한 분들이 주가 되었다.

urclass 강의자료

urclass에서 제공한 강의자료는 깊이가 깊지는 않았지만, 이미 배웠던 지식을 환기하는 차원에서 읽어볼만한 자료들이 제공되었다. 다만, 심층적인 이해를 위한 지식은 제공하지 않아 추가적으로 자료를 검색하면서 공부를 해야할 것 같았다.

제일 좋은 자료는 라이브러리 공식문서, mdn 이라고 생각한다. 언어는 영어를 선택하는 것을 추천한다. 한글은 번역이 들어가면서, 문맥 상 해석이 매끄럽지 않기 때문이다. 영어가 어렵다고? 이해가 되지 않는 부분만 파파고로 번역을 돌려보길 바란다. 개발자가 된다면 생활이 되어야 하기 때문이다.


모의 면접 페어

모의 면접 페어는 70여 명의 참가자 중에 당일 임의적으로 배정된 짝과 진행하게 되었는데, 이 프로그램도 아주 좋았다고 생각한다. 면접을 하기 전에는 저마다 모두 "그럴싸한 계획이 있다". 하지만, 머리 속에서 아는 지식을 꺼내 언어로 전달하는 것은 아주 다른 일이고, 이 과정에서 상당한 오류와 실수를 반복하게 된다. 고로, 지식을 언어로 전달하는 연습을 자주 해야, 면접에서 올바른 대답을 할 수 있다.

고로, 일면식도 없는 누군가와 면접을 진행하는 것은 굉장히 소중한 경험일 수 밖에 없다. 2주차에 만났던 개발자 우철 님과 진행했던 면접 페어가 아주 흥미로웠는데, "알고 있는 지식을 이렇게 유려하게 풀어낼 수 있구나" 라는 큰 자극을 받았다.

실무 면접에서 꼬리에 꼬리를 무는 질문을 피하기 위해 불필요한 워딩을 피하고 간결하게 대답할 것을 주문받고는 한다. 하지만, 알고 있는 것을 정제해서 깔끔하게 답변하는 것과 최소한의 정보만 정리해서 답변하는 것은 전혀 다른 것이라고 생각한다. 답변하는 것을 겁내지 말자

멘토께서 진행해주신 면접 피드백 프로그램도 나름의 의미가 있었다고 생각한다. 다만, 참가자들의 참여하려는 의지가 아쉬웠다. 누군가 내 답변에 대해 객관적인 시각을 제공하는 기회란 흔치 않은 기회다. 기회는 노력하는 자에게만 주어진다. 참여 또한 노력이다.


😇 기업과제

기업과제는 장점도 많은 만큼 아쉬운 점도 많은 프로그램이라고 생각한다. 우선, 다양한 기업의 요구 과제를 접할 수 있어 향후 타 기업에서 사전 과제를 접하더라도 어느 정도의 면역력을 갖출 수 있다. 다만, 팀 프로젝트 특성 상 참여 의지에 따라 얼마큼의 교훈과 경험을 얻을 수 있을지는 개인의 의지에 달려 있다.

6-7명이 한 조를 이뤄 진행하는 기업 과제는 해결을 위해 공식적으로 6시간이 제공된다. (물론, 6시간을 그대로 지켜 과제를 하지 않는다. 과제가 제출되는 오후 2시부터 그 날 자정까지, 또 다음날 아침부터 과제 마감 기한인 자정 전까지 코딩을 진행할 수 있다.)

과제는 제출 1-2시간 전에 공지로 공개되기 때문에, 어떤 기업의 과제를 받을지 미리 알 수 없다. 오후에 할당된 과제를 팀원들과 함께 요구 조건을 살펴본 후 피그마 등 디자인 툴로 목업을 제작하고, 역할을 나누는데 평균 3-4시간 정도가 소요되기 때문에 본격적으로 코드를 작성하는 시점은 첫 날 일정을 마치는 오후 6시 즈음이 된다.

고로 당연하게도 온전히 이후 저녁시간까지도 팀 과제에 할애해야 빠듯한 과제 납기 일정에 맞출 수 있다. 취준생이라는 신분상 이정도는 말대꾸없이 감내해야한다고 생각한다.

😇 팀 프로젝트를 진행했을때 얻을 수 있는 장점

다양한 기업에서 제출한 과제를 훌륭한 팀원들과 진행할 수 있다는 점에서 부담은 덜했고, 아주 많은 경험을 얻어갈 수 있었다. 이 점은 분명한 장점이다.

🌟 개인적으론 경험해보지 못한 새로운 스택을 적용해볼수는 없었지만, 기존에 익혔던 기술 스택을 단단히 다지는데 좋은 경험이었다고 생각한다. CSS를 다루는 기술이 훨씬 뛰어난 분들을 만날 수 있어 모자란 부분을 어느정도 개선시킬 수 있었다.

🌟 팀원들에게 무례했을 수도 있지만, 개개인의 발전을 위해 상태 관리 라이브러리(주로 redux를 사용)를 개개인이 작성하도록 팀원들을 설득해 과정을 진행했다. 액션 타입과 함수를 지정하는 과정, 리듀서를 작성하는 과정 등등 리덕스 개념과 과정을 이해하는데에는 직접 경험하는 것이 제일 중요하다고 생각했기 때문이다. 처음에는 몹시 힘들어했지만, 팀원 모두 부쩍 발전한 것이 보여 뿌듯한 생각이 들었다.

🌟 깃업을 이용해 팀 프로젝트를 진행하는 경험은 독학으로 개발을 배운 내게는 매우 생경한 일이었다. 덕분에(?) 첫 프로젝트에서는 공용 레포의 브랜치를 초기화시켜버리는 만행을 저지르기도 했다. 이외에도 경험이 부족으로 인한 다양한 실수를 저질렀지만, 팀 프로젝트를 진행하는 동안 깃헙을 이용한 협업 경험을 쌓을 수 있었고, 이 사실만으로도 많은 것을 얻었다고 생각한다

🤒 조금은 아쉬웠던 팀 프로젝트 구성

❗️ 주의, 주관적인 의견이기 때문에 객관적인 정보를 포함하고 있지 않습니다. 제 개인적인 의견으로 프로그램 전체를 판단하지 마시기 바랍니다.

🤯 7명이나 되는 뉴비 개발자들이 앱을 구성해야 하다보니, 개개인의 역할을 구분하는게 굉장히 모호했다고 생각한다. 제출된 기업 과제 중 몇 가지는 검색창을 구현하는 정도의 아주 간단한 난이도여서 홀로 진행하기에도 무리가 없는 난이도였기 때문이다.

이 부분에서는 추후 개선이 이루어졌으면 좋겠다. 개인적으로는 난이도가 높든 낮든 팀 인원은 3-4명 정도 진행하는 것이 적당하다고 생각한다. 7명이 진행하기에는 반드시 누군가 소외될 가능성이 높기 때문이다. 팀 과제를 진행하는 동안 스타일링만 담당하거나, 자신감이 있는 분야만 반복한다면 궁극적으로 발전을 이룰 수 있을까? 개개인이 다양한 경험을 할 수 있도록 팀을 좀 더 쪼게서 진행하는 것이 참가자들의 긍정적 경험을 극대화할 수 있다고 생각한다.

🤯 아주 다행히 우리 조에서는 진행하지는 않았지만, 한 기업의 과제는 오직vue.js로 과제를 진행할 것을 요구했다. 사실 이 과제는 사전에 워싱이 되었어야 한다고 생각한다.

모집 대상에서 밝힌 언어는 분명 react와 이에 기반한 라이브러리였고, 사전 과제도 react를 이용해 앱을 작성하는 것이었다. react를 활용해 프로젝트를 진행할 것이라고 생각했는데, 갑자기 등장한 vue.js는 아주 당황스러웠다.

멘토께서는 "실무에서 짧은 시간 동안 새로운 스택을 익히고 적용해 나가야 할 일이 분명히 존재한다"며 이해를 부탁하셨기에 납득할 수는 있었다. 하지만, 여전히 해당 과제가 워싱되지 않았던 점은 아쉬움으로 남는다. (중심 언어를 기반으로 라이브러리를 새롭게 적용하는 것과 다른 프레임웍을 적용해야하는 것은 다른 문제라고 생각한다. 물론 특정 언어에 대한 편견도 가지고 있지 않다.)

🤯 8곳의 기업이 제출한 과제를 팀 프로젝트로 진행했다. 과연 각 기업에서 10개나 되는 모든 조의 팀 프로젝트 레포의 커밋 메시지까지 정밀하게 살펴볼까? 라는 의문이 남는다.

팀 프로젝트이긴 하지만, 역할이 균등하게 배분되는 것이 아니었기에 무엇을 기반으로 누군가에게 점수를 배점해 채용기회를 열어줄 것인지가 몹시 궁금했다. 만일 배포된 결과물로만 판단을 한다면, 누군가는 운이 작용해 실력이 출중한 조원에 힘입어 채용 기회를 얻게 될 것이고, 다른 누군가는 실력이 높더라도 구성원들의 수준에 맞추느라 상대적으로 적은 기회를 얻을 수 밖에 없을 것이다.

개인적으론 팀 프로젝트는 취업 기회와는 별계로 실력 향상을 위한 경험의 공간이었다고 생각한다. 프로젝트 말미에 개인 프로젝트를 홀로 진행하게 되어 있기 때문에 개인 프로젝트를 중심으로 기업들은 참여자를 판단할 수 있기 때문이다.


개인 과제

4주동안 팀 프로젝트를 진행하는 동안, 친밀해진 동료(?)들과 수다 떨면서 프로젝트를 진행하는데 익숙해진 내게 개인 프로젝트를 진행하는 심정은 위 사진과 같았다. 과제 해결을 위한 시간은 5일이나 주어졌기에 기업 과제를 진행할 때와는 다른 여유를 가지고 코드를 작성할 수 있어 마음에 여유가 있었지만, 홀로 코드를 작성해야 했기에 고독감이 가장 나를 힘들게 했다.

다만, 내가 선택한 기업의 과제에서 요구한 정도가 아주 어려운 난이도가 아니었고, 디자인 레이아웃도 모두 제공해주었기에 일정대로 과제를 진행할 수 있었다. (넥슨의 개인과제를 진행하신 분들께는 애도를..😇)

서버 통신, 배포 모두 이전 팀 프로젝트에서 주도적으로 진행해봤기에 이슈없이 과제를 마무리 할 수 있었다. 🍻

기업 과제에 대한 불평을 위에 한 무더기 쏟아냈지만, 기업 과제를 거치는 동안 발전하지 않았다면 5일의 시간도 빠듯했을 것이다. 훌륭한 조원들을 만난 덕분에, 클린한 코딩에 대한 혜안을 얻을 수 있었고 개인 과제를 진행하며 스스로 성장 정도를 크게 느낄 수 있었다.


🌞 총평 : 이 프로그램을 지인에게 추천하겠나요?

거두절미하고, 난 무조건 이 프로그램을 추천할 것 같다. 취업에 큰 도움이 되지는 않더라도 개발자로서 커리어를 시작하려는 뉴비에게는 비슷한 환경에 있는 다양한 사람을 만나보는 경험도 분명히 큰 힘이 되기 때문이다.
이런 경험은 스노우 볼이 되어 큰 성장 동력이 될 수 있다.

이 프로그램은 다음과 같은 유형을 가진 분들에게 자신감을 가지고 추천할 수 있다.

  • 교육 기관(부트캠프, 국비학원 등)을 졸업했지만 아직 실력에 자신감이 없으신 분
  • 교육 기관을 다니지 않고, 독학으로 개발을 공부해서 팀 프로젝트에 경험이 없는 분
  • 다양한 기업의 과제를 경험해보고 싶으신 분
  • 아직 개발자 취직에 대한 확실을 얻지 못하신 분

정리하며

모두가 같은 출발선에서 출발하더라도 결과는 달라질 수 밖에 없다.

개개인의 의지와 학습 능력, 습득력이 다른만큼 결과 또한 크게 달라지기 마련이다.동기생이 초봉 5천으로 회사와 계약을 하든, 3-4곳의 회사에게 오퍼를 받아 연봉을 저울질하든 그것은 당신에게 중요한 것이 아니다. 전혀 개의치말자. 비교는 당신을 불행하게 만들 뿐이다.

개발자가 되기 위해 가장 중요한 덕목은 "포기하지 않는 끈질김", "지식을 추구하는 욕망"이라고 생각한다.

해당 과정이 취업으로 향하는 절대적인 키가 될 수는 없겠지만, 자신감을 가지고 과정에 적극적으로 임한다면, 분명 개발자로 향하는 여정에 도움이 될 것이라 확신한다.

나는 이 프로그램에 참여하는 동안 취업을 이루었다는 사실 보다도 개발자로서 자신감을 얻었다는 사실에 큰 감사를 느낀다.

분명, 프로그램을 시작하기 전의 나는 미약하게 개발자를 꿈꾸는 개인이었지만, 이제는 출근 3일을 앞둔 신입 개발자가 되었다. 이 글을 읽는 누군가에게 반드시 이 글이 희망이 되었으면 좋겠다는 바램을 담아 글을 남긴다.

포기하지 말자, 아직 당신은 개발자가 되지 못한 것이지, 될 수 없는 것이 아니기 때문이다.


profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

2개의 댓글

comment-user-thumbnail
2022년 4월 5일

고생하셨습니다 ㅎㅎ

1개의 답글