SMAIVNN
article thumbnail

작년 이맘 때, 2022 Smilegate winter 캠프를 진행했다.

다만 코로나 시기였던 만큼 오프라인으로 진행되었고, 적극적으로 참여하기 어려운 환경이였다.

 

올해, 운이 좋게도 좋은 기회로 다시 한번 스마일게이트의 2023 개발 캠프에 참가할 수 있었다.

작년과는 달리 오프라인으로 캠프를 진행하였고 지금부터 약 세 달간 진행한 개발 캠프에 대해서 글을 남기려고 한다.

 

개발 환경이 어때?

우선 Smilegate 개발 캠프의 장점 먼저 말하고 싶다.

캠프 중간 진행한 인터뷰(링크)에서 말 하였는데, 요약하자면 온전히 캠프와 개발에 집중할 수 있도록 모든 환경을 제공해준다.

 

모니터와 노트북, 하루종일 개발을 진행하고 자유롭게 회의할 수 있는 오프라인 공간, 가까운 곳에 계시는 현역 멘토님들, 빵빵한 탕비실과 점심식사 제공, 캠프 활동비용.. 그리고 무엇보다 약 250만원 상당의 허먼밀러 의자까지..(이제 집 의자에 못 앉는다.)

 

다른 캠프를 해본 적은 없지만 정말 온전하게 캠프에 그리고 개발자로서의 성장에 집중할 수 있도록 최대한의 환경을 지원해준다는 것을 느꼈다.

 

어떤 분위기로 진행돼?

물론 해당 기수가 어떤 사람들로 이루어졌는지에 따라 다르겠지만, 이번 우리 캠프의 전반적인 분위기는 정말 화목했다.

다들 열의를 갖고 3개월간 정말 낮부터 밤까지 대부분의 시간을 함께 하다보니 자연스럽게 친해지고 재밌는 분위기에서 함께 프로젝트를 진행했다. 우리 팀끼리만 친해진 것이 아닌 다른 팀의 분들과도 함께 대화하고 여러 세미나를 진행했다.

 

전국 단위에서 지원자가 있었던 만큼 선정된 한 사람 한 사람이 모두 뛰어난 실력을 가졌고, 덕분에 이 분들의 개발 방식과 이야기를 들으며 인사이트를 넓힌 좋은 기회가 되었다.

 

어떤 프로젝트를 진행했어?

우리 팀은 디스코드 클론을 베이스로 한 프로젝트를 진행했다.

 

처음 팀원들과 주제를 정하며 정말 다양한 의견이 나왔다. 요즘 유행이라는 대용량 데이터 다루기, 라이브 미디어 스트리밍, 채팅, MSA구조 등 다들 이번 캠프에서 진행해보고자 하는 니즈가 정말 다양했다.

 

하지만 문제점은 우리팀 프론트엔드 개발자가 탈주해버렸다는 것이다.. 

 

따라서 우리는 우리의 니즈를 모두 포함하면서도 백엔드로만 이루어진 우리가 화면을 클론할 수 있는 여러가지 플랫폼을 서치하였고 그 중 디스코드를 채택하였다.

 

캠프와 고난

우리 팀의 고난은 대부분 프론트엔드 부분과 약간의 인프라 부분에서 발생하였다.

 

캠프 일정에 대해 먼저 말하고 싶은데, 약 세 달 진행되는 캠프는 첫 한달은 개인 프로젝트 및 설계, 이후 두달은 더욱 깊은 설계와 개발 그리고 테스트 등의 일정으로 진행된다.

 

우선, 우리 팀은 1명의 프론트 개발자, 4명의 백엔드 개발자로 이루어졌었다.

 

첫 달, 팀원들과 함께 주제를 최종적으로 선정하며 이제부터 파이팅 하자고 결의를 다졌다. 그리고 그 다음날 프론트엔드 개발자님이 개인 사정으로 탈주하셨다..

 

그렇게 우리는 백엔드 개발자 4명이서 프로젝트를 진행하게 되었다..

MSA 구조를 채택하여 가져가기에 프론트 부분은 각 서버의 부분을 각자가 담당하자고 진행하자고 말하고, 그래도 일단 설계 열심히 하면되겠지, 구상한대로만 하면 되겠지라는 생각으로 프로젝트를 진행하였고 이는 큰 실수였다.

 

백엔드 구현 자체는 일정에 알맞게 종료되었다. 추후 테스트와 성능 개선만 남겨두고 있었다. 나같은 경우 webRTC를 이용한 미디어 서버를 구현하고 있었기에 필연적으로 프론트엔드 서버와 함께 진행되어야 했는데, 화면을 구현하는 이 과정에서 "어 우리.. 프론트엔드 .. 큰일났는데..? 대충 볼게 아닌데?"를 바로 직감해버렸다.

 

그렇게 긴급 회의를 열고 결국 프론트 개발을 동시에 진행하기 시작하였다. 그나마 우리 팀 각 서버 도메인이 다른 것이 도움이 되었다. 함께 작업할 큰 틀을 먼저 잡아놨고, 그 후 도메인별 다른 페이지를 만들어 해당 부분에서 각자가 작업하는 방식으로 진행했다. 프론트 경험이 있던 사람이 나밖에 없었기에 그리고 나도 많이 부족했기에 캠프를 함께 진행하는 다른 팀에게 많이 물어보고 큰 도움을 받았다. 

 

최종 발표회에서 데모 부스를 운영하기에, 캠프가 끝나기 직전까지 프론트와 인프라를 동시에 진행하며 정신없는 나날을 보냈다. 하지만 다행스럽게도 둘 모두 기간 내에 잘 마무리할 수 있었다. 프론트엔드 개발자에게 어떻게 데이터를 줘야할지와 더불어 진짜 프론트엔드 개발자의 소중함을 느낄 수 있었다.

 

어떤 결과물을 만들었어?

백엔드 개발자의 감성으로 진행한 디스코드 클론이라 화면 구성이 조금 아쉽지만 아래 사진과 같은 디스코드 클론을 만들어냈다.

 

해당 프로젝트의 아키텍처는 다음과 같다.

 

아키텍처를 보면 알겠지만 다양한 언어와 MSA 구조를 가져갔다. 또 로우레벨단에서 게이트웨이를 직접 구현해서 사용하기도 하였다. 재밌는 프로젝트이고 볼 거리가 꽤나 있으니 프로젝트와 관련하여 아래 링크에서 확인하면 좋을 것이다.

 

특히 프로젝트를 진행하며 내가 담당하고 신경 쓴 부분은 추후에 다른 포스팅으로 더 업데이트하려고 한다.

깃허브 : https://github.com/sgdevcamp2023/remember

포스팅 : 추후 업데이트 예정

 

어떤 것을 느꼈어?

캠프 막바지에는 팀원 모두 새벽 네시, 다섯시까지 다들 밤을 새우며 할 정도로 건강을 안챙기며 했다. 좋은거 많이 보고, 좋은 음식 많이 먹고 건강한 몸과 정신으로 일해야 뭐든 잘 할수 있다고 생각한다.

 

캠프가 끝나고 1주일간 푹쉬었다. 여수 여행도 다녀오고, 너무 해보고 싶던 펠월드도 잔뜩 했다. 무엇이든 건강해야 할 수 있구나를 느꼈다. 

 

또, 너무 좋은 사람들을 만났다. 앞서 말했듯 전국에서 검증된 실력 좋은 팀원들이 함께했다. 현업을 하다 온 사람, 다른 분야에 있는 사람 등 그들과 많이 대화하며 인사이트를 넓힌 것이 너무 좋았다. 무엇보다 Node.js를 주로 하던 내가 다른 언어는 또 다른 분야는 어떻게 개발하는지 알 수 있는 좋은 기회를 가졌다. 이들과의 협업 경험에서 정말정말 많이 배울 수 있었다.

 

그리고 이게 이어져 좋은 사람들과의 네트워킹을 얻었다. 캠프원 뿐만 아님 캠프를 하며 알게 된 여러 멘토들, 스마일게이트 커뮤니티의 사람들 등 도움을 나눌 수 있는 많은 사람들과의 인연이 가장 값진 것이 아닌가라는 생각이 든다. 캠프가 끝났지만, 이 사람들과는 지금도 꾸준히 연락할 정도로 많이 친해졌다.

 

마지막으로, 개발자로서 성장했음을 많이 느꼈다. 개발자로서의 성장이 무엇을 의미하는지는 사람마다 다르겠지만, 나는 앞서 말한 모든 것이 개발자로의 성장과 귀결된다고 생각한다. 사람들과 협업을 하고 프로젝트를 설계하고 능동적으로 회의를 주도 해보고 다양한 시도를 하는 것. 알고리즘을 위해 필요하다면 외국 개발자들과도 소통해보고 해결 방법을 찾아내는 것. 이 모든 것을 짧은 캠프 기간 동안 경험하였고 모두 나의 경험이 되었다.

 

또 하고 싶어?

정말 바쁜 1, 2월이였다. 캠프를 끝마치고 동시에 대학교도 졸업했다.

나는 이제 취업을 해야한다. 아쉽지만 또 할 수는 없다.. 푹 쉬었으니 이제 인턴이든 취업이든 다시 달릴때다.

 

하지만 앞으로도 스마일게이트의 커뮤니티에서 활동하며 앞으로 스마일게이트의 캠프에 지원 할 사람들에게 도움을 주고싶다. 또, 혹시 스마일게이트의 캠프에 관심 있거나 고민이 되어 이 글을 읽고 있다면 꼭 참가할 것을 권장한다.

 

profile

SMAIVNN

@SMAIVNN

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!