저는 피플펀드에서 작년 9월부터 안드로이드 앱을 개발하고 있습니다. 피플펀드 테크하우스에서는 다양한 기술 스터디를 자발적으로 진행하고 있습니다. 그 중 하나였던 이 테크스터디는 컴퓨터 공학의 전반적인 이론을 좀 더 깊이있게 공부해보자는 목적을 갖고 시작되었습니다.

매주 스터디 과제는 아래와 같았습니다,

  • 5개의 컴퓨터 공학 이론 정리 커밋
  • 5개의 알고리즘 문제 풀이 커밋
  • 슬라이드 5장내의 내용 정리

과제를 수행한 Git Repository

TIL Git Repository 어느덧 Commit이 62개나 쌓였다.

3개월의 스터디를 마치며 가장 좋았던 것은 함께한 개발자들이었습니다. 6명의 개발자가 1기를 마칠 때까지 한번도 빠짐없이 모두 기한 내에 과제를 수행했습니다. (물론 5만원이라는 벌금도 성공의 원동력이었습니다.) 사실 업무 시간 외에 시간에 과제를 수행하는 일이 벅차다고 생각한 적이 종종 있었습니다. 일주일에 한번 자신이 공부한 것을 나누는 라이트닝 토크가 진행됐는데, 정보 공유는 물론이고 모두가 스터디를 진지하고 열심히 하고 있음에 큰 자극을 받았습니다. 그래서 모두 실패 없이 성공적으로 스터디를 마칠 수 있었던 것 같습니다.

돌이켜보면 결국 시간은 없는 것이 아니라 만들어 내는 것이다라는 것을 다시 한번 깨달았습니다. 주어진 업무만 하기에도 시간은 늘 부족하게 느껴집니다. 하지만 시간을 쪼개고, 주말 시간을 조금 할애하여 스터디를 할 수 있었고 이는 제가 피플펀드를 다니며 개인 성장을 가장 크게 느꼈던 경험이었습니다. 이런 작은 시간과 노력들이 모여 3개월 동안 55개의 알고리즘 문제를 풀었고, 네트워크, 보안, 알고리즘 이론들을 학습할 수 있었습니다.

공부할 내용은 각자가 선택합니다. 전 상대적으로 제가 정확히 알지 못한다고 생각했던 네트워크나 보안 쪽을 주로 공부했습니다. 알고리즘은 해커랭크나 백준온라인저지의 문제들을 주로 풀었습니다. 스터디 중 SSO와 OAuth2.0을 주제로 발표한 적이 있습니다. 토큰을 받아 사용자를 인증하는 방식엔 인증 코드로 요청하는 방법, 간접적으로 바로 토큰을 요청하는 방법, 비밀번호로 요청하는 방법, 서버가 사용자가 되어 요청하는 방법이 있습니다. 저희 서비스에서 내부적으로 선택한 인증 방식은 Authorization Code를 사용하는 방법인데, 다른 방식으로 해도 되지 않을까라는 의문이 들었습니다. Authorization Code는 클라이언트와 사용자 모두를 인증하는 방식인데 현재 클라이언트가 피플펀드 웹/앱이기 때문에 사용자만 인증하는 간접적 인증방식이 적합하다고 생각했습니다. 이에 대해 라이트닝토크 때 CTO님께 질문했고 설계 의도에 대해 토론할 수 있었습니다.

테크스터디 발표 슬라이드 예시 OAuth2.0에 대한 설명 슬라이드 예시

라이트닝토크 시간은 매주 월요일 5:30부터 30분(길게는 1시간) 동안 진행됐습니다. 이 시간에 서로 공부한 것을 공유하고 이 이론들이 일상 생활에 어떻게 쓰이고 있는지 알아보고 우리 서비스와는 무슨 연관이 있을지에 대해 이야기를 나눴습니다. 라이트닝토크는 전혀 라이트닝하지 않는 가치있는 시간이었습니다. 또한 CTO님과 함께 이야기할 수 있어서 더욱 기술적으로 도움이 되었던 시간이었습니다.

저에게는 본인이 회사에 기여하는 것은 당연하고, 개인 성장과 일에 대한 즐거움을 느낄 수 있는 환경을 갖고 있는지, 이를 위해 회사가 노력하는지가 회사 선택의 중요한 요소였습니다. 피플펀드는 하고 싶은 일에 대해 논리만 있다면 얼마든지 실행할 수 있는 환경을 갖고 있습니다. 업무, 스터디, 동호회 모두 마찬가지입니다. 저는 이러한 환경에서 지난 6개월 동안 통계학, 테크 스터디, 수학 스터디를 했습니다. 개인 성장을 느꼈고, 스터디를 통해 기술적인 배움에 대한 즐거움을 느꼈습니다. 나도 모르게 현실에 순응하고 안주하려고 했음을 반추할 수 있었습니다.

테크스터디 2기 시작에 앞서 컴퓨터 공학 이론을 좀 더 깊이있게 공부해보자의 목표를 제대로 지켰는지 회고하는 시간을 함께 가졌습니다. (feat.문어치킨) 난이도가 쉬운 알고리즘 문제만 골라풀게 된다, 라이트닝토크가 너무 길어지는 경우가 있으므로 시간을 엄수하자, 복습하는 시간이 있었으면 좋겠다, 평일에 너무 미루게 된다 등의 아쉬운 점이 있었습니다. 3개월 동안 다시 달려야 하는 만큼 위의 내용을 보완할 수 있는 장치가 있었으면 좋겠습니다.

마지막으로 다시 한번 동료에 대해 말하자면 피플펀드에서는 같은 고민을 할 수 있는 개발자가 있다는 점이 매우 큰 힘이 되었습니다. 더 좋은 설계, 더 좋은 효율성을 위해 함께 고민할 수 있는 개발자를 만났다는 것이 좋았습니다. 스터디에서도 그런 고민들을 나누며, 내가 열심히 해야겠다는 내적 동기가 더욱 커졌습니다. 앞으로의 스터디에서도 이러한 생각을 이어가고, 더욱 발전하는 스터디가 되길 기대합니다.