며칠전, 팀스파르타에 취직한 정글 동기를 통해 팀스파르타의 기획자님으로부터 연락이 왔다.
스파르타코딩클럽의 수강생들이 진행할 팀 프로젝트의 멘토가 되어주시겠냐는 부탁이었다.
이상하다... 분명 한달전 팀프로젝트때 스파르타에게 멘토링을 받는 입장이었는데...
당황스러워서 연유를 여쭤보지 않을 수가 없었다.
클라우드 전문과정을 수료하신 국비수강생분들
> 단순 CRUD와 차별화된 경험을 쌓기 위해 협업용 문서 에디터 개발 팀 프로젝트를 진행한다
> CRDT라는 복잡한 알고리즘/스트럭쳐의 이해와 구현이 필요하다
> 스파르타에 들어간 정글 동기가 나를 추천했다
> 잘 모르는 부분은 넘기셔도 좋다. 도움 주실 수 있는 부분이라도 도움을 주시면 좋겠다.
내가 남을 가르칠 실력이 안된다는 사실은 잘 알고있기 때문에 거절하려 했지만, 세부적인 내용을 들어보니 오히려 서로가 win-win 할 수 있는 좋은 경험이 될 것 같았다. 대학으로 치면 교수가 아니라 학사 고학년 조교쯤의 포지션?
나는 내가 자신있는 알고리즘, 문제해결력 측면에서 로직 설계와 구현, 성능 개선의 부분에 도움을 드릴 수 있을 것이고,
이분들은 주력 언어가 (내가 1도 모르는) Java이고 스프링, 도커/쿠버네티스 등 탐나는 기술들을 집중적으로 배우신 분들이기 때문에, 나도 개발 과정과 코드를 보면서 많은 것을 얻을 수 있겠다 싶었다.
그리고 프로젝트의 아이템이 CRDT와 WebRTC인 것도 결심에 큰 역할을 했다.
CRDT는 신기하게도 얼마전 한 회사의 면접 중 이야기가 나왔던 주제였는데, 말로만 관심있다, 할수있다 하는 것보다 기회가 주어졌을 때 직접 해보는게 낫겠다는 생각이 들었다.
그리고 네트워크는 정글에서 1주만에 퉁치고 넘어간 분야다보니 항상 발목을 붙잡아서, 팀프로젝트에서 WebRTC를 접한 다른 팀들이 내심 부러웠다. 프로젝트 하나 꼭 하겠다 벼르고 있었는데 마침 잘됐다 싶었다.
그래서 의문의 멘토링 시작
사실 멘토라기보다 모든 팀이 의견을 교류할 수 있는 인간 공유자원이 될 것 같다.
지난주부터 프로젝트가 진행중인데, 지금은 각 팀들 모두 개념을 익히는 공부 단계에 있다.
프로젝트의 진행 방향은 크게 두 방식을 제안했다.
1. 어려운 CRDT는 기존의 모듈(Yjs 등)을 쓰고, WebRTC 서버 아키텍처의 구현과 서비스로서의 기능 구현에 포커스 두기
2. 간단한 CRDT를 수도코드를 이해하여 직접 구현하고, 성능 비교를 하고 개선하는 일련의 경험에 포커스 두기
한 팀은 후자를 택했고, 다른 한팀은 아직 고민중
나는 프로젝트의 두 핵심 기술, CRDT와 WebRTC 모두 프로젝트 멘티분들보다 조금 앞서 구현해두고, 내 경험을 토대로 멘토링할 예정이다. 각 팀의 프로젝트 진척을 공유받으면서, 다음엔 뭐가 필요할까를 고민하며 먼저 만들어보지 않을까 싶다.
이를 위해 일단 간단한 CRDT를 구현해뒀고, 지금은 유튜브 영상을 보면서 WebRTC로 화상채팅 서비스를 구현하는 토이 프로젝트를 만들어보고 있다. 다음주면 지금 진행중인 채용 프로세스는 다 마무리가 될 것이기 때문에, 그때부턴 속도를 붙일 수 있을 것 같다.
'생각' 카테고리의 다른 글
모두의 언어로 표현하기 (기술 블로그) (0) | 2022.03.17 |
---|---|
정글을 시작하며 (2) | 2021.11.09 |