2019년, 상반기 회고
페이스북에 포스트를 하나 작성하였는데, 생각해보니 블로그 글로 작성해보아도 좋을 거 같아서 블로그 글로 작성해본다.
지금 은님은 네이버에서 정확히 무슨 일을 하시나요?
우선 5월까지는 스마트에디터라는 조직에서 UI/UX 개발 업무를 담당했다. 단순하게 말하면 HTML + CSS 작업을 했고, 거기에서 약간의 JavaScript를 추가로 작업한 수준이다.
6월부터는 UGC Frontend 라는 조직에서 신 사업의 UI/UX를 포괄한 FE 작업을 하고있다. 이 작업에는 API와 연동하는 작업도 포함되어있어 기존에 내가 하던 작업보다 더 포괄적인 작업을 해야했다. (내가 하고싶다고 했다)
은님이 가지고 있는 지식은 어떤가요?
HTML, CSS에 대해서는 그래도 나름 꽤 깊은 수준의 지식을 가지고 있다고 생각하고 있다. 특정한 설계 화면이 있을 때 이 화면을 어떻게 구성해야하고, 어떤 식으로 CSS를 작성해야 표준을 준수하면서 성능은 좋고 레거시 브라우저까지 대응할 수 있는 지에 대해서 한 눈에 알 수 있는 정도.
물론 그렇다고 해서 모든 문제가 하루아침에 풀리는 것은 아니다. 나도 겪어보지 못한 다양한 UI 실패 케이스에 대해서 분석해서 해결해보아야하고, 최근 대부분의 문제는 iOS Safari에서 나오고 있다.
2014년-2015년쯤 사용했던 JavaScript 패러다임에 대해서 어느정도 깊게 이해하고 있다. jQuery를 사용해야만 했었던 시대의 이유와, 유사 객체지향 패턴, Class 문법이 없는 상황에서 어떤 식으로 개발을 했는 지, AJAX 호출은 어떻게 했는 지 등이다. 이제 보면 레거시라고 생각할 수도 있겠다.
React가 어떻게 생겼고 어떻게 동작하는가에 대해서 이해하고 있다. Vue나 Angular에 대해서도 마찬가지다. 클라이언트에서 라우터를 동작시키는 이유와, SSR와 SPA의 차이 정도는 알고있다.
서버와 클라이언트가 어떻게 통신하는 지에 대해서 ‘대략적'으로 알고있다. 하지만 깊은 지식이라고 말할 수는 없겠다.
영어는 곧잘 하고, 일본어는 네이티브 수준으로 할 수 있다. 한국어를 오히려 못하고 있는 거 같기도 하다.
PWA, AMP, SEO 등에 대해서는 깊게 공부한 편이라고 생각하고, 다른 사람들이 모르는 영역까지도 나름 설명해줄 수 있다고 생각한다. 실제 회사 서비스에 구현해보고 싶지만 현재 그런 상황이 아니라고 생각한다.
Status
서버에 어느날 문제가 생겨서 500 에러가 무한대로 노출된다던가, 페이지를 실수로 삭제해서 404가 노출되는 것처럼 인간에게도 상태 코드가 나타나서 ‘너는 지금 우울증이야!’ 라고 딱 알려주면 얼마나 좋겠나 싶지만 인간에게는 그런 상태 코드따위 없다.
개발자가 새로운 것을 도전하는 것은 어떻게 보면 숙명이지만 한편으로는 큰 부담이기도 하다. 현재 상황을 바꾸고 싶지만 나보다 뛰어난 개발자가 많고, 나라는 사람이 얼마나 뛰어난 지에 대해서 알 수 없기 때문이다.
회사에서는 당연히 한 사람에게 의존하여 서비스를 만들 수 없기 때문에, 회사가 커지면서 개인이 맡은 역할도 점점 줄어들기 마련이지만 개인에게 이는 자존감 하락으로 이어지는 경우도 있다. (보통 나를 믿지 못한다고 생각하기 때문이다.)
나는 UI/UX 개발 업무가 주 업무지만 회사에서는 항상 API 연동에 대한 이야기를 하였다. HTML과 CSS 개발이 중요한 건 알겠지만 네이버에서 그런 업무를 하고 있는 사람이 몇 없는 것도 사실이기도 하다.
직간접적으로 은님도 그 쪽 업무를 해야한다는 압박을 받아왔고, 그런 압박은 점점 쌓여서 결국 자존감 하락으로 이어졌다. 그리고 시대는 바뀌었고 나도 결국 그런 업무를 해야한다는 것도 알고 있었다. 세상은 스페셜리스트보다 제너럴-스페셜리스트를 원하더라.
이런 상황을 탈피하기 위한 많은 노력이 있었지만, 나에게 가장 효과적인 것은 다른 것이 아니라 ‘입사 지원’이었다.
다른 회사에 지원해보자
아래 내용은 페이스북을 그대로 복사-붙여넣기했다.
예전에도 이야기했던 적 있지만, 나는 도전적이라고 생각하는 다른 회사에 주기적으로 입사 지원을 하고있고 주기적으로 떨어지고 있다. 입사 지원을 하고 떨어지는 과정까지가 상당히 괴롭고, 자존감이 떨어지는 시간이기도 하지만 여기에서 얻는 것이 꽤 많다.
1. 내 현재 상태를 알 수 있다.
내가 어떤 부분에서 현재 직장에 불만이 있는 지, 어떤 부분에서 심리적 진단이 필요한 지, 어떤 부분에서 더 공부해야하는 지. 라이브러리에 의존할 필요 없이 ECMA Script만 가지고도, 개발 가능한 사람이 되어야겠다고 생각하고 있다. (가능하다)
2. 내 현재 실력을 알 수 있다.
면접관이 어떤 부분을 중요하게 생각하는 지, 내가 어떤 부분이 약한 지에 대해서 알 수 있다. 따라서 해당 부분을 보충하기 위한 추가적인 리소스를 사용하고, 다음에 개선해서 다시 도전할 근거가 마련된다.
3. 회사에 얽매이지 않는다.
지난 주까지는 너무 힘든 일이 많았는데 (1)을 통해서 내가 어떤 게 필요한 지에 대해서 다시 점검했고 같이 상담해서 잘 해결했다.
Fit이 맞지 않는 것에 대해
이 과정에서 한가지 알았던 것은 나를 필요로 하는 조직에서는 나를 어떻게든 채용하려고한다는 것이었다. 다만 내가 원하는 조직과 나를 필요로 하는 조직이 서로 다를 수 있다는 점에 대해서는 항상 감안해야했다.
예를 들어서 내가 잘하는 일을 예로 들어보자.
- HTML + CSS
- JavaScript (UI Layer)
- 글쓰기
- 새 기술을 익히고 전파하는 것
- 개발자들과 이야기하기
- English + Japanese
근데 나는 이런 걸 해보고 + 잘하고 싶었다.
- API 연동
- 큰 규모의 웹 어플리케이션 개발
- 업무로써 웹 어플리케이션 개발
조직을 옮기면서 위 3가지에 대해서 할 수 있을 것이라는 이야기를 들었고, 지금 조직으로 옮겼다. 이 과정에서 당연히 다른 조직에서도 제안이 온 곳은 있었지만 아쉽게도 가지않았다. (하지만 어떻게 될 지 모른다, 인생은 항상 열린 결말)
그리고 나같은 경우
- 자유로운 출퇴근이 어느정도 보장되는 곳
- 해외 컨퍼런스에 주기적으로 나가도 되는 곳
- 발표 + 글쓰는 것을 환영하는 곳
이 필요했고 지금 조직이 Fit이 맞았다 정도로 생각해보면 좋겠다.
와 힘드시네요!
원래 사는 게 힘든 거 아니겠냐는 생각과, 그래도 한번 사는 인생인데 행복하게 살아야하지 않을까가 늘 공존하고 있다. 행복하게 살아야겠다고 생각했으면 개발자를 안했어야 (…)는 농담이고 어느정도 포기하고 살았으면 행복하게 살았을 수도 있을 거 같다.
요즘에는 무언가를 손에서 내려놓는 연습을 많이 하고있다. 무언가를 더 손에 쥐려면 손에 있는 것을 내려놓아서야 비로소 시작되는 것임을 깨달은 거 같기도 하다. 욕심을 더 부릴 수록 다른 사람들이 고통받거나 피곤해하는 것 또한 알기도 했다.
하반기에는 앞으로 어떤 일이 있을 지 모르겠지만, 앞으로 아주 먼 길을 꾸준히 밟아나갈 거니 천천히 한발자국씩 밟아나가고 싶다.