2019년 한 해 회고
한 해의 정리를 위해 뒤돌아보니 다섯 가지 주제가 남았다.
퇴사
가을에 퇴사했다. 원래는 봄에 퇴사가 예정되어 있었는데, 나와 회사의 동의하에 재택근무 형태로 반년 정도 더 일했다. 회사에서 퇴사를 제안했을 때는 이젠 쉴 수 있겠다는 생각에 어떻게 놀고 쉴지를 계획하는 것이 재밌었다. 퇴사 통보를 받은 후 며칠 뒤에 일을 좀 더 해줄 수 없겠냐는 말을 들었고, 집에서 일하고 회사에 보고할 일이 있을 때만 출근하는 조건으로 승낙했다. 그 후로 반년을 더 일했다.
처음엔 다른 지방에 공연 보러 다니고, 그동안 미뤄왔던 토이 프로젝트도 하고, 좀 더 나에게 시간을 쓰려고 계획했다. 하지만 재택근무를 처음 해봐서 일과 쉬는 것의 경계선을 명확하게 긋지 못했다. 일을 완전하게 마무리하지 못한 상태로 쉬게 되니 쉬어야 하는 시간에도 머릿속에서 그 일을 마무리해야 된다는 생각에 사로잡혀 있었다. 하지만 40+20 작업법(을 만나고 내 인생이 달라졌다.) 을 적용하고 나니 일과 쉬는 것(사실은 집안일이 대부분이었지만)의 경계선을 확실히 그을 수 있었고, 재택근무에 적응하게 되었다. 반년 뒤 회사는 나를 대체할 인력을 뽑아서 교육하고 일을 시킬 준비가 되었고 나에게 퇴사 일자를 통보했다.
소스코드 리딩
올해 진행한 소스코드 리딩 모임에서는 마젠타 프로젝트를 공부하는 데 대부분의 시간을 썼다. 예전부터 만들어보고 싶었던 프로젝트들을 마젠타를 공부하면 만들 수 있을 것 같아서 공부를 시작했다. 덕분에 지난 여름, 파이콘에서 발표도 했다. 마젠타 프로젝트를 어느 정도 공부한 후에 아이디어로만 있던 토이 프로젝트를 좀 더 진행했다. 내년 봄에 완성하는 것을 목표로 삼았다. 내년 소스코드 리딩 모임 주제는 아마도 소형 자율주행 자동차를 만드는 것이 되지 않을까 생각한다. 얼마 전 아마존에서 발표한 DeepRacer로 진행할 수도 있고, 아니면 집에 하나씩은 있는 라즈베리파이와 RC카로 진행할 것 같다.
파이콘 코리아 2019
2019년에 한 일 중에서 하게 될 것이라도 생각도 못 한 일이 있다면 파이콘에서 발표하는 것이다. 소스코드 리딩 모임에서 마젠타 프로젝트에 대해서 공부한 것을 소개하고 예제 코드들을 읽으면서 작년에 고민했던 것들을 해소할 수 있었다. 작년에는 책과 파이썬으로 머신러닝, 인공신경망을 공부하면서 붓꽃을 분류하거나 사진에서 강아지와 고양이 찾기 말고 다른 재밌는 프로젝트가 없을까 고민했었다. 텐서플로 기반의 마젠타 프로젝트는 재밌는 예제들이 많았고, 그 중 Piano Scribe 예제에 제일 흥미가 있어서 그 예제를 주로 봤다.
Piano Scribe는 피아노 연주를 들려주거나 녹음 파일을 업로드하면 그대로 연주를 카피해서 미디 포맷으로 만들어주는 예제다. Onsets and Frames 모델을 사용해서 피아노 음의 시작과 길이, 세기를 분석해주는데 학습된 모델 파일이 있어서 웹 서비스로 만들어봤다. 웹 브라우저에서 피아노 연주 파일을 업로드하면 미디 파일을 받을 수 있는 간단한 서비스를 만들었고, 이 데모를 기반으로 파이콘 발표를 했다.
넓은 공간에서, 많은 사람 앞에서 발표하는 건 정말 재밌었다. 정작 발표할 때는 시간이 쏜살같이 흘렀는데, 그 발표를 위해 예제 코드를 만들고, 발표 자료를 만드는 과정이 재밌었다. 다음에 기회가 되면 재밌는 주제로 한 번 더 발표해 보고 싶다.
토이 프로젝트
일을 쉬면서 투윅스라는 프로젝트에 참여했는데, 참가자들이 2주 동안 서비스를 출시하고 피드백을 받는 경험을 하는 것이 목적인 행사였다. 좋은 기회라고 생각해서 그동안 미뤄왔던 토이 프로젝트 중 인디 셋리스트 라는 서비스를 만들었다. 평소에 공연을 보러다니기 좋아해서 다른 지방으로 공연 보러 가는 일이 많은데, 직접 보지 못한 경우 동영상으로나마 그 공연을 보고 싶어서 유튜브에서 공연 영상들을 많이 찾아봤었다. 세상에는 자신이 녹화한 영상을 유튜브에 올려주는 착한 사람들이 많다. 그 영상들을 음악가, 공연장, 공연 날짜별로 분류해서 보여주는 기능을 하는 서비스가 인디 셋리스트이다.
DB는 Firebase의 Cloud Firestore를 이용했고, 이후 관리용 웹페이지를 위해 파이썬과 Flask로 웹 서버를 만들고, 관리자 인증을 위해 Firebase의 Authentication을 이용했다. 공연 정보, 영상 정보를 수집하기 위해 Twitter API, YouTube API를 이용했다.
공연장 공식 채널(홈페이지, SNS 계정 등)에서 공연 정보를 수집하고, 수집한 공연 정보로 생성한 쿼리를 YouTube API를 이용해서 영상 정보를 수집하는 봇을 만들어 알아서 동작하도록 웹 서버를 만드는 것이 처음 목표였는데, YouTube API를 사용하다가 초반에 너무 많은 쿼리를 요청해서 사용 제한이 걸렸다. 사용량을 계산해보니 무료로 제공해주는 사용량은 음악가 10명의 공연을 검색하는데도 부족했다. 유튜브에서 하나씩 검색해서 Firebase 콘솔에서 추가하기에는 너무… 힘들었다. 그렇다고 Python 스크립트를 만들바에 차라리 관리용 웹 페이지를 만들어버리자 생각을 해서 만들어버렸다. 덕분에 공연 정보와 영상을 폭풍 수집할 수 있었고 지금은 제법 데이터가 많이 쌓여서 사람들에게 소개할 수 있는 서비스가 되었다. 음악가와 공연장은 요청을 받으면 바로 추가 가능해서 주변 사람들에게 혹은 서비스 사용자들에게 제안을 받고 있다.
읽었던 책들
2년 전 책 모임에 처음 참가했다. 평소에 IT 관련 서적 말고는 책을 전혀 읽지 않아서 책을 더 읽고 싶은 마음과 다른 사람들의 생각을 듣고 싶은 마음으로 참가했다. 2년 동안 여러 책을 읽었고, 매번 참가하지는 못하지만 좋은 책들을 많이 알게 됐다. 2019년에 읽은 책 목록은 다음과 같다.
- 단 하나의 문장
- 인류의 기원
- 자신을 행성이라 생각한 여자
- 아침에는 죽음을 생각하는 것이 좋다
- 당신 엄마 맞아?
- 디디의 우산
- 여자전쟁
- 선량한 차별주의자
- 핸드 투 마우스
올해 읽었던 책 중에서 단 하나의 문장이 제일 좋았다. 작년에 정세랑 작가를 알게 된 것처럼 구병모 작가를 알게 됐고(너무 늦었지만!), 이야기가 너무 재밌어서 금방 읽었기 때문이다. 그 책의 단편 중 ‘한 아이에게 온 마을이’라는 단편은 어딘가에 존재할 것만 같은 이야기라서 조금 소름이 돋았고 읽으면서 조금 힘들었다.
책을 읽고 나서 한 가지 아쉬운 건, 책을 읽고 나서의 감상을 모임에서 얘기하고 끝냈다는 것이다. 내년에는 감상을 간단하게라도 기록하려고 한다.