8월 말부터 시작한 프론트엔드 개발 직군으로 구직활동을 하다가 9월 말에 입사를 했다.
정신없이 지나간 한달을 기록하고 앞으로 발전에 대해 적어 보려고 한다.
개요
- 새롭게 배우는 Vue
- 내가 개선할 부분
- 앞으로 할일과 고민들
1. 새롭게 배우는 Vue
나는 코드스쿼드를 통해
React
를 주된 프레임워크로 사용했었다.
하지만 회사에서는Vue + Typescript
의 기술 스택을 가지고 있었기 때문에 새로운 공부가 필요했다.
Vue와 React는 View를 가장 포인트로 잡고 컴포넌트를 만들어 조립하듯 쓴다는 점에서 컨셉이 비슷하기는 하다. 그런 관점에서 봤을 때에는 리액트를 처음 시작했을 때보다 빨리 배워서 적용하고 볼 수도 있었다. 하지만 나에게는 1~2주의 시간 안에 실무에 도입할 수 있는 것들을 알아야 했기 때문에 부담감이 컸다.
여기에 기존의 진행 중인 코드도 파악해야 했다. 프로젝트 크기가 내가 하던 프로젝트의 최소 몇 십 배는 되서 처음에는 한 라인만 보며 이해하려고 했다. 그러다가 화면을 하나 잡고 vue devtool를 활용해 컴포넌트와 store, route, props 흐름을 보았다. 이렇게 보니 뷰 자체를 공부하기에도 편했다.
Vue2와 Typescript를 사용할 때는 편의성을 위해 vue-property-decorator
라이브러리를 사용하는데, 데코레이터가 무엇인지에 대해서도 이해가 필요했다. 결과적으로는 vue는 lifecycle, vuex, template을, typescript는 데코레이터, 제네릭, 타입 정의 방법 등 실무에서 꼭 필요한 부분부터 공부했다.
이해를 하지 못한 부분은 물어보거나 개발하면서 이해하려고 했다. 공부하고 개발하는 과정에서 typescript
에 매력을 많이 느껴서 지속적으로 토이프로젝트에도 적용시켜야겠다고 생각하고 있다. 그리고 Vue3에 hook과 같은 함수형 기법을 사용할 수 있는 문법이 등장했는데 이것도 사용해 보고 싶다.
2. 내가 개선할 부분들
PR 올릴 때는 더 꼼꼼히 확인하자
회사에서는 git을 사용해 코드리뷰를 진행하고 있다. 코드리뷰를 할 때 가장 큰 장점은 내가 미처 생각하지 못한 오류 캐치와 로직 개선을 할 수 있다는 점이다.
하지만 기능이 제대로 완성되지 않은 것을 확인하지 않고 올렸는데, 코드 상에서는 오류를 잡기 힘들 때 머지가 되었다고 생각해 보자. 사용할 때 버그가 발생한다면 해결을 위해 개발 시간보다 2배, 3배의 추가 시간을 잡아먹을 수 있다. 몇 주 전 공통된 로직을 util화 시키는 작업을 했는데, 제대로 동작하는지 제대로 확인하지 않고 머지를 진행했다가 이런 문제가 발생했었다. 개발 담당자가 더블체크 후 리뷰를 진행하는 것이 필수이다.
기존 프로젝트 혹은 기획서를 상세히 살펴 보자
10월까지 레거시 프로젝트를 Vue로 옮기는 작업을 진행했다. 마크업을 가져다가 같은 기능을 만드는 작업이었다.
내가 가장 실수했던 부분은 기능에 대해 명확한 정리 없이 초반에만 체크하고 더 보지 않았다는 것이다. 예를 들어 유효성 검사를 진행할 때, 값이 바뀔 때마다 진행하는 것과 검색하는 시점에만 하는 것은 다른 기능이고 난이도도 다르다. 이걸 잘못 이해하고 진행하면 다시 개발해야 하는 추가 시간이 생겨 버린다.
태스크를 하나 받아서 하면서 2번 정도를 잘못 작업해 허탈감도 많이 느끼고 시간도 많이 잡아먹었다. 나의 소중한 칼퇴를 위해서는 지속적인 체크와 정리는 필수이다!
질문은 빨리 해서 좋은 게 있고, 고민하고 해야 좋은 게 있다.
가장 질문을 많이 했을 때는 진행 중이던 프로젝트의 작업 흐름에 관한 내용이었다. 이것을 이해하지 못하면 작업 자체가 진행하기 힘들어서 최대한 꼼꼼히 질문하려고 정리해서 한 번에 질문했다.
이 외의 질문들은 작업하다가 막히는 부분이 있으면 했다. 막히는 부분에 있어서도 내가 조금 더 삽질해야지 나중에도 더 사용하기 쉬운 것이 있고, 계속 잡고 있으면 시간만 잡아먹는 것이 있다.
전자의 경우는 기존에 사용되던 복잡한 재사용 컴포넌트였다. 라이브러리를 사용한 컴포넌트였기 때문에 라이브러리에 대한 이해도 같이 필요했다. 또, 사용하는 페이지마다 넘겨줘야 하는 props가 달라서 언제 무엇을 넣어야 하는지에 대한 이해는 스스로 파 보면서 하는 것이 좋았다.
후자의 경우는 경험자의 판단이 필요할 때였다. api나 자동배포 시에 에러가 발생했는데, 프론트 측에서 나는 에러가 아닐 때는 어떻게 대처를 해야 하는지에 대한 가이드와 판단이 필요하다. 이럴 때 도움을 많이 받았다. 레거시 화면에서 없는 기능을 만들어야 하는지에 대한 질문, 기능에 문제가 있을 때에 해결을 위한 질문도 종종 했다. 타입 오류 같이 당사자가 파악이 힘든 오류는 나도 다른 동료의 것을 같이 보며 해결하기도 했다.
3. 앞으로 할 일과 고민들
자기계발하기
우선 업무시간과 개인시간의 분리가 필요하다. 아직까지는 초반이라 최대한 칼퇴를 하고 개인시간에는 업무와는 관련이 없는 것을 하려고 했다.(여기서 업무와는 관련이 없는 것은 태스크로 받아서 진행하는 개발 내역이다. 업무에 도움이 되는 공부는 해야 한다고 생각한다.)
개발이 잘 진행되지 않은 날에는 업무적인 스트레스로 인한 피로감에 저녁 시간에 아무것도 할 수 없었다. 이런 날에는 간단한 운동 후 바로 취침하게 됐어서 개인시간을 가지기가 어려웠다. 비교적 컨디션이 좋았던 날에는 운동 후 업무에서 사용하는 스택들(Vue, Typescript)에 대한 공부를 하며 포스팅을 진행했다. 컨디션이 좋았어도 그냥 쉬고 싶은 마음에 유투브와 웹툰을 읽다가 잠들기도 했다.
이렇게 몇 주가 지나고 나니 불안감이 들기 시작했다. 고정 업무 시간이 있는 만큼 그 외의 시간을 알차게 사용해야 하는데 내 마음대로 하다 보니 이것도 저것도 아닌 시간들이 지나가는 것 같다.
그래서 방법을 몇 가지 생각해 보았다. 저녁 시간을 12시~1시 정도로 늘리거나 아침에 5시 30분 정도에 기상해 나를 위해 집중하는 시간을 가지는 것이다. 아직 무엇이 더 좋은지 판단이 서지 않기 때문에 월,화를 일찍 기상, 수,목,금을 늦게 취침으로 해 보려고 한다. 이 때 할 일은 주 1회 포스팅하며 공부하기, 개발 서적 읽기, 토이프로젝트 진행하기 정도가 될 것 같다.
나에게 맞는 공부 방식으로 공부하기
나는 약간의 강제성이 들어가야 더 잘 집중하고 효율성도 높은 스타일이다. 포스팅도 스터디를 통해 주 1회 1개씩 반강제적으로 작성하고 있다.(안 쓰면 벌금이 있다.) 그래서 혼자 진행하는 토이 프로젝트는 강제성이 약해져 진행하기가 어려운 것 같다. 이번 달 부터는 토이 프로젝트도 협업할 수 있는 방식으로 구할 예정이다.추가적으로 8월까지 주 1회씩 하던 자바스크립트 알고리즘 스터디도 다시 시작할 것이다.
여가 시간 갖기
평일 하루, 주말 하루 정도는 온전히 내가 하고 싶은 '취미 활동'을 하는 시간으로 해야 지치지 않고 할 수 있을 것 같다. 평일에는 정말 놀고 싶은 날 하루의 퇴근 후 시간에 놀고, 주말에는 토요일을 재충전하는 시간, 일요일을 회고하며 새롭게 시작하는 시간으로 가질 것이다.
마무리
신입 개발자로 첫 취업을 하고 걱정과 설렘을 가졌던 첫 한 달이 지났다. 개발자로서의 캐리어의 첫 시작 지점에서 성장하고 싶은 욕구와 이대로 안주하고 싶은 욕구가 동반하게 된다. 그래서 회고 활동으로 지속적인 동기부여가 필요할 것 같고 10년 후에 어떤 개발자이고 싶은지에 대해서 구체적으로 생각 해야겠다.
대형 IT 기업에 가고 싶은지, 스타트업에서 기여를 많이 하고 싶은지, 유명한 개발자가 되고 싶은지 말이다. 경우에 따라 내가 노력해야 하는 경로가 많이 달라질 수 있으니 말이다.