본문 바로가기
개발공부일기

스타트업 신입개발자 한 달 생존기

by hobbiz 2021. 6. 26.
반응형

6월 1일 첫 출근을 시작하고 정신없이 지내다 보니 어느덧 4주가 지나갔다.

진짜 이번주까지는 공부하고 일하느라 쉴틈이 없었던 것 같다.

다행히 이번 주말은 회사 일은 잠시 내려놓고 내가 하고싶은 공부를 할 수 있는 시간이 주어졌다.

 

나는 국비학원을 마치고 혼자서 작은 프로젝트를 몇 개 해보고 스타트업으로 취업하게 된 케이스이다.

학원에서는 자바, 스프링, 오라클DB, 자바스크립트, 제이쿼리를 위주로 배우며 프로젝트를 했었다. 그래서 취업준비를 할 때에도 똑같은 언어와 기술들을 쓰는 곳들을 지원했다. 이 기술들도 내가 완벽하게 알고 있다고 생각하지 않아서 다른 언어를 쓰는데는 아예 지원하지 않거나 연락이 오는 곳에도 거절을 하곤 했다. 

 

지금 다니게 된 스타트업에도 내가 배운 기술들을 미리 말씀드렸고, 처음 면접 제의가 왔을 때 서버개발자로 제안이 왔었어서 나는 자바로 일을 하게 될 줄 알았다. 하지만 최종 면접에서 대표님이 초반에는 프론트쪽으로 하다가 서버로 넘어가는 것을 제안하셨고 그때까지만 해도 JSP와 제이쿼리로 프론트를 하는 방향을 얘기했었다.

 

입사를 해보니 아직 웹쪽은 무슨 스택을 쓸 지도 정해지지 않은 상태였다. (우리 회사는 운동관련 앱을 만드는 회사이고, 웹쪽은 관리자용 페이지를 만들 예정이다.)  그래서 완전 처음부터 우리가 어떤 기술을 쓸 지 정하는 단계부터 함께 진행할 수 있었다. 관계사에서 얻은 제이쿼리 디자인 소스가 있었던 상태라 제이쿼리와 JSP를 사용해 만들까 하는 고민을 했지만 최종 결정에서는 앞으로의 확장성을 고려하여 리액트로 진행하기로 했다. 프론트쪽은 리액트를 쓰고, 백엔드쪽은 스프링부트로 진행할 예정이다. 

 

서버쪽은 경력이 5년정도 되신 개발자분이 합류하여 맡으시게 되었고, 1년정도 경력이 있는 동료분과 내가 프론트쪽을 맡게 되었다. 프론트 동료분은 리액트를 만져본 적은 있다고 하셨고, 뷰로는 프로젝트를 해보신 상태였다. 나는 리액트가 완전 처음이었고, 프론트쪽 공부는 진짜 많이 안했어서 처음에는 내가 잘 할 수 있을까 불안했었다.

 

다행히 회사에서 리액트가 뭔지 기본적인 공부를 하는데에 1주일, 화면 몇 개로 구성된 간단한 웹페이지를 만들어보는데에 1주일의 시간을 주셔서 총 2주간은 각자 리액트 공부를 했다. 2주간의 공부 후에는 그 웹페이지 만든 것을 발표한 후, 디자인 가이드를 숙지한 후 본격적으로 스케쥴을 잡고 개발을 시작했다.

 

리액트로 처음부터 개발해 본 사람이 없어서 처음에는 컴포넌트부터 하나하나 다 개발하는 방향으로 계획을 하고 진행했다. 첫 주에는 버튼, 토글버튼 이런것들을 하나하나 컴포넌트로 만들어서 컬러, 모양, 이런것들을 props로 넘겨주고 우리가 원하는 디자인의 버튼으로 만드는 일을 했다. 둘째주에는 링크, 디바이더, 셀렉트, 드롭다운 이런 컴포넌트들을 직접 만들었다. 그러다 보니, 자바스크립트 뿐만 아니라 CSS까지 손봐야 하는 게 너무 너무 많았다. 제이쿼리로 된 소스가 있긴 했지만 리액트와 자료를 넘기는 방식 같은게 많이 달라서 거의 처음부터 다시 만들어야 하는 수준이었고, 복잡한 것들은 제이쿼리 소스와 CSS파악하는 시간이 엄청 오래걸렸고 리액트로 만드는 과정은 더 오래걸리고 잘 되지 않았다. 

 

이렇게 생각보다 시간이 오래걸리다보니 첫째주 중간정도부터는 리액트 개발자로 1년정도 일하셨던 기획자분이 우리를 도와주기 위해 개발업무에 합류하셨다. 이분께 많은 도움을 받았는데 가장 큰 것들은 eslint와 prettier등을 사용하여 코드를 일관적으로 정리한 것과 깃허브에 브랜치를 컴포넌트마다 따로 생성하여 push하고 pull request를 각각의 컴포넌트마다 진행하는 것, 어려운 개념에 대해 여쭤보면 친절하게 대답해 주시는 것(천사ㅠㅠ), state의 활용 방법에 대한 야간 심화 설명(이날 너무 감사하고 죄송스러워서 밥샀다ㅠㅠ) 등이었다. 생각해보니 프로젝트 초반에 중요한 것들을 다 알려주신 것 같다. 다른 프론트 동료분도 개발 경력은 있으시지만 협업 경력이 없으셔서 깃을 잘 못다루셨는데, 이 기획자분이 안계셨으면 우리 코드는 난리가 났을 것 같다. 생각해보니 너무 다행이네ㅋㅋ

 

아무튼 이런식으로 세명이 붙어서 컴포넌트 만드는 작업을 2주간 진행했는데, 그래도 시간이 너무 오래걸려서 다같이 매일 야근을 했다. 그러던 중 엊그제 드롭다운(클릭하면 메뉴가 주르륵 나오고 그중에 하나 선택하는 메뉴 버튼)을 만들다가 내가 현타가 왔다. 이미 다른 것들 만드는데도 시간이 너무 오래걸려서 매일 야근을 했고, 드롭다운을 만드는 것 까지 금요일 출근전까지 끝내기로 해서 목요일날은 집에 노트북을 들고가서 세시간밖에 못자면서 만들었는데도 잘 안됐기 때문이다ㅠㅠ (야근이나 일정 내 끝내는 것은 강요받는 것은 아니고 내 욕심에서 하는 것임을 밝힌다.)

 

드롭다운의 경우 간단해 보이지만 그 안에 꽤 많은 CSS와 이벤트처리와 함수들이 들어가는데, 그런 것들을 하나하나 새로 짜려니 시간이 너무 많이 걸렸다. 그러다가 결국 시간내 만드는 것을 포기하고 지난 번 간단한 웹페이지 만드는 과제를 하며 사용했던 material-ui 라는 라이브러리의 컴포넌트를 사용해 보았는데, 코드 다섯줄로 엄청 예쁜 드롭다운이 만들어 지는 것이었다. 그래서 잠시 삽질을 그만두고 회사에 출근해서 그걸 들고 그 기획자분께 보여드리며 우리가 왜 이런 편리한 라이브러리를 놔두고 이걸 다 한땀한땀 만들어야 하는지 이해가 안된다고 말씀드렸다. 그리고 이런 복잡한 것들은 이런 오픈소스 라이브러리를 사용하는게 더 효율적일 것 같다고 설득했다. 그 기획자분은 성향이 엄청 조곤조곤, 친절하시지만 업무적으로는 FM이신 분이어서, 처음에 제안을 듣고는 우리가 처음에 하려던 취지(다 우리가 손수 만들어서 우리 회사만의 코드와 디자인으로 이루어진 사이트를 만드는 것)와 다르다며 라이브러리 사용하는 것을 못하게 하셨다. 그래서 일단은 드롭다운이 시간이 오래 걸리니 상대적으로 수월하지만 비슷한 로직의 셀렉트(input의 select와 같은 기능)를 먼저 진행하고 드롭다운은 차주에 만드는 것으로 일정을 변경했다.

 

이런 과정을 지켜보고 있던 백엔드 개발자분도 이 방식이 이상하다고 생각하셨던 것 같다. 이 백엔드 경력자분은 SI와 대기업 등등 많은 프로젝트를 하셨던 분인데, 그런 큰 회사에서도 이런 단순한 컴포넌트들을 하나하나 만들지는 않는다고 했다. 안그래도 시간과 인력이 부족한 상황에서 라이브러리를 안쓰고 만드는 것은 엄청난 비효율인데 왜 이러고 있냐고 본인이 대표님과 얘기해보겠다고 하셨다. 그래서 어제(금요일) 회의가 진행되었고 라이브러리를 쓰는 방향으로 작업 방식을 극적으로 바꾸게 되었다! 앞으로 어떤 라이브러리를 쓸 지 결정하고, 그 라이브러리에 익숙해진 후 바로 페이지를 만드는 작업을 시작하게 될 것 같다. 너무 다행이다!!ㅠㅠ 

 

그래서 이렇게 블로그에 글을 쓸 수 있는 시간이 생긴 것이다!ㅋㅋ 안그랬으면 난 오늘도 드롭다운과 이벤트와 CSS와 씨름하고 있었겠지. 그래도 그 컴포넌트 만드는 2주동안 리액트의 기초적인 부분들을 더 많이 배우고 연습할 수 있었고 잊고 있었던 CSS도 다시 공부하면서 기억을 되살릴 수 있었던 것 같다. 아 그리고 학원에서는 자바스크립트를 너무 옛날버전으로 배웠어서 () => {} 이런 문법들이나 {...} 이런 것들? 아무튼 es6 이후의 문법들을 내가 하나도 모르고 있었는데, 이런 것들도 급하게 빡세게 공부할 수 있었다ㅋㅋ

 

지난주에 너무 막막해서 주말에 오프라인 리액트 스터디를 시작했는데, 이 스터디에 경력이 있으신 분이 있어서 엄청 많은 도움을 받고있다. 처음부터 라이브러리를 썼으면 오히려 이런 모임은 시작도 안했겠지? 다 너무 잘된 것 같다ㅋㅋ 

오늘은 이 리액트 스터디에서 useState와 useEffect를 더 본격적으로 배웠고, api 문서를 받아 화면에 뿌리는 것을 공부했다. 오늘 이걸 배우고 나니 혼자 했으면 진짜 큰일날 뻔 했다는 것을 또 한번 느꼈다ㅋㅋ 그리고 컴포넌트 만들기 따위가 중요한게 아니었구나 하는 것을 다시 알게 되었다ㅋㅋ

 

아무튼 한달 간 엄청 많이 배웠고 너무 즐겁게 공부한 것 같다. 개발자로 처음 일하는 건데, 예전 일(영업관리, 마케팅 등)과 비교해보면 이 일이 진짜 나한테 잘 맞는 것 같다. 특히 나는 일이 주어지면 어떻게든 끝내려고 내 개인 시간을 투자해서라도 하는 성향인데, 예전에 영업관리 일을 할 때에는 이런 일이 생길 때 마다 내 노동력을 착취당한 것 같고, 시간이 아깝고, 돈을 어떻게든 더 받아야겠다는 그런 기분이 들면서 짜증이 났었다. 하지만 개발쪽 일은 내가 열심히 일하고 내 개인 시간을 투자해서 공부하면 그게 다 내 실력이 되고, 나중에 더 편하게 잘 일할 수 있는 기반과 자산이 되는거니까 야근을 하거나 주말에 공부를 하더라도 그게 아깝지가 않고 오히려 더 보람이 있는 것 같다. (신입이라 그런걸까? 나중에는 마음이 바뀔수도 있겠지만 아무튼 지금은 그렇다ㅋㅋ)

 

아무튼 이렇게 한달이 지났고, 곧 첫 월급날이 다가온다!!

신입개발자 한 달 생존을 보고하며! 나는 또 공부를 하러 가야겠다! 

열공중인 예비 개발자들 화이팅!! 열일중인 신입 개발자들 화이팅!! 경력 개발자들도 화이팅(+부럽)!!!

앞으로도 잘 해내봅시다!! 총총총

반응형

댓글