#diary
들어가며
2019년 초에 입사할 때만 해도 "올 한 해는 정말 빨리 가겠다" 싶었는데 정말 그랬다. 순식간에 2019년도 끝자락에 와 있다. 글쓴이는 이제 몇 시간만 있으면 서른 살이 되기도 하고... 개발자로서도 프리랜서 1년, 회사 1년 도합 2년 차 경력이 생겨버렸다. 과연 나는 쌓은 시간만큼 제대로 된 프론트엔드 개발자가 되어 있는 걸까? 이렇게 막연하게만 생각하면 불안감만 커지는 것 같다. 많은 사람들이 "회고"를 작성하는 이유가 무엇인지 이제야 알겠다는 생각이 든다.
내가 지금 어디까지 와 있고 어디로 나아가야 할지 가늠하는 건 모든 직장인에게 필요한 일이겠지만 특히나 개발자에게는 이러한 덕목이 더 중요하게 요구된다. 끊임없이 키보드 위에 뭔가를 적어야 하는 일의 특성 상, 매우 이과스러운 직업임에도 글쓰기가 친숙하고 가까울 수밖에 없는 기묘한 직업이라 그런 것 같다.
2019 활동
1. 한국어음중개 입사
기업 어음을 대출 상품으로 취급해 P2P 투자를 유치하는 한국어음중개에 입사했다. JSP로 설계된 기존 프론트엔드를 React 기반으로 변경하는 프로젝트를 진행 중이다. 내가 직면했던 가장 큰 문제는 다음의 세 가지였다.
- 사이트를 완전히 교체하기까지, Spring Security가 발급하는 세션을 React가 참조/공유해야 한다. 두 사이트를 오가는 동안 세션 공유가 완벽하게 이루어져서 만료되지 않은 세션을 만료됐다고 오해하든지, 세션이 만료됐는데도 화면을 넘기지 못한다든지 하는 일이 벌어지지 않게 해야 한다. 그런데 사이트 교체가 모두 끝나면 자체 세션을 운영해 거꾸로 JSP가 세션을 참조할 수 있게 해야 한다!
- 거대한 규모의 기업정보 데이터베이스를 분석하고 시각화해야 하는데 관련 문서가 전혀 없었다. 오로지 기존 JSP 소스코드만 보고 해결해야 하는 상황이었다. 백엔드 팀에게 여쭤보는 것도 어느 수준 이상은 실례가 되기 때문에 알아서 해결해야 했다.
- 비즈니스 로직이 노출되지 않도록 프록시 서버를 구성해, raw query가 노출되는 일 없이 Ajax 요청을 수행해야 했다. 이 요청이 중간에 탈취되는 일이 없도록 보안 설정을 하는 것도 필수!
이를 해결하기 위해 React를 SSR 환경으로 운영하는 것이 반드시 필요했고, 여름엔 이와 관련된 발표를 하기도 했다. (초대해주신 분들 감사합니다! 아래에 자세하게 적겠습니다) 교체 프로젝트는 여러 난관을 겪고 이제 7부능선을 넘긴 기분이다. 1/4분기 안으로 완료하는 것이 현재 목표다.
2. 각종 발표
AWS 한국 사용자 모임과 JS is EveryWhere 컨퍼런스에서 두 차례 발표를 진행했다.
- AWS 사용자 모임: AWS Amplify & Cognito를 이용한 인증 시스템 구현
- JS is Everywhere: Create-React-App으로 SSR 구현하기 (feat. TypeScript)
두 가지 모두 회사에서 사이트 교체 프로젝트를 해결하는 과정 중에 나온 결과물들이었다. 인증 시스템 구현은 사내 신규 어드민 페이지 접근 시 인증 방법을 간소화하기 위해 고민하다가 찾아낸 방법이었다. 사내에서 G-suite를 사용 중이라 사내 계정을 이용한 구글 로그인만 허용하게 하는 OAuth 설정을 활용할 수 있었고, 그래서 활용했던 방법이었다.
JS is Everywhere에서는 서버 사이드 렌더링을 구현했던 경험을 발표했다. 여러 자바스크립트 관련 동호회가 연합해서 구성된 컨퍼런스여서 규모가 매우 컸다. 광화문 마이크로소프트 사옥에서 진행했는데 발표 당시 청중 분들이 거의 120명가량 되었다고..!
계속 발표를 하고 싶은데, 고작 6개월 사이에 내가 많이 뒤쳐진 것은 아닌가 하는 생각이 들곤 한다.
3. 블로그 글쓰기
가장 부끄러운 부분이다. 상반기에는 6편, 하반기에는 고작 3편밖에 글을 쓰지 못했다. 글쓰기에 대한 부담감이 점점 커졌던 탓이다. 충분한 길이를 가진 의미 있는 포스팅을 써야 한다는 생각이 컸다. 남들에게 완벽한 모습으로 보여야 한다는 생각을 좀 덜어내고, 2020년부터는 나에게 도움이 됐던, 새로 알게 된 내용들 위주로 간단한 글을 자주 써보려고 한다.
하지만 역시 긴 호흡으로 준비했던 글들이 더 의미 있었던 것 같다. 9월달에 썼던 React Hooks와 Context를 이용한 설계 패턴 은 개인적으로 오래 고민해 왔던 React의 상태 관리 패턴에 대한 내 생각을 정리할 수 있어서 좋았다. 얼마나 많이 이해해주셨을지는 잘 모르겠지만 ^^;
마치며
이렇게 내 나름의 회고를 마쳐봤다. 생각해보면 2017년 여름에 프로그래밍을 처음 배우기 시작하고 이제 2년 반이 셈인데, 삶 자체가 달라지지 않았나 싶다. 소설을 쓰던 손으로 코드를 치는 것도 신기한 일이지만 프로그램이라는 추상적 구조물을 쌓아올리는 재미가 결국 글쓰기와 맞닿아 있지 않은가 하는 내적 깨달음을 얻기도 했던 시간이었다. 물론 아직도 자기 자신에 대한 회의감이 크다. 내가 주니어 개발자 정도까지는 달려올 수 있었지만 앞으로 시니어에 이를 때까지 더 큰 개발도 해낼 수 있을까? 부족한 점이 많은데, 결국 방법이 없다. 계속 글을 쓰면서 경험한 것을 이곳에 남겨야만 한다. 블로그를 이정표 삼아 채워가고 달려갈 수밖에 없다. 개발자란 결국 기록한 것으로만 인정받는 정직한 직업인 듯하다. 감사하기도 하고 버겁기도 하고.