나의 2017년을 회고하다..

다사다난했던 한 해였다.

2017년에 나에게는 많은 일들이 있었다.
이미 작년이었던 2016년 12월 20일쯤 다니던 직장에 대대적인 구조조정이 있었고 이때 개발팀 인원이 5명에서 2명으로 감소했다.

혼자 남았다는 죄책감에 내적 스트레스도 많았지만 2명 남은 개발팀에서 내가 사수였기 때문에 이를 이끌어나가야 할 수밖에 없었다.

작은 개발팀을 효율적으로 쓰기 위한 노력

당시 우리 팀은 github과 circleCI, newRelic, AppSiginal 를 이용하여 서비스를 관리했다.
가지고 있는 자원으로 어떻게 하는 것이 좋을지에 대해서 동료와 고민했고 이렇게 팀을 운영했다.

github을 적극 활용

  • Pull Request 기반의 코드리뷰를 진행했다. 기존에도 PR은 사용했지만 코드리뷰가 없었다.
    1. 우리끼리라도 품질을 올리고 오류와 실수를 줄이기 위해서 코드리뷰를 진행했다.
    2. 주로 성능과 코드 컨벤션에 대한 이야기를 많이 했고 코드 설계도 함께 진행할 수 있었다.
    3. 보안/성능 결함에 대한 체크가 가능했다.
  • GITHUB ISSUE 기반의 이슈 트래킹
    • 실제로 회사 전체는 BASECAMP와 콜라비를 사용했지만 CODE BASE의 이슈 트래킹은 github을 통해 진행되었다.
    • github issue를 기반으로 개발을 하게 될 경우 커밋 메세지와 연동하여 이슈를 정리할 수 있어서 좋았다.
    • 실제로 해당 이슈에 대한 코드를 롤백하거나 참조해야 할 때 훨씬 빠르게 찾아낼 수 있었다.

CircleCI의 활용한 자동 배포

팀에서 핫픽스 작업과 배포를 전담했기 때문에 휴가를 써도 노트북을 가지고 다녀야 했고 심지어 공연장에서도 모니터링을 하기도 했다.
CircleCI는 github 저장소에 변동이 있을 때마다 알아서 테스트를 진행해주는 서비스이다.
우리 팀은 TDD를 하거나 테스트 커버리지가 높은 회사는 아니었지만, 최소한의 단위 테스트 정도는 하려고 노력했다.

master 브랜치에 코드가 푸쉬가 되면 CircleCi를 통해 테스트가 통과되고 통과 결과에 따라 자동으로 서비스 배포를 진행할 수 있도록 환경을 구축했고 이로 인해 늘 노트북을 가지고 다닐 일이 없어졌다.

아쉬웠던 점

팀을 책임지고 소프트웨어의 품질을 관리해야 한다는 부담감과 압박감에 되는대로 살았던 것 같다.
눈 앞의 일정에 치여서 설계를 할 여유도, 공부를 할 여유도 없었다.
휴가를 써도 코드 핫픽스 작업과 배포를 대기해야 하는 상황이었기 때문에 당연히 컨퍼런스도 다닐 여유가 없었다.

생각하는 대로 살고 싶었지만 되는대로 살았던 것 같아서 너무 힘이 들었다.

그럼에도 열심히 했다.

APM(Application Performance Management) 툴을 이용해 서비스도 자주 확인했고, 오토 스케일링까지 구현하진 못했지만 홍보용 메일이나 문자를 보내는 날은 ELB로 2~3개의 서버를 연동하는 등의 작업들도 경험했다.

두 명이서 서비스 비즈니스 모델 변경 작업과 사이트 리뉴얼도 완료했고, 퇴사할 때까지 서비스가 뻗어서 문제가 된 적은 없었으니 충분히 만족한다.

동료 개발자와 코드를 개선하기 위해서 노력하는 자세에 대해서 더 곰곰이 생각할 수 있었다.
애자일, 테스트 주도 개발, 설계라고 불리는 것의 완성된 모습에는 훨씬 못 미치겠지만 그러한 정신의 기반은 다질 수 있었다고 생각된다.

퇴사, 새로운 시작

2017년 8월 나는 퇴사를 했고 12월 현재 나는 SW 교육 및 개발자 채용 플랫폼을 운영하는 그렙(Grepp)에 입사하였다. 시간이 있다면 구직에 대한 이야기도 포스팅할 생각이지만 지금은 입사한 그렙에 대한 이야기를 하려고 한다.

그렙은 개발자를 위한 서비스를 하고 있고 심지어 회사 구성원도 개발자 베이스로 조직되어있다.

아직 잘 구성되어있지는 않지만 코드에 대한 욕심이 강해서 테스트와 리팩토링에 대한 이야기가 많고, 새로운 기술을 도입하는 것에도 적극적이다.

Rails 5.1 버전대의 서비스 환경 구성과 Webpacker + Vue.js 도입 중이고 프레임워크/라이브러리 버전을 최신화하는데도 꽤 많은 공을 들이고 있다.

실제로 코드리뷰나 개발 회의가 잦아서 적응하는데 시간이 꽤 걸릴 것 같다.

다만 이 회사에서 TDD에 대한 습득이나 협업에 대해서 배울 수 있는 계기가 될 것 같아 무척이나 기대가 된다.

2018년에는..

2018년에는 생각하는 대로 사는 사람이 되고 싶다. 사회에 기여하는 바가 있으면 좋겠지만 그렇지 않더라도 뒤처지고 싶지는 않다.

개발적인 관정에서 2018년의 목표는 아래와 같다.

  • 테스트를 더 많이 작성해보고 싶다.
    • TDD까지 익숙해지진 않더라도 테스트를 잘 작성하는 꼼꼼한 개발을 해보고 싶다.
    • 자연적으로 리팩토링도 안심하고 할 수 있지 않을까 하는 생각이 든다.
  • 컨퍼런스를 다시 많이 다니고 싶다.
    • 올해는 사실상 거의 모든 컨퍼런스를 다녀오지 못했다.
    • 2019년쯤에는 발표도 한 번쯤 해보고 싶다.
  • JAVA 공부를 해보고 싶다.
    • 어쨌든 큰 업계에서 뛰어보겠다는 욕심이 있다면 인터프리터형 언어인 루비를 주무기로 하고 자바 정도의 도구를 하나 더 가지고 있는 편이 좋지 않을까 하는 생각이 든다.
  • 다양한 분야의 커뮤니티에서 활동해보고 싶다.
    • 단순히 커뮤니티를 가입하는 게 아니라 코드 기여나 스텝이 되어서 활동해보고 싶다.