SILENTSOFT
Published on

2022년을 회고하며

Authors

오지 않을 것만 같던 2022년도 끝이 보인다. 올해는 특히 내가 8월에 전역한 해이기도 해서 의미가 있지만, 1월에 ‘나도 12월이 되면 회고 글을 써야겠다.’는 다짐을 하고 보낸 해라서 더 의미가 깊다.

글의 전개는 가능한 이 글을 읽는 분들이 편하게 읽었으면 하는 바램으로 구성하였으니 천천히 읽어주셨으면 좋겠다. 다만, 생전 처음으로 쓰는 회고 글이라 다소 서툰 부분이 있을 수 있으니 미리 양해 부탁드리며, 본 회고의 내용은 꼭 올 한 해에 했었던 것만을 다루기 보다는 글의 원활한 흐름을 위해 작년에 진행했던 것들도 일부 각색하여 포함했음을 알려드린다.

Table of Contents


  • 데이터에 대한 오해
  • 퍼스널 브랜딩의 필요성
  • 커뮤니티 사회 실험
  • 랜선 모각코(모여서 각자 코딩)
  • 사이드 프로젝트
  • 오픈 소스 컨트리뷰션
  • 전역 그리고 복직
  • 이직 준비
  • 회고의 중요성

데이터에 대한 오해


나는 지금까지 사이드 프로젝트나 오픈 소스 라이브러리를 만들면 깃허브에 업로드만 하고 적극적인 홍보를 하지 않았다. 몇 년 전에 첫 번째 사이드 프로젝트로 데스크톱 어플리케이션을 만들었을 때 주변 동료들에게 한 번 사용해보라고 권유한 적이 있는데, 그게 어떻게 사내에서 전파가 잘 되는 바람에 1,800명 이상의 사용자를 얻었다. 벌써 몇 년이나 지났지만 나는 올해 1월까지도 이 결과에 대해서 오해한 부분이 있었는데, 몇 가지를 풀어보자면

1. ‘소극적인 홍보 방법으로서 동료에게 권유한 것이 사용자의 유입에 절대적인 영향을 주었다.’고 생각했다. 하지만 바로 아래에 나올 적극적인 홍보 방법에 비하면 그 비중이 주를 이루진 않는다. (약 300명 유입)

2. ‘적극적인 홍보 방법으로서 사내 게시판에 홍보 글을 포스팅해서 유입된 사용자 수가 앞에서 선행한 결과’라고 생각했다. (약 1,500명 유입)

데이터만 놓고보면, 사용자가 300명에서 1,800명 이상으로 상승한 데에는 ‘적극적인 홍보 방법이 사용자를 유입하는 데에 효과적이었다.’고 해석을 했어야했는데, 애석하게도 ‘일단 만들어놓으면 알아서 잘 전파가 된다.’고 해석했다. 나름의 변명을 하자면, 그 글이 사내 게시판 전체 기간 조회수 1위이기도 했고, 사내 깃허브 트렌딩 레파지토리 1위이기도 해서 그렇게 해석한데에 큰 오류가 없다고 생각했다. 하지만 나는 내가 이 데이터를 잘못 해석했다는 사실을 올해 1월이 되어서야 깨달았다.

퍼스널 브랜딩의 필요성


앞으로 내가 만드는 것들이 사람들에게 널리 회자되고 프로젝트가 유명해지려면 어떻게 해야할까를 다시 고민하기 시작했다. 그러던 중에 내 시야에 해외 전업 오픈 소서러가 보였다. 깃허브와 트위터 팔로워가 4만명인 이 개발자는 깃허브에 레파지토리를 공개하자마자 스타가 올라가는게 눈에 보일만큼 유명한 개발자였다. 나는 이 개발자를 보며 힌트를 얻었다.

일단 ‘내가’ 유명해져야하는구나.

유명해지려면 어떻게 해야할까. 영어로 블로그 포스팅을 하면 될까? 커뮤니티 활동을 하면 될까? 어떤 커뮤니티를 활용할까? 유튜브나 인프런은 나에게 너무 먼 미래이거나 내가 그럴 만한 능력이 있는지 스스로에게 의문을 가지고 있었기때문에 퍼스널 브랜딩 매체로서는 제외하기로 했다.

내가 회사에 처음 입사했을 때가 2013년이었는데, 그때는 국내 페이스북 개발자 커뮤니티가 지금에 비하면 굉장히 활성화되어있던 시절이었다. 그래서 그때 나름 잘 이용했던 기억이 있는데, 지금은 그 열기가 많이 식은 듯 했다. 그래서 나는 국내가 아닌 해외 커뮤니티로 눈길을 돌렸다.

그 동안 영어로 블로그 포스팅을 해야 할 필요성은 느끼고 있었지만 이 고민을 통해 ‘유명해지려는’ 당위성을 가지게 되니 하지 않을 이유가 없었다. 나는 내 기억 속 어렴풋이 남아있는 해외 블로그 플랫폼인 미디움이 떠올랐다. 가입은 이전에 해두었던 터라, 오랜만에 로그인해서 이곳 저곳 흥미로운 글들을 읽어대기 시작했다. 그런데.. 도대체 왜 글을 읽으려고 하면 결제를 요구하지?

내가 미디움을 로그인한 지 채 10분도 지나지 않아서 결제하지 않았으니 이 글을 읽을 수 없다는 안내를 보며 당황해했다. 당황이라기 보단 황당하다는 표현이 더 어울릴 법 하지만. 그래서 다른 블로그 플랫폼을 찾다보니, 다른 사람들도 이런 이유때문에 미디움을 탈출하여 다른 곳으로 간다는 글이 굉장히 많이 보였다. 그 중에서 특히 개발자들은 dev.to 커뮤니티로 많이 옮겨간다고 하더라.

커뮤니티 사회 실험


dev.to 커뮤니티에 가입하고 첫 번째 글을 발행한 후에 반응을 지켜보기로 했다. 내 글이 과연 읽히긴 할까? 댓글이 달릴까? 하는 생각이 팽배했지만 의외로 첫 1주동안 뷰 500회와 리액션 10번 그리고 댓글 1개가 달렸다. 또, dev.to를 포함해서 여러 개발 커뮤니티의 글을 수집해서 큐레이션하는 트위터 봇들한테도 멘션당하고 그 글이 리트윗에 리트윗을 이어나갔다. 이 정도면 꽤 괜찮은 시작이라고 생각했다.

내가 예전에 한참 (국내) 블로그 포스팅을 하던 시절에 몇 가지 몸으로 습득한 것과 구글 애널리틱스가 내게 말해주는 몇 가지가 있는데,

1. 글을 오전 9시부터 10시 사이, 오후 1시부터 2시 사이에 발행하면 자정작용이 활발히 일어난다. 예컨대 내가 발행한 글을 커뮤니티에 전파하면, 그 글이 다른 사람에게, 또 그 사람들에 의한 전파가 가장 활발하더라. 특히 오후가 아닌 오전에 가장 활발한 자정작용이 이루어졌다.

2. 월요일부터 목요일까지 방문이 가장 잦다.

3. 사람들이 출근하기 전과 퇴근한 뒤에는 유입이 거의 없다.

4. 주말과 공휴일에도 유입이 거의 없다.

나는 내가 습득한 나름의 이 규칙들이 해외 커뮤니티인 dev.to에서 동일하게 적용되는지 궁금했다. 그래서 주말동안 내 블로그의 나름 효자 아이템을 영어로 번역해서 미국 캘리포니아 주 시간 기준 월요일 오전 9시에 글을 발행했다. 첫 번째 글을 쓰면서 생긴 트위터 팔로워에게도 보여지도록 트윗을 올렸더니

랜선 모각코(모여서 각자 코딩)


작년 초가을에 회사 후배랑 둘이서 난생 처음으로 사이드 프로젝트 스터디를 한 적이 있는데, 꽤나 서로 자극을 잘 해줘서 좋은 기억으로 남았다. 그래서 올해를 시작하는 마음으로 1월에 어떤 스터디를 할까 찾다가 모각코(모여서 각자 코딩하는) 모임을 알게됐다. 이게 무슨 의미가 있나 싶겠지만서도, 생각해보면 카페에서 공부가 잘 되는 이유 중 하나가 ‘누군가 나를 지켜보고 있다.’는 감시자 효과때문인데 이런 측면에서 어느정도 효용이 있겠다 싶어서 참여했다.

다만 시국이 시국인지라 오프라인으로 모이지는 않고, 구성원 모두가 디스코드를 활용해서 진행했다. 내가 들어갔을 때에는 다들 음성 채널로 참여하는 분위기였는데, 나는 감시자 효과를 잘 활용하기 위해서 화면 공유를 해놓고 진행했다. 어느정도 시간이 지났을 때에 화면 공유하시는 분들이 늘어서 나름 뿌듯했다. 선생님, 결론이 왜 이렇게 흘러가죠..?

이 모임에는 서로 어떤 공부를 했는지 기록하는 공간이 있는데, 참여를 강제하지 않아서 자유롭다는 점과 다른 사람이 어떤 공부를 했는지 보면서 나에게 스스로 자극을 줄 수 있다는 점에서 상당히 고무적이었다. 특히 퇴근하고 집에와서 침대에 누웠는데 다수의 사람들이 모각코 채널에 있는걸 볼때면 나를 강제로 책상에 앉히는 비범한 마력이 있어서 애용하고 있다. 혹시나 이 글을 읽는 사람 중에 참여하고 싶은 의사가 있다면 여기를 통해 들어오시면 된다.

사이드 프로젝트


hits.sh - 방문자 카운터

작년(2021년) 초에 내가 사용하던 방문자 카운터가 갑자기 사라졌다. 처음엔 엑박이 뜨길래 '이러다 다시 되겠지'라고 생각했지만 몇 주 동안 엑박은 해결되지 않았다. 그동안 쌓은 방문자 카운트가 사라지는 건 아닐까 하는 두려운 마음에 상황을 알리기 위해 이슈를 등록하려고 깃허브에 들어갔다. 하지만 이미 이슈는 등록되어 있었다. 메인테이너는 원인을 찾는 중이라고 댓글을 달았지만 몇 달이 지나도록 엑박은 해결되지 않았다.

혹시 몰라서 내가 사용하고 있는 url 카운트라도 좀 알려달라고 따로 이슈를 올렸다.

이때 어느 정도 예상은 했다. 소스 코드때문에 동작하지 않는 거라면 최근 커밋을 롤백했을테고, 백엔드 앞 단에서 라우팅에 문제가 있었다면 벌써 해결되었을 문제인데 지금까지 해결되지 않는 것을 보아하니 디비를 날려 먹었겠구나...

나는 결국 포기하고 다른 방문자 카운터 서비스로 넘어가기 위해 여러 서비스를 둘러보기 시작했다. 그런데 다들 나 같은 상황에 빠진 유저 시나리오는 생각하지 못했던 건지, 카운트 마이그레이션을 제공하는 서비스는 찾지 못했다.

그래서 그냥 내가 만들었다.

https://hits.sh/

처음에 만들 당시에는 도메인이 .sh라서 터미널 컨셉으로 만들었었는데, 반응이 뜨뜻미지근해서 최근에 Tailwind CSS를 사용해서 리브랜딩했다. 그래도 터미널을 버리면 닉값(?)을 못하는 것 같아서 데스크톱으로 접속했을 때 아래쪽에 터미널이 나오도록 숨겨놨다가 모바일에서 별로 안이뻐보이는 것 같아서 아예 뺐다.

공교롭게도 UI를 한참 리브랜딩하고 있을 때 내가 등록한 깃허브 이슈에 댓글이 달렸다.

초기화된 데이터를 알려줘서 좀 아쉽긴 하지만... 어쨌든 2020년에 등록한 이슈인데도 무시하지 않고 댓글을 달아줘서 감사하다.

이 프로젝트를 만들기 위해서 부가적으로 만들어야만 했던 라이브러리들이 있는데,

1. Badge Library

https://github.com/silentsoft/badge4j

내 프로젝트의 백엔드는 자바 스프링으로 만들었는데, 마침(?) 자바용 https://shields.io 뱃지를 만들어주는 라이브러리가 없었다. 어쩌겠나. 이 방문자 카운터 프로젝트의 시작 자체가 필요한 게 없으면 만들겠다는 취지로 시작한건데. 그래서 한 동안 자바스크립트 버전의 공식 라이브러리를 자바로 컨버전하는데에 시간을 보냈다.

근데 이걸 만들다보니, 또 자바 라이브러리가 없어서 만들어야하는게 있었다.

2. CSS Color Parsing Library

https://github.com/silentsoft/csscolor4j

에이~ 각색도 적당히 하셔야지.. 이게 진짜 자바 라이브러리가 없다구요?

진짜다. 지금도 Named Color, Hexadecimal numbers, rgb, cmyk, hsl 를 변환해주는 라이브러리는 깃허브에 내 레파지토리밖에 없다. (search keyword: language:java css color parser)

3. Simple Icons Library

https://github.com/silentsoft/simpleicons4j

이쯤되면 내가 검색을 못하는게 아닌가 하는 생각이 들 때도 됐는데, 검색을 못하는건 아닌가보다. 자바용이 없어서 만들어서 풀 리퀘스트를 열었더니 그게 머지가 되어버린.. 아니 이왜진;

오픈 소스 컨트리뷰션


어떤 날은 너무 무료한 나머지 이력서를 수정하고 있었는데, 웹 페이지를 pdf로 저장하려고 하니 여백이 마음에 안들더라.

어느정도 보기 좋은 출력 여백으로 만들고나니 이 고생을 이력서 수정할 때 마다하느니 pdf 다운로드 요청이 올 때마다 서버에서 여백을 수정해서 pdf stream으로 내려주는게 낫겠다 싶어서 라이브러리를 찾고 있었는데, selenium이 눈에 띄었다.

근데… 왜때문에 1페이지만 출력하겠다고 출력 페이지 파라메터를 설정했는데도 모든 페이지가 다 출력되는거지..?

이렇게 말하면 조금 변태같이 들릴 수 있겠지만, selenium이 예상대로 동작하지 않아서 짜증이 났다기 보다 컨트리뷰션 할 생각에 하루 종일 설레서 원인 찾느라 시간가는 줄 몰랐다.

여차저차 원인찾고 테스트 코드짜고 PR 올리기까지 12시간 정도 걸렸던 것 같다.

다음 버전 릴리즈할 때까지 며칠간 잊고 지냈는데, 어느 날 들어가보니 릴리즈 노트에 내 이름이.. !

내가 불편해서 고쳐졌으면 좋겠다는 마음과 행위가 다른 사람들과 커뮤니티에 기여한다는 사실이 항상 나를 설레게 만드는 것 같다. 이 맛에 컨트리뷰션 하는게 아닌가 싶다.

전역 그리고 복직


고대하던 8월, 전역의 달이 왔다.

전역 후 복직까지 약 2주동안 온전히 나만의 시간을 가질 수 있었는데, 뭔가 대단한 걸 한건 아니고 최선을 다해서 쉬었다. 간간히 영어 스터디에 참여하기도 하고 스터디 멤버들이랑 여행도 다니면서 말이다.

돌이켜보면 당장 아무것도 안해도 된다는 편안함과, 드디어 국방의 의무에 대한 족쇄가 풀렸다는 사실과 앞으로의 앞 날에 대한 막연하지만 낙관적인 생각에 잠겨서 행복한 나날을 보냈던 것 같다.

다시 돌아가고 싶냐고 묻는다면 왼손을 올려서 그대로 뺨을 내려칠 것 같다.

이직 준비


오픽 시험

휴직하기 전까지는 회사 복지에 대해서 크게 생각해 본 적이 없었는데, 있다가 없으니까 아쉬웠던 것 중 하나가 오픽 시험 연 2회 무료 응시였다. 물론 군인 할인 30%를 받을 수 있긴 한데, 그래도 괜히 내 돈 주고 시험을 보려니 아까워서(…) 복직하기만을 기다렸다.

회사에서 오픽 대비반 수업을 강제 입과 시킨 덕에 약 7년 전에 IH를 받았었는데, 너무 오랜만에 보는 시험이기도 하고, 그동안 내 영어 실력이 녹슬진 않았을까 불안해서 그 두려움을 감추고자 술의 기운을 빌려서 시험을 보기로 했다. 술을 마셔도 적당히 마셨어야 했는데, 시험 2시간 전에 급하게 마시는 바람에 시험장에 도착해서는 만취 수준으로 술이 올랐다. 그래서 시험을 보는 동안 어떤 질문을 받았는지, 대답은 어떻게 했는지 전혀 기억이 안 나서 망했나 싶었다.

그런데 웬걸?

그렇다. 진짜 망했다. (…)

기억나는 것 중 하나는 내가 아이언맨에 빙의를 했다는건데 가령 예를 들어서 자기 소개할 때 “아이 엠 아이언맨 (핑거스냅)” 한 마디 하고 다음 문제로 넘어갔다거나, 여행에 관한 얘기를 할 때 “타노스가 핑거 스냅해서 여행 가는 사람들이 줄었어.” 같은 말도 안 되는 말을 했다는 것. 아이언맨이라서 IM1을 준건가..?

예전에 IH를 받은 경험이 있어서 그런지 IM1 성적을 보는 순간 할 말을 잃었다. 그래서 그 충격으로 두 번째 시험을 앉은 자리에서 바로 접수했는데, 이번엔 다음과 같은 나만의 두 가지 규칙을 지키기로 했다.

  1. 술 마시지 말 것.
  2. 캐릭터 빙의하지 말고 순수히(?) 답변할 것.

결과는?

카카오 공채 지원


아마 내 기억이 맞다면 복직하자마자 카카오 공채에 지원했던 것 같다.

카카오 채용 프로세스는 서류 전형 → 코딩 테스트 → 1차 인터뷰 → 2차 인터뷰 순으로 진행된다.

서류 접수 후 알고리즘 공부를 나름 열심히 했다고 생각했는데, 이게 큰 오산이었다. 아이러니 하게도 이직을 원한다면 채용 프로세스의 첫 단계인 서류 접수부터 할게 아니라 알고리즘 공부를 시작해야한다. 서류 합격을 통보받은 후 코딩 테스트까지는 시간이 1주일밖에 없다. 알고리즘을 그때부터 공부하기엔 턱없이 부족한 시간이다.

예상할 수 있겠지만, 나는 카카오 코딩 테스트에서 고배를 마셔야 했다. 카카오는 다음 기회에… 그래도 경험치를 쌓았다는 것에 만족한다.

회고의 중요성


고백하자면 나는 이 회고의 초안을 올해 1월에 작성했다. 어제 점심에 뭘 먹었는지 기억조차 못하는 내가 12월이 되면 마법처럼 1월부터 올 한 해동안 무엇을 했는지 기억해낼 자신이 없었기 때문이다.

1월에 회고의 초안을 만들고 글의 구성과 목차를 정하면서 자연스럽게 올 한 해를 어떻게 보낼지 나름 구체적인 계획을 세울 수 있었다.

어쩌면 회고란, 지나간 일을 돌이켜 생각하는 것에서 끝나는 것이 아닌 또 다른 시작을 준비하는 것일지도 모르겠다.

긴 글을 주저리 주저리 써놨는데 뒤로 가기를 누르지 않고 끝까지 읽어주신 분들께 진심으로 감사의 말을 전합니다. 한 해 마무리 잘 하시고, 새해 복 많이 받으세요.

끝.