도담도담, 바인드 팀 활동 회고 (2021~2023)
지금 이 글을 쓰고 있는 날은 2023년 4월 21일로, 바인드 팀(B1ND TEAM) 동아리 활동을 시작한 2022년으로부터 약 1년이 지났다. 우리 동아리의 문화이자 정해진 규칙인 '2학년이 전적으로 동아리를 이끌어가고 3학년은 서포트만 할 것'에 맞춰 지금은 후배에게 인수인계를 끝내고 몇몇 기술적 서포트만 해주고 있다. 내 고등학교 2학년 생활의 대부분이 바인드 팀에서의 활동이기에 회고를 적어보려 한다. 길다면 길고 짧다면 짧은 1년이지만, 굉장히 큰 배움과 성장을 거둔 시간이었다. (참고로 필자는 대구소프트웨어마이스터고 6기이자, 바인드 팀 6기 팀원이다.)
1학년, 바인드 팀 인턴 활동
바인드 팀에서는 다른 교내 동아리와 달리 2학년부터 정규직(동아리 창체 인원)으로 채용하고, 1학년은 2학기부터 인턴으로 수습기간 동안 활동하는 문화가 있다. (인턴 인원 대부분 2학년이 되면 정규직에 채용된다.) 그 프로세스 덕분에 정규직 채용에서 훨씬 더 신뢰성 있고 열정적인 팀원을 모을 수 있고, 바인드 팀 조직이 지금까지 이어진 이유인 것 같기도 하다.
바인드 팀의 메인 프로덕트인 '도담도담'은 대구소프트웨어마이스터고의 외출/외박, 자습실 신청, 상벌점 관리, 기상송 신청, 분실물 신청 등의 서비스를 제공하는 교내 스마트 스쿨 플랫폼이다. 나는 2021년 초반에 바인드 팀 4기 리더 이영은 선배님의 도담도담 설명회를 듣고, 바인드 팀의 문화 및 프로덕트에 반해버렸다. 그때부터 바인드 팀 백엔드 개발자이셨던 신중빈 선배님께 백엔드에 대한 지식을 여쭤보며, 개발에 대한 열정을 뿜뿜 했다. (내가 백엔드에 관심을 가지던 이유에 대해서는 이 글을 참고하기를 바란다.)
그러다가 2021년 하반기쯤에 바인드 팀 1학년(6기) 인턴 채용 공고가 올라왔고, 꽤 많은 고민 끝에 백엔드 ERD 설계 과제를 제출하고 면접 절차를 거쳐 인턴에 합격했다. 당시 지훈이와 머리를 맞대며 처음 설계해 본 미숙한 ERD 구조, 면접 때 선배님들의 매서운 눈빛과 굉장히 떨리던 마음이 아직 생생하다. 백엔드 인턴은 나와 김준호, 프론트엔드 분야는 임동현과 금현호, 안드로이드 앱은 최민재, iOS 앱은 김상은 팀원이 함께 합격했다.
바인드 팀에는 합격한 인턴끼리 1학년 반 년동안 협업 프로젝트를 진행하는 문화가 있다. 그 과정을 통해 서로 문제 해결을 도우며 협업하는 능력, 소통력, 코딩하며 마주한 벽을 부수는 의지를 확인할 수 있기 때문이다. 우리 6기 인턴 또한 협업 프로젝트 주제를 선정하고 개발, 배포까지 진행했다. 당시 인턴 팀장 임동현을 선두로 교내 스택오버플로우, 오픈소스 프로젝트 등 브레인스토밍을 진행했는데, 많은 고민 끝에 '교내 SNS 서비스'를 개발하기로 결정했다.
대구소프트웨어마이스터고등학교에서는 밴드 SNS 서비스를 통해 학부모-교직원-학생 간의 연결이 이루어지고 있었다. 아무래도 학부모, 교직원, 학생이 같은 그룹에 있다 보니 부담스러움 때문에 학생의 활동이 거의 없었다. 또한 공지사항, 건의사항, 기타 사진들을 구분하지 않고 게시해서 소통보다는 공지 위주의 SNS라는 느낌이 들었다. 이러한 문제점을 해결해 보고자 시작한 프로젝트가 'GLASS'이다. 글래스 서비스는 오로지 소통에만 초점을 맞춰 학생들의 일상을 투명하게 담아내는 서비스라는 비전을 토대로 하여, 학생-학부모-교직원 간의 활발한 소통을 도모한다. 학생들이 일상 사진을 공유하고, 학부모들과 교직원들이 댓글과 공감을 남기며 반응할 수 있다. 그 외에도 인기 게시물 및 해쉬태그 기능이 있다.
실제 학부모 및 학생 27명에게 설문 조사를 진행하여 서비스에 대한 니즈를 파악했고, 서비스 소개 자료에도 첨부했다.
비록 Node.js(express) 기반의 굉장히 초보적인 코드이긴 했지만, 백엔드 팀원 준호와 깃헙으로 협업하면서 선배 도움 덕분에 생전 처음 코드 리뷰라는 것도 받아보고, 배포도 해보는 멋진 경험을 했다. 클라이언트 팀원들(웹, 안드로이드, iOS 등)과 끊임없이 소통하고 우리 팀에 디자이너가 없어 팀원 모두 머리를 맞대고 피그마를 만지며, 할 일이 많았지만 동기들의 열정 덕분에 나 또한 열정적으로 임할 수 있었다. 배포하고 나서 동기 몇십 명이 직접 사용해 보는 베타 테스트 기간을 가지면서, 몇몇 에러 원인도 파악하고 개발에 대한 애정도 되살아났다. 항상 느끼는 것이지만, 개발 결과물은 사용자가 존재할 때 더욱 생기를 발한다.
11월 전에 개발을 끝내고, 당시 2학년 선배들과 함께 대구 엑스코에서 진행하는 ICT 박람회에 글래스 서비스를 전시할 기회를 얻었다. 프로젝트 발표는 상은이가 맡았고, 부스 운영은 팀원 모두 로테이션을 돌며 설명 및 시연을 진행했다. 서비스에 대한 피드백도 많이 받고, 많은 분들 앞에서 세일즈 하는 경험은 흔치 않았기 때문에 값진 경험이었다.
2학년, 도담도담이 아닌 Dpple
나를 포함한 6기 바인드 팀의 인턴들 모두 수습 기간을 거쳐 정규 팀원으로 전환되었다. 이제 인턴 프로젝트가 아닌 도담도담을 개발하는 팀원이 되면서, 도담도담 진행에 관한 방향성을 잡기 위해 수요일마다 주기적으로 회의를 진행했다. (사실상 2학년 초반에는 방향성이 정해져야 개발에 투입되기에 거의 매일 회의를 하다시피 했다.) 우리 학교에서는 2학년에 나르샤 프로젝트라는 교육 과정을 진행하고, 바인드 팀의 나르샤 프로젝트는 도담도담이었다. 나르샤 프로젝트의 각 팀에는 산학 교사가 참여했는데, 이 분들은 실무에서 이미 많은 경험을 습득하신 분들이었다. 우리 팀은 산학 선생님 Chris Kim과 함께 기술적인 부분보다는 사용자의 니즈 및 서비스의 본질을 함께 고민했다.
우리 6기가 도담도담을 계속 유지보수 해나가기에는 몇 가지 어려움이 있었다. 첫 번째로 약 3~4년 동안 쌓인 레거시 코드, 두 번째로 학교(교사) 측의 추가 요구사항으로 인한 SI 개발 방향으로의 진행, 마지막 세 번째로 많이 사용되지 않는 기능들(자습실 신청 등)이 문제였다. 크리스 선생님은 이 문제들을 해결하기 위해 도담도담 개선이 아닌 새로운 서비스 론칭의 의견을 내셨다. 우리 6기에게도 실제 사용성 지표를 좇으면서 스타트업처럼 MVP 방식으로 새로운 기능을 개발하는 문화가 훨씬 도움이 될 것 같았다.
그리하여 새로운 서비스의 핵심 모토를 '학생들에게 즐거움을 줄 수 있는 서비스'로 잡고, 서비스의 이름을 선정했다. 처음에는 도담도담과 동질감이 들고, 시끌벅적하고 즐거운 느낌의 '도란도란'이라는 이름으로 결정했다가, '도담 스쿨'을 거쳐 'Dpple'이라는 이름으로 최종 선정했다. 애플처럼 혁신적으로 변혁을 이루는 당시 우리 동아리의 분위기를 그대로 담고 있는 것처럼 느껴졌다.
포괄적인 주제를 정한 뒤에는 브레인스토밍을 통해 그 안의 새로운 MVP 기능들을 계획했다. 무작정 팀원들의 니즈만 반영하면 자칫 사용자(학생)에게 필요가 없는 서비스가 만들어질 수도 있기 때문에, 전교생을 대상으로 설문 조사를 진행했다. 학생들의 생활 루틴, 학교에 바라는 것, 최근 가장 많이 사용하는 서비스, 자신의 가치관 등 학생 생활의 전반적인 분석을 하기 위해 응답을 받았고, 회의를 통해 여러 아이디어를 도출했다.
교내 학생들의 백준(알고리즘 문제 풀이 사이트) 랭킹을 보여주는 '백랭', 교내의 다양한 정보를 제공하는 위키 서비스 'Diki', 졸업생 선배들의 취업처를 지도로 알려주는 서비스 '있을지도(ItMap)' 등의 아이디어를 떠올렸다. 실제 배포를 위해 개발에 착수한 친구들도 있었고, 나 또한 새로운 서비스의 백엔드 개발을 시작했다.
돌아 돌아 다시 도담도담으로
3월부터 약 2개월을 회의 및 프로젝트 시작에 바치고 드디어 개발에 집중하려는 찰나에, 크리스 선생님이 기존 도담도담을 버리지 못할 한 가지 아쉬운 점을 회의 때 가져오셨다. 바로 도담도담의 기존 사용성이었다. 도담도담은 대구소프트웨어마이스터고 공식 학생 관리 플랫폼으로서 이미 전교생들이 사용하고 있었기에, 이러한 장점을 버리기엔 아쉬운 것이다. (새로운 프로젝트를 기획하고 개발을 시작하는 중에도 도담도담은 계속 서비스 중인 상태였다.) 6기 내에서도 방향성에 대해 다시 고민해 보면서, 유저를 위한 '새로운' 프로젝트는 얼마든 팀을 꾸려서도 할 수 있지만 전교생의 DAU가 확정된 서비스를 발전시키는 경험은 바인드에서만 할 수 있을 것이라고 생각했다. (적어도 고등학교 생활 중에는 그렇다고 생각했다.)
그리하여 기존 도담도담의 장점과 새로운 프로젝트의 취지를 합쳐서, '도담도담 V6'를 개발하기로 확정했다. (원래 유지보수 버전으로 도담도담 V3까지 나왔는데, 기존의 도담도담 유지보수에 비해 확실한 변혁이 있을 것으로 보고 우리 기수 넘버인 버전 6으로 정했다.) 도담도담 V6에서는 전반적으로 기존 도담도담 기능과 실험적인 기능(있을지도 등) 몇 개를 가져가기로 했다.
도담도담 V6
각 플랫폼 팀(Front-end, Back-end, Android, iOS)에서도 기술적으로 변혁을 시도했다. 프론트엔드 팀은 모놀리식으로 구성되어 있던 레포지토리를 개선하는 MFA(Micro Frontend Architecture) 방식을 채택하고, 안드로이드 팀은 도담도담 티쳐 V6 RxJava에서 Corutine으로 마이그레이션, 내가 속한 백엔드 팀은 기존 Node.js 기반에서 Spring 기반으로 마이그레이션을 채택했다. 서비스가 커짐에 따라 객체 및 도메인 지향적으로 개발하려는 니즈가 커졌고, Spring 기반의 라이브러리/프레임워크를 적극 활용해서 안정적이고 유지보수가 쉬운 개발 인프라를 구축하고 싶었다. (하루 약 1,386건의 상대적으로 적은 수의 API 요청을 받긴 하지만, 학교 공식 학생 관리 서비스이기에 문제가 생겨도 최대한 서버가 죽지 않아야 했다. 가용성이 높은 서버를 구축하기 위해 MSA 인프라를 구축하자는 고민도 거듭했지만, 새로운 버전 출시가 급선무였기에 우선순위를 미뤘다.)
그렇게 팀원 모두 약 6개월(5월~11월) 간 각자 개발에 착수했고, 백엔드 팀인 나와 준호는 열심히 코드를 짰다. 초반에는 DB 정규화를 목적으로 ERD 구조 재설계를 진행한 후에 Spring Boot 및 Spring Data JPA(MySQL)을 이용해 개발을 했다. 내가 맡은 기능은 '기상송', '외출/외박', '멤버 권한', '있을지도' REST API 개발이었다. 준호 팀원이 Global 모듈 코드 및 다른 REST API 기능들을 열심히 개발해 준 덕분에, 마감 목표 기한(11월)에 맞춰 개발을 마치고 무사히 V6를 배포할 수 있었다.
개발 기간 중 방학(2022년 8월)이 있었는데, 그 기간 동안에는 클라 팀원들이 서버와 모두 떨어져서 지내므로 로컬 서버를 사용할 수 없었다. Pull Request 및 Merge 후에는 원격 서버에 바로 반영되어야 클라와 통신할 수 있었는데, 방학 시작 당시에는 CI/CD 파이프라인을 구축하지 않은 상태라서 터미널 SSH 접속 -> 원격 서버에서 Main 브랜치 Pull -> Gradle build -> Docker build -> Docker rm 기존 컨테이너 -> Docker run 배포 과정을 일일이 진행해야 했다. 나는 이 부분이 너무 불편해서 CI/CD 파이프라인을 만들기로 결심했고, 여러 레퍼런스를 찾아보며 Github Actions를 이용해 구축했다. (사실 원격 서버에서 직접 Gradle build 및 Docker build를 하는 과정 때문에 CD 오류가 생기기도 했고, CPU가 과부하되는 일도 흔했다. 동아리 선배한테 질문해 가면서 미치도록 오류 해결을 시도하고 고민하며, Github Actions 클라우드에서 Gradle build 및 Docker image를 만든 후 Dockerhub를 이용해 이미지를 전달하는, 원격 서버 입장에서는 훨씬 가벼운 작업 플로우를 채택했다. 실제로 해결한 것은 몇 개월 후였고, 방학 동안 CD 오류 해결 시도의 갑갑함을 생각하면 말도 안 나온다.)
2022년 9월 경, 실제 요청을 받고 있는 서버를 잘못 건드려 식은 땀나는 경험도 했다. 기존 도담도담 V2의 페이징 관련 불편한 점을 해결하기 위해 Node.js 소스코드를 고치고, 기존 도커 컨테이너를 내리고 다시 업데이트된 이미지로 컨테이너를 올렸다. portainer에서 duplicate 버튼을 눌러 기존 컨테이너에 새로운 이미지를 적용할 수 있었는데, 완전히 내리고 다시 컨테이너를 올리는 바람에 도커 볼륨 연결이 초기화됐다. 당시 도커 볼륨의 존재를 몰랐던 나는 도담도담의 모든 이미지(picture)가 안 뜨길래 내가 이미지를 모두 날려 먹은 건가 싶었는데, 다행히 선배가 도커 볼륨을 마운트 하여 해결해 주셨다. 그 후 컨테이너 볼륨과 도커 볼륨의 차이를 알게 되었고, 볼륨 마운트에 대한 설정도 배웠다. 또한 원격 서버 자체가 없어지면 그동안 쌓인 이미지도 소실되겠다는 생각에, 이미지 저장소를 외부로 옮기는 작업을 했다. (바인드가 사용하는 서버는 Naver Cloud Platform 기반이었기 때문에, 이미지를 업로드하면 Naver Cloud Object Storage에 저장되는 작업을 수행했다.) (도담도담 사용률이 낮은 밤에 이 작업을 해서 천만다행이었다.)
크리스 선생님이 항상 강조하신 것이 '유저의 니즈'와 '데이터 수집'이었다. 이는 선생님이 우리에게 가르쳐 주신 OKR(Object Key Result)과 관련이 있는데, 프로덕트를 배포하는 경우 기능별 유저의 DAU, MAU를 꼭 파악해야 하고, 이러한 통계치가 OKR 목표치에 도달하지 못했을 때는 그 기능이 유저의 니즈를 충족하지 못한 것이라 판단하여 과감히 드랍해야 한다는 것이다. 기존 도담도담에서는 이러한 부분을 잘 분석하지 못해 사용 빈도가 떨어졌다는 것이, 도담도담 V6의 요청 통계치를 내기 위해 서비스 및 유저 별로 로깅하는 기능을 개발했다. 나중에는 이를 통해 하루 약 1,386여 건의 API 요청이 들어온다는 것을 알았고, 현재에도 이 로깅 기능을 통해 유저의 서비스 사용 빈도에 대한 기록을 남기는 중이다.
추가로, 11월 MVP 개발 및 배포 후에 주요 업데이트 내용을 패치 노트처럼 제공하고, 구글 폼을 통해 서비스 피드백과 버그를 제보받았다. 대부분이 클라이언트에 대한 제보라서 백엔드는 대처 사항이 적었지만, 도담도담 프로덕트 자체의 완성도가 올라가는 느낌이라 행복했다. 학생들이 적극적으로 버그를 제보해 준 덕에 ICT 출품 전 퀄리티를 높일 수 있었다. (백엔드 개발자로서는 클라이언트 개발자처럼 직접적인 피드백을 받을 수 없는 것이 아쉽긴 했다.)
대구 엑스코 ICT 부스 운영
우리 학교에서는 11월이 되면 2학년 나르샤 팀 모두 의무적으로 엑스코 ICT 부스 운영에 참가한다. 1학년때는 몇몇 팀들만 출품할 수 있는 연습이었다면, 2학년의 ICT는 실전이었다. 우리 팀의 경우에는 마감 기한을 ICT 시작일로 맞출 만큼 중요한 행사이기도 했다. 또한 떨림만큼 설렘도 있어서 멋진 경험을 한다는 것에 기대되었다.
2022년 11월 9~11일(3일간) 진행되었다. 우리 바인드 팀은 '도담도담 V6'로 출품하게 되었는데, 기존 도담도담의 장점에 대한 설명(종이 장부를 대신하는 페이퍼리스 학생 생활 관리 시스템)보다 버전 6에서 바뀐 점들 및 앞으로의 방향성을 브리핑하는 방향으로 부스 설명을 계획했다. 중간중간에 식사 시간도 있고 휴식 시간도 있어야 하기에, 로테이션을 돌며 한 명당 1시간 꼴로 부스를 지켰다. 외부인 및 기업 대표 분들, 교육인 분들도 많이 방문해 주셨다. 강은희 대구교육감님이 방문하시는 날도 있었는데, 상은이와 함께 팀을 대표해 사진을 찍었다.
당시에는 부스 운영을 하고 끊임없이 서비스에 대한 설명을 하며 굉장히 힘들었는데, 지금은 행복하고 뿌듯한 기억으로 미화되었다. 부스 운영 당시 각 팀별로 인터뷰 영상을 찍었었는데, 우리 팀의 경우 내가 인터뷰를 진행했다. 해당 인터뷰 영상은 대구소마고 공식 유튜브에 업로드되었다.
ICT에서는 각 팀마다 서비스에 대한 발표도 진행하는데, 이번의 경우 투표 점수를 매겨 서울 Softwave에 참가할 팀을 뽑았다. 나는 서울에 꼭 가서 좋은 경험을 쌓고 오고 싶었기에 내가 발표를 맡았다. 팀원들과 함께 발표 자료를 만들고, 연습을 통해 실수를 없애며 선생님들 앞에서 연습 발표를 진행하며 피드백을 받았다. 그동안 수많은 발표 경험으로 쌓아온 노하우 덕분에, 꽤 수월하게 발표 준비를 마칠 수 있었다.
실제 발표 현장에는 우리 학교의 선생님들, 학부모님들 및 외부인까지 참석해서 굉장히 떨렸지만, 연습했던 대로 실수 없이 무사히 진행했다. 우리 팀은 꽤 높은 점수를 받았는데, 이는 바인드 팀 Softwave 박람회 참여로 이어졌다. 부담감 하나를 떨쳐낸 동시에, 1등이라는 결과를 받는데 조금이라도 기여했다는 생각이 드니 너무 행복했다.
서울 코엑스 Softwave 부스 운영
위에서 언급했던 '대구 엑스코 ICT'에서 선정된 팀들만 서울 코엑스 Softwave에서 부스를 운영할 기회가 주어지는데, 기적적으로 우리 팀이 1등으로 선정되어 가게 되었다. 단, 서울에서 3박 4일간 머무르는 활동 특성상 인원 제한(팀 당 3명 이하 참여)이 있었기에 바인드 내의 각 플랫폼 팀(프론트엔드, 백엔드, 모바일 앱)의 대표가 참여하게 되었다. 백엔드 팀의 대표는 필자(우준성), 프론트엔드 팀의 대표는 임동현, 모바일 팀의 대표는 최민재였다.
2022년 12월 6일 오후, 모니터 및 기자재를 챙겨 학교에서 대여한 버스를 타고 서울로 출발했다. Softwave는 12월 7일~9일 3일간 진행되었기에, 그 전날에 도착해서 부스를 정리하고 기자재를 설치했다. 우리 부스 뒤쪽에는 부산소마고, 앞쪽에는 광주소마고, 왼쪽에는 대덕소마고, 이렇게 4개교의 대표들이 다 모인 자리라서 아는 개발자 분들을 만날 생각에 기대되었다.
숙박은 근처 호텔에서 해결하고, 아침은 주로 주변 맥도날드의 맥모닝 세트를 먹었다. 점심과 저녁은 코엑스 지하의 음식점들 중 골라 먹었으며, 부스 운영에 차질이 가지 않게 팀별로 로테이션을 돌며 따로 밥을 먹었다. 전체적인 부스 운영과 설명은 ICT와 비슷하게 이뤄졌으며, 방문하는 분들의 규모가 좀 더 컸다. 외국 CEO 분께서 방문하여 내 주특기인 영어로 서비스를 설명드리기도 했고, 교육 및 연구업체 대표 분이 도담도담 서비스 후원 제안을 주시기도 했다. 무엇보다 도담도담에 대해 종일 설명하고 피드백을 받으며, 만약 1년 전으로 돌아간다면 어떤 부분에 집중해야 할지 뚜렷하게 감이 잡혔다. (개인적으로 도담도담 백엔드에 대한 질문도 꽤 들어왔는데, 왜 MSA 기술을 적용해보지 않았을까 하는 후회감도 들었다.)
물론 3일 내내 부스 운영, 식사, 수면 이 세 가지만 했던 것은 아니다. 부스 운영을 4~5시쯤에 마치고 나면 휴식 시간이 많이 있었는데, 호텔에 머물러도 되지만 나와 친구들은 서울을 구경하는 쪽을 택했다. 부스 운영을 한 첫날 저녁에는 선배님들께서 찾아와 주셔서 밥을 얻어먹었는데, 선배님들이 회전 초밥과 커피를 사주셔서 너무나도 맛있게 먹었다. (나도 서울에 자취하는 선배가 되어 후배들에게 베풀어주겠다는 꿈이 생겼다.) 두번째 날 저녁에는 본격적으로 한강 주변을 구경하기로 결정해서, 한강 라면을 먹고 롯데타워까지 따릉이를 타고 달리며, 숙소에서 다 함께 디저트를 나눠 먹었다.
항상 이렇게 정규 수업을 벗어나 어떤 대회에 참가하거나, 외부 활동에 참가할 때가 제일 행복하다. 모두가 공부하는 순간에 다른 경험을 쌓는다는 보람도 있지만, 지금이 아니면 만나지 못할 친구들과 추억을 쌓는다는 행복이 가장 큰 것 같다.
이렇게 놀고 돌아와서, 호텔에서 밤에 2시간 정도 자격증 공부를 하다 잤던 기억이 떠오른다. 서울에서 돌아오자마자 주말에 리눅스마스터 2급 실기 시험이 있었기에, 시간을 최대한 잘 활용해야 했다. 노션에 정리하며, 끝까지 버티겠다고 마음 먹고 잠을 떨쳐냈던 추억이 이제는 보람차고 아름답게 느껴진다. 서울에서 대구로 돌아오는 금요일엔 휴게소 스낵코너에서 저녁을 해결하고, 밤늦게 학교에 도착해 비싼 택시비를 내며 집까지 갔던 생각이 난다. 멋진 추억과 맞바꾼 택시비 3만원, 아깝지 않다.
바인드 팀 7기 채용 진행
글의 흐름상 어쩔 수 없이 채용 관련 섹션을 뒷쪽으로 미뤘는데, 채용 활동은 상반기(5~7월)에 진행되었다. 꽤 긴 기간을 잡고 채용 절차는 어떻게 할지, 어떤 인재를 뽑을지, 어떤 과제가 좋을 것이고 각 절차에서는 어떤 부분을 봐야 할지 등과 같은 부분을 팀원들이 다같이 고심했다. 절차는 서류, 기술면접, 임원면접 순으로 진행하기로 했다. 이 전형으로 뽑히면 인턴이 되는 것이고, 인턴 생활 이후 정규 팀원 전환 및 불합격이 정해진다. 사실상 인턴을 뽑는다는 것은 바인드의 미래를 이끌어갈 팀원을 뽑는 것이기에, 6기 내에서 굉장히 많은 리소스와 노력을 들였다.
바인드 팀 인턴을 뽑을 때는 1학년 중반이기 때문에, 대체적으로 실력보다는 인성을 먼저 평가했다. 1차 서류에는 자기소개와 함께 각 분야별 과제를 제출했다. 프론트의 경우에는 기초 HTML 및 CSS, JS 과제로 실력을 판단했고, 백엔드는 소스코드 작성 대신 간단한 ERD를 설계하는 과제를 제출하게 했다. (백엔드의 경우 다른 플랫폼에 비해 프레임워크 및 언어가 다양하기 때문에, 소스코드로 실력을 판별하지 못할 것이라고 결론을 내렸다.)
기술 면접과 임원 면접에서는 실제 실력과 인성을 가려내기 위해 진지하고 깐깐한 면접관의 자세로 질문을 쏟아부었고, 거의 모든 친구들이 굉장히 긴장한 것 같았으나 잘 대답해줬다. 면접 질문과 그에 대한 대답은 팀 내의 기밀 사항이므로 공개할 수는 없지만, 질문 리스트를 짜놓고 대답에 따라 꼬리 질문을 이어가는 형식으로 진행했다. (임원 면접에서는 인성을 보기 위해 두 가지 중 하나를 택해야 하는 '케이스 질문'이나 MBTI와 연관한 메타인지 질문 등을 했다.)
이렇게 깐깐한 과정 덕분에 가능성이 넘쳐흐르는 바인더스 7기가 구성되었으며, 7기들이 함께 6개월동안 '멘토멘티'라는 인턴쉽 프로젝트를 진행한 후 거의 모든 팀원들이 정규 팀원이 되었다. 2023년 4월, 지금은 누구보다 믿음직한 후배들로, 믿고 바인드의 미래를 맡길 수 있게 되었다. (백엔드 팀의 한 친구가 인턴쉽 과정 후에 팀과 함께하지 못하게 되었지만, 그 친구는 바인드 팀이 아닌 스스로 결성하고 이끄는 팀에서 훨씬 성과를 낼 수 있겠다는 판단에 그러한 결정을 내렸다.)
교내 컨퍼런스(B1CODE) 주최
2022년 12월 21일, 바인드팀은 도담도담 V6에서 사용된 기술 및 지식을 전교생에게 공유하기 위해 컨퍼런스를 주최하고 진행했다. 사실 3년 전까지 대소고에서 매년 동아리들이 모여 이러한 컨퍼런스를 진행해왔지만, 코로나로 인해 진행이 멈췄다. 2022년에 코로나가 잠잠해졌음에도 컨퍼런스 관련해서 아무런 소식이 없어서, 팀 홍보도 할 겸 바인드팀이 본격적으로 진행하기로 했다. 바인드팀의 기술 공유가 중심이지만, 다른 팀 및 개인의 발표도 함께 진행했다. (컨퍼런스 이름인 B1CODE는 바코드라고 읽는데, 이는 '바인드의 소스코드'의 약어이다.)
우리가 주최한 교내 컨퍼런스에는 총 7개의 세션이 있었는데, 항목은 아래와 같다. 각각 10분 정도씩 진행되었으며, 전교생을 대상으로 진행되었지만 선택 참여라서 주요 청중은 1학년이 되었다. 참여율을 위해 학교에서 돈을 지원받고, 컨퍼런스 참석자들에게 추첨을 통해 상품을 나눠줬다. 컨퍼런스는 바인드팀 유튜브 채널에 실시간으로 송출되었으며, 각각의 발표 세션들을 컷편집을 거쳐 유튜브에 업로드했다. (그 당시에 유튜브로 바인드팀을 세상에 전파해보자는 철없는 결심을 하고, 열심히 채널을 꾸미고 영상 소스를 편집하고 썸네일을 만들어 올렸던 그때가 생각난다.)
1. 임베디드 꿀팁
2. Node.js에서 Spring을 향해
3. Spring에서 MSA를 구성하는 방법
4. Coroutine을 활용한 비동기 처리
5. 다시, 세상 모든 알레르기 환자를 위하여
6. RxFlow로 iOS 퍼블리셔 벗어나기
7. 2,000커밋 MFA로 산산조각 내기
나도 이번 컨퍼런스 발표에 백엔드 세션을 진행했는데, 실제 도담도담 V6 서버에서 진행된 Node.js에서 Spring으로의 마이그레이션을 주제로 잡았다. 실제 발표 영상은 유튜브에 있으며, 동기 및 비동기, Spring 프레임워크의 장점 등을 설명하며, 바인드 백엔드 팀이 왜 Spring으로의 마이그레이션을 택했는지 발표했다. 그리고 성능 향상에 대한 얘기도 했는데, 돌아보면 캐싱 및 SQL 최적화 등의 작업을 수행하지 않고 단순 프레임워크 마이그레이션으로 속도 개선 및 성능 향상을 했다고 말한 게 철이 없었던 것 같다. (실제 속도 개선이 되긴 했지만, 내부적으로 왜 개선되었는지 자세하게 알지 못했다.)
이번 컨퍼런스에서는 최민재 팀원이 리더 역할을 하며 거의 모든 과정을 이끌어갔다. 책임감이 컸음에도 불구하고 자신의 발표 세션까지 깔끔하게 준비하는 모습이 존경스러웠다. 사실 첫번째 세션 '임베디드 꿀팁'에서 임베디드 개발을 위해 학교의 지원을 어떻게 받는가에 대한 팁을 전수해줬는데, 의도치 않게 학교에 대항하는 내용이 되어버림과 동시에 방송이 신입생에게까지 송출되어 파장을 일으키긴 했다. 신입생 담당 선생님들께 사과문을 작성하고 엄숙한 분위기 속에 12월을 끝마친 일화가 있었지만, 그마저도 최민재 팀원이 책임을 지고 끝까지 대응하며 성숙한 모습을 보여줬다.
인수인계
2022년 12월부터 인수인계 활동을 시작했다. 2023년부터는 바인드 7기 친구들이 주도권을 갖고 바인드 동아리를 운영해야 하기에, 개발 및 문화 측면에 있어서 인수인계가 필요하다. 백엔드 팀에서는 이지민 후배와 최수원 후배가 도담도담 백엔드 코드 및 인프라에 대해 전수받았다. 인수인계라고 해서 크게 전수하는 건 없고, 네이버 클라우드 계정 및 도커 인프라 구조, 앞으로의 백엔드팀 방향성 등을 가르쳐줬다.
내가 속한 6기가 인수인계를 받을 때는 정리된 문서같은 게 없어서 전달받은 사항을 잊어버리는 경우도 많았고, 전달받지 못한 부분도 조금씩 존재했다. 그런 부분을 없애고자 백엔드 팀 내에서 '백엔드 업무 매뉴얼'을 정리하고, 피그마로 백엔드 인프라 구조도를 만들어 인수인계 시 전달해줬다. 또한 협업을 위해서는 명확한 커밋 히스토리가 필요한데, 평소에 통일이 되지 않았던 gitmoji 사용을 명확히 하기 위해 git commit template을 작성하고 적용을 권장했다.
그 이후에도 도움을 요청하면 코드리뷰 코멘트를 달아주며, 방향성에 대한 고민을 같이 해주고 DDD를 위한 이벤트 스토밍을 도와주다가 현재에는 완전히 7기가 독립한 상태이다. 7기 백엔드 팀원들 다 똑부러지는 후배들이라 개발도, 팀 운영도 필자보다 훨씬 잘할 것이라고 믿는다.
회고, 바인드를 떠나며
이제 3학년이 되며 점차 바인드 활동에서 손을 떼고, 실제 사회에 던져져야 할 날이 다가오고 있다. 아직도 나는 많이 부족하고 사회에 나갈 준비가 되지 않았지만, 바인드에서의 활동을 돌아보며 팀원들의 좋은 영향 덕에 한 걸음 한 걸음을 옮길 힘이 났다. 돌아보면 서로 서운한 부분이 있을 때 마음을 까놓고 얘기하고, 위기가 생길 때에는 팀원 모두 힘을 합쳐 대응하면서 누구보다 이상적인 팀이었다.
팀원들 모두 책임감을 갖고 활동해주며, 끝까지 각자의 몫을 다해줘서 정말 감사했다. 이 글을 작성할 수 있게 동기부여를 주고 기억이 나지 않았던 일정들을 상기시켜준 레퍼런스를 작성한 임동현 동료에게도 큰 감사를 표한다. 방향성 선정에 대해 끊임없이 도움을 주시며, 유저의 니즈에 대해 깊게 각인시켜주신 크리스 선생님께도 감사하고, 선뜻 바인드의 담당 교사를 임해주시고 교장/교감과 학생들 중간에서 다리가 되어주신 이유준 선생님께도 감사한다. 말도 많고 탈도 많은 6기였지만, 이번 한 해에도 프로젝트 무산이나 팀의 분열 없이 무사히 동아리 활동이 진행될 수 있었던 것은 6기 바인더스 팀원 모두 덕분이 아닐까 싶다.
팀의 문화에 대해 심사숙고하며 진지한 동아리를 만들기 위해 힘써준 바인드 6기 팀장 김상은 동료, 진지한 태도로 임하며 개발에 있어서 항상 동기부여를 줬던 최민재 동료, 인턴 생활 시절부터 함께하며 꾸준함의 대명사로서 긍정적 영향을 준 임동현 동료, 백엔드 개발 팀에서 함께 동고동락하며 오류를 해결해나갔던 김준호 동료, ENFP 에너지 뿜뿜하며 긍정적인 마인드를 갖게 해준 금현호 동료, 힘들 때마다 곁에 있어주며 완벽에 대한 기준을 보여준 기준 동료, 내면은 T지만 F답게 행동해주며 말에 공감해주고 갓생을 함께 실현한 김도현 동료까지. 다들 너무 고맙다. 개발 잘하는 좋은 팀원이 되어주지 못해 미안하고, 그럼에도 격려해주고 같이 개발해줘서 고맙다. 다들 열심히 취준하고 원하는 기업 합격해서 무사히 상경하고, 원하는 분야로 꼭 성공하자!
내가 많이 배우고 멋진 경험을 얻었던 만큼, 바인드 팀만의 '협력 정신'이 오래 이어지며 많은 후배들이 바인드 팀을 거쳐가면 좋겠다. 바인더스의 행복을 위해 사회인이 되면 바인드 팀에 간식비나 회식 비용을 기꺼이 후원해주고 싶다. 또한 그들의 취업 고민과 개발 고민을 조금이라도 해결해주고자 능력있는 개발자가 되고 싶다. 바인드 팀 그리고 바인드 동아리에 들어온 것은 대구소프트웨어마이스터고 입학 이래로 가장 잘한 선택이며, 신입생으로 돌아가더라도 다시 한 번 바인드 팀에 지원하겠다.
팀원들과의 갈등, 수요시장, 바인드팀 6기 카톡, 야준호의 열혈 개발 등 바인드팀 6기에서 아직 못다한 얘기들이 많지만, 유종의 미를 위해 여기서 글을 마치겠다. 끝까지 읽어준 분들 모두에게 진심으로 감사드린다.