로토의 블로그

2018년을 회고하며

2018년을 회고하며 대표 이미지

2018년의 마지막 날 작성하는 회고록.

Dev

올해 1월말 현재의 회사의 Front-end 팀으로 회사를 옮기게 되었다.

생각나는대로 올해 회사를 다니며 했던 일들을 나열해보면 아래와 같다.

GOPAX

flow & eslint

입사 후 처음에 했던 일은 주로 코드의 퀄리티를 높이는 작업이었는데, flow 설정, eslint 에러 fix 등이었다.

29351550_1699713923429935_1335326861853021572_o
입사 초기 500여개던 lint error를 줄인 기념으로 캡쳐했던 사진. 지금은 에러를 모두 잡았고 한 개만 나도 빌드가 깨지게 되어있다.

평단가 페이지 개발

입사하고 나서 가장 먼저 맡은 큰 작업은 평단가 화면을 만드는 작업이었다.

현재 회사에 입사하기 전 GOPAX 거래소의 초석을 튼튼하게 닦아놓은 김석준 님과 이런 대화를 나눴고

---
진짜로 입사해서 구현하게 될 줄이야.

기존 프로젝트에서 reselect를 적극적으로 세팅해놓은 덕분에 데이터 가져다가 쓰기가 무척 편했다.

Landing Page 개편

거래소 사이트의 얼굴인 Landing Page를 새로 만드는 작업을 했다.

기존에는 static한 정보만 보여줬는데, 마케팅용 배너 캐로셀, 실시간 가격현황을 보여주는 기능을 중심으로 개발되었다.

www.gopax.com 개발(국내 접속 불가)

기존 거래소 코드를 이용해 글로벌 거래소를 런칭하는 프로젝트를 진행했다.

기존 코드가 react-redux-i18n 기반으로 한글 / 영문 언어팩이 분리가 되어있어서 쉬운 작업이 될 것으로 예상했지만, 역시 세상에 쉬운 일은 없다.

  • 소스코드를 분리할까 아니면 같은 코드 베이스에 일부 코드만 분리할까 고민하다, 우선은 같은 코드 베이스에 일부 if 문을 넣어서 처리하는 식을 선택했다.
    • 그리고 몇달 후 이 선택을 후회하게 된다.
  • 기존 kr 거래소의 en.js 영어 언어팩을 그대로 쓰기에는 거래소 방침 상 달라지는 부분이 있다. 이런 경우 기존 언어팩을 그대로 쓸 수 없다.
  • 프로젝트 막바지에 갑자기 중국 언어팩 추가 요청이 왔다.
  • kr 거래소의 경우 KRW, 즉 한국의 원화가 기축통화인데 www.gopax.com 에서는 그런 현물 통화가 없다. DAI 라고 하는 stable coin을 기준으로 삼는다.
    • 이 부분이 미묘한 로직 상의 문제를 낳는데, KRW는 실제 돈이고 DAI는 암호화페이다. 그러다보니 기축통화 기준으로 하는 로직에서 미묘하게 달라지는 부분들이 존재했다.
  • kr 거래소와 신원인증 하는 방식이 달랐다. kr에서는 신분증 사진을 업로드하면 관리자가 보고 승인하는 방식이었는데, com 거래소에서는 jumio 라는 서비스를 썼다.
  • 글자 수가 한글/영문인 경우 달라져서 디자인이 깨지는 부분은 생각보다 적었는데 이것은 기존 kr 거래소에서 영문을 지원했기 때문에 어느정도 보장이 되던 부분.

우여곡절 끝에 오픈을 하긴 했는데, 트래픽도 거의 없고 사실상 죽은 프로젝트라고 보고 있다.

여러모로 아쉬웠던 프로젝트.

www.gopax.co.id 개발

닷컴에 이어 이번에는 인도네시아 거래소 프로젝트를 진행했다.

이 프로젝트의 경우 기존 kr / com 보다 다른 점이 더더욱 많았는데, 이로인해서 매우 고통스러운 작업의 연속이었다.

  • 인도네시아어 특성상 단어가 길어서 레이아웃이 깨지는 부분이 많았다.
  • com 개발 시 삼항연산자로 구현했던 분기 로직들이 전부 문제가 되었는데, kr이 아니면 com.. 이라는 식으로 된 코드들을 전부 고쳐야 되었기 때문이다.
  • IDR이라는 현찰 기축통화가 존재했기 때문에, 이와 관련된 입/출금 메뉴 등을 완전히 새로 개발해야 되었다.
  • 그외에 기존 화면을 유지하면서 인도네시아만의 특별 로직을 심어야 하는 경우가 계속해서 생겼다.
    • 차라리 코드 중복이 심했더라도 com 프로젝트 했을 때 코드 베이스를 분리했었다면 더 좋지 않았을까라는 후회를 하게 됐다.
    • 코드 베이스 분리는 못 했어도 패키징으로 구분이라도 좀 해놓을걸 싶었다. 컴포넌트의 사용처에 따라 common, kr, com, id 등으로.

무엇보다도 힘들었던 것은 대부분 지루하고 귀찮은 단순 코딩 작업이 많았다는 것. 어떠한 기술적 목마름이 해소되는 것도 딱히 없었고 재미도 없었다.

테스트 하는 것도 문제였는데, 이제는 기능 하나를 고치면 로컬 서버를 세번씩 띄워가면서 테스트 해야한다. 해당 기능이 kr, com, id 세 곳에서 문제없이 돌아가는지 봐야하기 때문에.

그외에

팀장이 되었다

올 여름쯤 본의 아니게 팀장이 되어 팀장 업무를 하게 되었다.

사실 전전직장에서는 약간이지만 담당했던 프로젝트를 리딩하면서 주니어 친구들에게 일감을 나눠주고 하는 일을 하긴 했었는데, 이렇게 아예 팀장을 달고 일을 시작하게 된 건 처음이다.

마침 같이 일하는 동료의 성장에 어떻게 도움을 줄 수 있을까를 매우 고민하던 시기였고, 이것과 관련해 나 자신의 성장에도 도움이 될 것이라는 생각에 회사의 제안을 받아들였다.

암호화폐 예치 서비스 화면 개발

DASK라는 서비스의 화면 및 어드민 개발을 했다.

이 프로젝트는 아직 진행 중이다.

사이드 프로젝트 안 고독한 미식가

사내 해커톤을 했다가 나온 아이디어를 팀원들과 계속해서 발전시켰던 프로젝트.

목적은 회사 내에서 같이 밥 먹을 사람 / 밥 시켜먹고 남는 시간에 놀 사람들을 모집하는 프로젝트다.

https://party.roto.codes/ 에서 볼 수 있으며 소스코드는 https://github.com/rotoshine/you-are-not-a-solitary-gourmet 에 있다.

이 프로젝트에서 TypeScriptFirebase, Mobx를 적극적으로 써보면서 좋은 경험을 했다.

특히 Single Page Application에서 SEO 처리를 Firebase Functions 라는 것을 통해 처리해보는 경험을 했디. 관련 경험은 https://blog.roto.codes/create-react-app-using-firebase-functions/ 에 정리해뒀다.

지금은 개발을 잠시 멈춘 상태지만, 2019년엔 다시 재개할 예정.

좋았던 점

기술적으로 다음과 같은 경험과 성장을 느꼈다.

  • 기존 코드 베이스에 Flow를 적용하는 경험
  • AWS 기반의 배포 경험
    • 작업했던 모든 프로젝트가 Single Page Application이었고, 이 덕분에 build 하면서 만들어진 bundle과 asset들을 S3 Bucket에 업로드한 뒤 S3 BucketCloudFront를 연동하는 식으로 배포를 했다.
    • 덕분에 Back-end와 완벽하게 분리된 환경이라서 좋았다.
  • WebSocket 기반의 Back-end 환경 연동 개발 경험
    • REST API 하나도 없이 완전 WebSocket 기반의 작업을 주로 했다.
    • 늘 해보고 싶었던 작업이었는데 경험하게 되어서 정말 좋았다.
  • TypeScript 경험
    • 안 고독한 미식가, Dask, Dask Admin 프로젝트에는 적극적으로 TypeScript를 도입했다.
    • 이제는 다른 프로젝트 할 떄에도 자신있게 도입하자고 할 수 있을 것 같다.
  • rxjsredux-observerble 맛보기. gopax 프로젝트에 이 두 개가 적용되어 있어서 조금 맛봤다.
    • rxjs 뇌튜닝은 이제 한 30% 정도 된 듯. 좀 더 써봐야 적극적으로 쓸 수 있을 듯 하다.

아쉬웠던 점

  • 처음 입사 했을 당시의 팀원들이 전부 퇴사했다.
  • 하반기에는 별로 자극이 되지 않는 단순 작업들 위주만 해서 조금 지쳤다.
  • 블록체인에 대해 좀 더 깊게 공부하지 못했다.
  • 토이 프로젝트를 생각보다 많이 하지 못했다.
  • 블로그에 기술 관련 글을 거의 못 썼다.

2019년의 다짐

  • 토이 프로젝트를 좀 더 열심히 해야겠다.
    • github에 잔디를 열심히 심어야지...
  • 블로그에 못해도 격주로 글 하나는 쓸 수 있도록 해야지
  • 일본어 공부와 영어 공부하기
    • 일본어는 JLPT 3급을 목표로
  • 결국 올해도 모바일 앱 하나 못 만들었다.
    • React Native 깨작깨작은 계속 했지만 뭔가 완성된 앱은 없다.
    • 우선 내년에는 Kotlin을 좀 보고 안드로이드 네이티브 앱부터 좀 만들어봐야겠다.

Band

이디어츠라는 Punk Rock 밴드에서 Bass 연주를 맡고 있다.

1st ep 발매

첫번째 ep 앨범 녹음 작업에 참여했고, 그 결과물을 세상에 내놓게 되었다.

1st-ep

멜론, 벅스뮤직, 네이버 뮤직, 애플뮤직 등 스트리밍 사이트에도 들을 수 있다.

기념하여 공연도 하니 많은 분들이 놀러오셔서 즐기셨으면 좋겠다.

KakaoTalk_20181224_152243705

좋았던 점

  • 스튜디오에서 레코딩을 해보는 경험을 하게 되었다.
  • 여러모로 신기한 경험을 했다. 앨범 제작에 참여하게 되다니.

아쉬웠던 점

  • 스튜디오에서 레코딩을 하면서 연습 부족을 절실히 느꼈다.
  • 곡 작업한다는 명복으로 오디오 인터페이스도 샀지만 실제로는 곡 하나도 못 썼다.

2019년의 다짐

  • 하루 한 시간은 연습하자
    • 연습을 기록해야겠다. github을 이용해서 잔디를 심어가면서 시각화 해놔야지.
  • 곡 작업에 참여하기

그외에

  • 새 가족이 생겼다. 이름은 차이로 지었다.
  • 다행히 나나와 사이좋게 지낸다.
  • 둘 다 2019년에도 행복하고 건강했으면 좋겠다.

---1

마치며

2018년은 이래저래 아쉬운 부분이 많았지만 그래도 2017년보다는 매우 나은 한해였다.

2019년에는 더 좋은 일이 많기를 바라며.