베이글코드는 2019년부터 세계 각국의 학생들을 대상으로 글로벌인턴십을 진행해왔다. 작년 1기에 이어 올해에도 9명의 2기가 우리와 함께하게 되었다. 이번에는 그 중, KAIST와의 연계로 우리와 함께하게 된 개발자 인턴들 이윤석, 전정연님을 만나보았다. 현재 코로나 상황으로 재택근무를 시행하고 있는지라 인터뷰는 Google Meets와 Slack을 통해 진행하였다.
안녕하세요! 간단하게 자기소개 부탁드려요 🙂
윤석: 안녕하세요. 저는 카이스트 전산학부에서 마지막 학기만 남겨두고 있습니다. 현재 베이글코드 CVS Server Team에서 인턴으로 근무 중입니다.
정연: 안녕하세요. 저도 카이스트 전산학부에 재학 중이고, 베이글코드에서 CVS Client Team에서 Junior Software Engineer로 근무하고 있습니다.
두 분 모두 KAIST의 인턴십 프로그램을 통해 베이글코드에 지원해주신 것으로 알고 있는데, 여러 회사 중 베이글코드를 선택하신 이유가 있을까요?
윤석: 저는 지금까진 AI research에 관심이 많아서 관련 수업도 많이 찾아 듣고 딥러닝 연구개발팀에서 인턴도 수행했었어요. 그러던 중 졸업하기 전에 백엔드 엔지니어로서 실무를 경험해보고 싶다는 생각이 들어서 베이글코드 서버팀에 지원하게 되었습니다. 당시 다른 게임회사의 지원도 고민했으나, 저희 학교 내에서 베이글코드가 병역특례 채용을 비롯한 젊은 인재 채용에 적극적인 회사로 유명하기도 했고 설포카 개발자 출신들이 많다는 말을 듣고 베이글코드를 선택하게 되었어요.
정연: 베이글코드에서 제공하는 경험들이 제 니즈와 잘 맞은 것 같아요. 우선은, 제가 기존에 참여하고 관심을 가졌던 프로젝트들이 앱이나 웹 개발과 관련되어 있었기 때문에 관련 분야에서 일하고 싶다고 생각했어요. 특히 이전 인턴에서 접하게 되었던 Unity에 흥미를 가지고 이를 사용해 개발하는 기회를 가지고 싶었기 때문에 이런 개발 경험을 제공할 수 있는 베이글코드의 클라이언트 팀에 지원하였습니다. 이외에도 당시 카지노에 대해 관심이 있었기 때문에 흥미를 가진 분야에 대해서 경험할 수 있다는 점도 베이글코드를 지원하는 데 영향을 준 것 같아요.
두분이 모두 개발자이시지만 정연님은 클라이언트, 윤석님은 서버 개발자이신데 각각 업무를 조금 설명해주실 수 있을까요?
윤석: 게임 서버이기 때문에 굉장히 다양한 이벤트들이 있다는 점이 우선 생각나네요. 유저가 어떤 액션을 취했을 때 서버에서는 클라로부터 request를 받아서 구현된 로직을 통해 알맞은 값을 계산하여 다시 클라에게 response를 보내주게 됩니다. 이 비즈니스 로직들을 기획팀의 요구에 따라 업데이트하거나 추가하는 업무를 주로 맡고 있고 회사 내의 QA, CS, CRM팀들이 업무하기 편하도록 관리자 페이지를 니즈에 맞게 업데이트해주고 있습니다. 업무 효율성 증대를 위해 리팩토링하는 경우도 있고요.
정연: 클라이언트 팀에서는 기본적으로 유저의 눈에 보이는 부분들을 개발하고 있어요. TA와 서버에서 만들어 주신 값들을 이용해 유저들이 플레이하는 부분들이 작동될 수 있도록 제작하는거죠. Unity를 사용해 게임 내의 화면의 움직임 이외에도 BGM을 적용하는 부분 등 유저가 게임이라고 생각되는 부분 전반의 작동에 관해 버그를 수정하고 개발하고 있습니다.
인턴으로 근무하는 동안 각자 어떤 일들을 주로 하셨나요?
윤석: 처음 3주 정도는 우선 간단한 업무들을 처리하면서 서버 구조를 파악하는 기간을 가졌습니다. 서버 간의 통신, 서버와 클라이언트 간의 통신이 어떻게 이루어지는지 알아보면서 Admin 페이지 개선하는 업무를 주로 맡았고 간단한 클라이언트 업무도 받았습니다. 이후로는 A/B test, push 알림서비스, Data팀에게 전해줄 statistics 관련 값 처리, SSO server와 관련된 업무를 받았습니다. 다양한 업무를 맡아서 진행하다 보니 서버 이곳저곳을 둘러보게 되어 빠르게 적응하는 데 도움이 되었던 거 같아요.
정연: 먼저 초반에는 기본적인 틀을 파악할 수 있도록 간단한 수정 작업 등을 진행했어요. 제가 처음 접해보는 기능들을 빠르게 적응할 수 있도록 해주는 작업을 많이 맡겨주신 것 같아요. 이후로는 게임에서 발생하는 버그를 수정하거나 새롭게 추가되어야 하는 기능들 중 제가 처리할 수 있는 이슈들 할당받아 개발했어요. 보통 만들어진 기능들에서 추가되는 업무가 많았고, 현재는 새롭게 추가되는 게임의 한 부분을 개발하고 있습니다.
방금 설명해주신 일들을 많은 팀원분들과 진행해야 할텐데, 일의 진행방식은 어떻게 되나요?
윤석: 서버팀은 스프린트 기간을 일주일로 잡고 월요일마다 주간 회의를 하여 이번 스프린트 때는 어떤 업무들을 할지 Lead 분에게 할당받습니다. 협업 툴로는 GitLab을 사용하고 있는데 업무를 끝내고 나면 Merge Request를 올려 팀원 분들에게 코드리뷰를 받게 됩니다. 코드리뷰가 끝나게 되면 해당 브랜치는 merge가 되고 다음 업무를 진행합니다. 매일 오후 5:30이 되면 CVS 개발팀 전체가 스크럼 회의를 하면서 그날 했던 업무를 공유하고 필요하면 피드백을 받게 됩니다.
정연: 기본적으로 Client Team은 월요일마다 주간회의를 통해 매주 할 일에 대해 공유합니다. 업무는 보통 Jira를 통해 1~2개가 할당되고 매 업무가 끝나면 새로운 이슈를 할당해주십니다. 할당 업무를 끝내고 sourceTree를 통해 파일을 올리면 코드 리뷰를 해주시고 문제가 생기는 부분에 대해 재수정 후 할당 업무를 마무리합니다.
현재 코로나로 인해 재택근무를 하시는데 재택근무 시에는 어떻게 팀과 협업하고 계신가요?
윤석: 기본적으로 협업방식은 같은 것 같아요. 평소에도 슬랙이나 GitLab 같은 협업 툴들을 다양하게 사용하고 있어서 요즘같이 재택을 하면서도 업무 진행에 차질이 없는 것 같습니다. 업무 관련 의견을 나누는 부분에서는 trouble shooting에 대한 의견을 나누고 싶거나 기획단계에서 요구하는 바와 제가 개발한 것이 같은지 확인하고 싶은 경우가 생기는데, 간단한 경우는 슬랙에서 해결하고 슬랙으로 부족하면 슬랙 콜이나 google meets를 통해 의견을 나누고 있어요.
정연: 일단 Jira를 통해 할 일에 대한 정보가 있는 이슈들을 할당해 주시고, 개인적으로 google meets를 통해 직접 세세한 부분에 대해 설명을 해주십니다. 업무 중간에 생기는 질문은 slack을 통해 연락하고, 텍스트로 설명하기 부족하면 행아웃과 화면 공유를 통해 문제 되는 부분이 생기지 않도록 해주시고요. 이외에도 TA, 서버 팀에 필요한 부분은 slack을 통해 공유하고 있어요.
인턴십을 통해 이런 것을 배웠다! 라고 생각하시는 것이 있을까요?
윤석: 지금까지 AI 위주로 공부를 해와서 웹 개발은 비교적 새로웠는데, 사수분과 팀원 분들이 지도를 너무 잘 해주셔서 많은 것들을 배운 것 같아요. CVS 서버팀은 TypeScript와 node.js를 사용하는데 저는 JavaScript 자체를 처음 접하고 비동기개발을 해본 적이 없었는데 인턴십 덕분에 상당히 친숙해진 거 같습니다. 개발 프로세스를 접하게 된 것도 좋았어요. docker로 로컬서버를 띄워 로컬 브랜치에서 개발하고 merge가 되면 Jenkins를 통해 docker 이미지 빌드와 kubernetes 디플로이를 해서 QA로 넘어가는 과정을 직접 보는 것은 확실히 학교에서는 접하기 힘든 좋은 경험이었습니다. git으로 협업하는 것도 학교에서 프로젝트 했던 때보다 훨씬 능숙하게 다루게 되었어요.
정연: 먼저 다른 사람들이 만든 내용을 이해하고 공유하는 부분들을 배울 수 있었어요. 기존에 개발 경험에 있어서는, 제가 개발하는 부분이 작동되고 그 원리를 저만 이해하면 되었기 때문에 다른 사람들과 협업할 기회가 많지 않았어요. 하지만 인턴을 하면서 맡은 업무들이 기존에 있던 내용을 바탕으로 버그를 수정하거나 기능을 추가해야 하는 일이었기 때문에 코드를 다른 사람들이 잘 이해할 수 있도록 작성하는 습관을 가지고, 다른 사람들의 코드를 읽고 더 빨리 이해할 수 있게 되었습니다. 또한 Unity의 기본적인 부분들만 사용해봤었기 때문에 인턴을 통해 이에 대해서도 많이 배울 수 있었어요. 실제로 FSM, BT를 사용하는 것도 처음이고 이외에도 제가 처음 작업해 보는 부분들이 많았기 때문에 작업을 통해 Unity의 이해도를 높일 수 있게 되었습니다.
두 분 다 인턴 기간이 많이 남지 않았는데, 인턴으로 근무하신 시간을 돌아보며 소감 한마디씩 해주시면서 마무리하면 좋을 것 같아요 🙂
윤석: 코로나 때문에 7주라는 짧은 기간밖에 인턴을 하지 못하여 많이 아쉽습니다. 여름이 되면서 백엔드 개발을 혼자 공부할지 인턴을 할지 고민을 많이 했었는데 인턴 하길 정말 잘한 거 같아요. 얼마 안 남았지만, 최대한 많은 것을 해보고 인턴을 마치고 싶네요.
정연: 저는 반년 정도의 장기 인턴십을 처음 경험하게 되어서 걱정도 많고 기대도 많이 하였는데 벌써 인턴이 곧 끝난다는 게 잘 체감이 안 되는 것 같아요. 코로나 때문에 상상했던 부분과는 조금 달랐지만 그만큼 배운 부분도 많았기 때문에 이번 인턴을 통해 다음으로 나아갈 수 있는 발판을 마련할 수 있게 된 것 같아요. 이제 긴 인턴십 기간 중 짧은 시간밖에 남지 않았지만 남은 시간 동안에도 최대한 열심히 일하고 후회 없이 인턴을 마칠 수 있도록 하겠습니다.