Merge 기념일

John Cho
5 min readJun 29, 2019

--

내가 만들었다.

2019년 6월 28일은 내가 네이버에서 한 API 작업이 첫번째로 머지된 날이다. (남들이 보면 졸라 별거 아니겠지) 하지만 나에게는 졸라 별거니까 이 글을 작성해본다.

마크업 엔지니어는 FE가 될 수 있나요?

결론부터 말하자면 가능하지만, 정말 힘들다. 본인이 생각하는 것 이상으로 많이 공부해야하고 많이 물어봐야한다. 주변 사람들을 힘들게 만들 수 있다는 것 또한 각오해야한다.

만약 본인이 JS에 대한 지식 없이 FE 개발자가 되려고 한다면 당장 JS부터 공부하길 바란다. JS는 기본이고, 거기서 더 많은 지식을 터득해야 한다.

나는 퍼블리셔라는 표현을 별로 안좋아하므로 마크업 엔지니어라고 부르도록 하겠다. 많은 이론들이 Front End에 HTML, CSS를 포함한다고 이야기하지만 실제 업계에서 통용되는 Front End 개발자는 HTML, CSS를 포함하여 이해하지 않는다.

이번 작업을 시작하기 전 내 상태는 이랬다.

  • ES2018 문법을 대략적으로 알고 있는 상태. 실제로 사용해보지 않았다.
  • XHR을 2014년쯤 jQuery로 호출해봤다.
  • CORS가 문제라는 것은 잘 안다
  • React 등이 돌아가는 구조는 안다 (state나 props나 and so on…)
  • HTML, CSS는 어느정도 잘 한다.

이 상황에서 조직을 옮기면서, 우선순위가 높은 프로젝트에 투입되었고 급한 상황에서 FE를 시작하게 되었다. 처음은 UI 작업을 시작했다. 대부분의 마크업 엔지니어가 그러하듯 프로젝트에 나 혼자 있었는데 FE 작업을 발이라도 담그고 싶어서 혼나가듯 개발을 했다. (그리고 졸라 힘들었다..)

회사는 학원이 아니기때문에 본인이 원하는 것을 하고싶다면 본인의 가치를 증명해야한다고 생각한다. 나는 FE는 완전히 시작하는 사람이었고, UI는 그래도 곧잘하는 편이었기에 UI에서 많은 점수를 따두려고 노력했다.

첫 FE 개발 어땠나요?

리더가 나에게 정말 많이 물어봤다. 일단 긍정적인 이야기부터 하자면,

  1. 어플리케이션 전체가 어떻게 돌아가는 지 알 수 있었다.
  2. Redux 왜 쓰는 지 확실히 알겠더라
  3. React함수형 컴포넌트와 Hooks는 어려웠지만 재미있었다.
  4. TypeScript 편하더라
  5. 내가 API 쏜대로 데이터 바뀌고 반영되는 게 재미있었다.

그리고 힘들었던 이야기를 하자면

  1. 새로운 것을 학습할 시간은 부족한데 당장 새로운 무언가를 만들어야하다보니 심리적인 부담감이 컸다.
  2. 리뷰를 거치다보면 자신감이 떨어지는 경향이 있다. 한 PR에 코멘트가 50개 넘어가고 일주일 가까이 리뷰를 받으면서 자신감은 떨어지는데 조급해지면서 내가 잘하고있는건가에 대해 생각했다.
  3. FE 작업은 처음입니다만.. Redux에 TS에 Functional에 기타 등등을 이해하는 데에는 큰 노력이 필요했다. 삶이 힘들더라.

결론적으로 말하자면 하늘이 무너져도 솟아날 구멍은 있다는 말이 있듯, 처음에는 아무것도 몰랐지만 이제 어떤 식으로 데이터가 오가는 지 정도는 감을 잡아가고 있는 수준이라고 보면 좋을 거 같다.

모른다는 것을 인정하는 것

이 글을 쓰게된 주 목적이기도 하다. 당신이 얼마나 뛰어난 사람인가와는 상관 없이 본인이 모르는 것에 대해서 모른다고 솔직히 말하는 용기가 필요하다.

다만 모르는 것이 있을 때 모르는 데서 끝나는 것이 아니라, 내가 이 부분의 어떤 부분이 이해가 안되며, 이 부분을 이해하기 위해서는 어떤 사전지식이 필요한지 미리 알아두는 것이 중요하다고 생각한다.

예를 들면, 이번에 이런 것들이 이해되지 않았다.

  • 액션, 리듀서, 스토어, 서비스, API 간의 관계
  • 스토어에서 데이터를 업데이트하면,
    React가 이를 어떻게 받아서 처리하는 지
  • 미들웨어가 왜 필요한 지

새로 시작하는 사람이라면 당연히 모를 수 있는 지식이며, 나도 지금 어떤 개념인 지 정확히 이해해서 사용하는 것이 아니라 ‘이렇게 동작하는구나' 정도로 이해한 수준이다.

질문의 방법도 명확하면 좋다. 내가 생각하는 안좋은 질문은 아래와 같다.

??? : ‘이게 뭐에요?’

??? : ‘왜 이렇게 해요?’

??? : ‘이게 안돼요'

내가 생각하는 좋은 질문은 아래와 같다.

??? : ‘이 부분이 안되는 데, 제 생각에는 Store 업데이트가 정상적으로 이루어지지 않는 거 같아요. 혹시 이 부분에 대해서 설명해주실 수 있으신가요?’

??? : ‘제가 생각했을 때에는 이 메서드가 이런이런 이유로 적합하다고 생각했는데, 더 좋은 메서드가 있을까요?’

사실 명확하다. 하다가 안되면 왜 안되는 지 정도는 검색해보자.. 그 정도 검색할 시간은 있잖아? 하지만 또 다른 깨달음은 검색을 하려면 검색어를 알아야한다는 것이다.. 나 같은 경우에는 React, Redux 개발자 도구가 많은 키워드를 던져줬다.

하지만 지금 생각해보면 나쁜 질문도 많이 했구나..

끝으로

UI 레이어를 다루는 것과 FE 레이어를 다루는 것이 다르다는 것을 인지하고 받아들이기까지 꽤 오랜 시간이 걸린 거 같다. 내가 잘하는 일을 굳이 손에서 떼내고 싶지도 않았다.

어느 시점부터인가 세상은 바뀌었고 UI를 아무리 잘해도 FE 개발이 필요한 시점이 오더라. 지금은 비록 시작하는 단계지만 앞으로 더 발전할 수 있으리라 생각하면서 오늘도 공식 가이드를 편다.

--

--

John Cho
John Cho

Responses (1)