안녕하세요.
유니크굿컴퍼니에서 리얼월드 서비스의 서버 개발을 맡은 백엔드 개발자 용태입니다.
2021년 7월 입사 후, 어느덧 유니크굿컴퍼니에서 리얼월드 서버 개발을 맡은 지 1년이 넘어갔네요.
입사와 동시에 개발 공부를 시작했으니, 개발자로서도 드디어 1년 차가 되었다고 할 수 있겠습니다.
처음 입사했을 때만 해도 실무진 분들께서 일하는 모습을 보며 감탄하기만 했는데, 그로부터 1년이 흘러 저도 동료들과 함께 일하는 사람이 되었어요. 지난 1년을 되돌아보며 배웠던 점과 성취한 점을 정리하고 앞으로의 다짐을 공유해 보려고 합니다.
1년 동안 무얼 했느냐 물으신다면…
우선 1년 동안 배운 것은… 개발 지식과 실력의 측면에서 거의 모든 것들을 배웠다고 할 수 있겠습니다. CS 기초, 인프라 기초, Git 활용, OOP, C#, Azure, ASP.NET Core, Entity Framework Core 등등 전반적인 개발 지식을 습득하고 친숙해지는 과정이 있었죠. 코드 작성법과 리뷰하는 법, REST 한 API 디자인 기술, 아키텍처를 어떻게 짜야 하는지. 일련의 과정들을 함께 가르쳐 주신 이예찬 개발자님과 입사 동기인 중고 신입 강현우 개발자님의 도움에 매우 감사하고 있습니다.
한편, 테스트 코드가 왜 유용한지 깨달았던 날, 모노리식 아키텍처의 한계를 체감한 날이 특히 기억에 남습니다. 그리고 어느덧 TDD와 테스트 코드가 없는 로직에 그것을 추가하는 작업에 익숙해진 것 같아요.
물론 이렇게 개발하지는 않았습니다;;
사회에서 일하는 방법을 습득한 점도 무척 감사하고 뜻깊습니다. 개발 지식을 실무로 배웠던 것은 성장 속도와 그 디테일에서 큰 장점이 있었지만, 독학으로 배울 수 있는 부분도 다수 존재한다는 점에서 필수불가결한 것은 아닙니다. 오히려 다른 측면에서 배운 것들이 학생으로 지냈던 시절엔 좀처럼 얻을 수 없는 부분이었기에 한결 소중하게 느껴집니다.
회사 업무 체계와 프로세스, 다른 팀과 원활한 의사소통을 하는 방법, 변경되는 요구사항에 따라 일정을 산정하는 법, 간단한 기획과 디자인을 메꾸는 법, 정보를 선별하여 누구에게 공유할지, 무엇이 우선인지 내정하는 법 등등. 사내에서 일할 때 일 돌아가는 구조와 가벼운 요령, 그리고 제대로 일하는 방법에 대해 배울 수 있었습니다.
또, 투표 시스템을 만들기 위해 POC, 프로토타입, 테스트, 프로덕션 단계를 거쳐 프로덕트를 출시하는 모든 과정을 직접 끌어나간 경험은 지원과 프로세스에 대한 통찰을 안겨준 경험이었습니다. 회사에서 일하는 분들이라면 모두 공감하시겠지만, 일이 재미있는 순간과 다소 어려운 순간이 교차해서 찾아올 때가 있습니다. 맡은 업무를 즐겁게 할 수 있도록 자신을 마인드셋하고, 지루한 순간을 극복하기 위해 담금질하는 과정이 회사뿐만 아니라 모든 곳에서 좋은 재산이 될 것 같습니다.
결국 우리는 함께 일하는 사람들이니까요 :)
데이터베이스에 대한 지식에 갈증이 있었지만, 개괄적으로 짚었을 뿐 깊이 파고들지 못한 것이 살짝 아쉽긴 합니다. 가까운 시일 내에 데이터베이스 정규화나 쿼리 최적화 작업을 하며 관련 능력을 향상하고 싶습니다.
또 다음에 맡을 프로젝트에서는 사내나 시스템에 직접적인 영향을 불러일으키는 작업을 재차 맡고, 그로 인한 수치의 변화를 확인해보고 싶습니다. 성능 향상이나 새 기능이 사용자 만족도에 영향을 얼마나 어떻게 끼쳤는지 파악하는 것이 프로덕트의 성패에 중요하다고 생각하기 때문입니다.
한편, 제작했던 투표 시스템을 사내 제작자뿐만 아니라 외부 크리에이터분들도 사용할 수 있도록 범위를 넓히고 싶은 바람이 있습니다. 투표 시스템 프로덕트는 ‘인터렉티브’라는 리얼월드의 특징을 매우 돋보이게 만들어줄 수 있는 강력한 도구라고 느꼈기에, 모든 크리에이터가 사용할 수 있게 만들면 좋겠습니다.
부족한 점을 찾아야 해결할 수 있는 법이죠
이 문단을 작성하면서 참 오래 고민했습니다. 성공한 점이 무엇이 있을지 생각해 보았지만, 으레 사회초년생이 그렇듯 바로 떠오르는 것은 없고, 다만 하고 싶은 대로 원하는 일을 벌이며 살아온 것 같습니다. 그래도 작게나마 이룬 것들이 있다면 몇 가지 꼽을 수 있을 것 같습니다.
우선 입사 직후에 온보딩 과제를 만들었던 기억이 납니다. 강현우 개발자님과 같이 협업해서 만든 이 프로젝트는 개발을 배우는 데에 큰 도움을 주었습니다. 이때의 경험을 블로그(링크)에 게시했으니 읽어보시는 것을 추천해 드립니다.
테스트 코드 도입 프로젝트에서 코어 서버의 모든 주요 로직에 테스트 코드를 꼼꼼히 추가하였습니다.
내 게임 탭 도입 프로젝트에서 게임플레이 내역 조회, 내가 만든 게임 조회, 인앱결제 내역 조회 API를 만들었습니다.
징검다리 프로젝트에서 게임 내 인벤토리에 들어있는 아이템의 필터링과 정렬을 기획에 맞춰 추가했습니다.
관리자 서버 플레이 내역 통계 최적화 프로젝트에서 코어 서버의 정보를 통계 서버로 마이그레이션 배치하는 서버리스 로직을 구현하였습니다.
게임플레이 로직 변경 프로젝트에서 로직 변경 전후 서버 성능을 k6라는 성능 테스트 도구를 사용하여 측정하였습니다. k6를 선택한 이유는 블로그(링크)에서 확인하실 수 있습니다.
슬랙의 게임후기 알림을 업데이트했습니다.
도움글 알림도 같이 업데이트했어요.
관리자 서버의 게임 이용권 내역 페이지를 기획, 개발, 검수, 배포하였습니다.
투표 시스템 프로젝트의 PO를 맡아 성공적으로 마무리했습니다. 개인적으로 시작한 POC부터 프로토타입을 만들고, 동료들과 함께 프로덕션 프로덕트를 만들어 배포하기까지의 경험은 블로그(링크)에서 보실 수 있습니다.
계정설정 서버의 메모리 누수를 해결하였습니다.
매스트랜짓 도입 프로젝트에서 게임플레이 서버와 푸시 서버의 이벤트 메시지 송신 로직에 매스트랜짓(링크) 레이어를 도입하였습니다.
배지 구조화 프로젝트에서 채널 조회 API를 요구 사항에 맞게 신설한 채널 타입과 관련하여 변경하였습니다.
리얼월드 성수 스탬프 프로젝트에서 스튜디오 서버에 스탬프 기능과 관련한 모든 API와 데이터 스키마를 추가하였습니다.
리얼월드 앱에서 스탬프 이벤트를 확인해보세요!
지난 1년을 돌아보며, 누군가에겐 사사로이 보일 수 있는 일들이지만 이렇게 작은 성공이 모여 유니크굿컴퍼니와 팀에 조금이나마 기여했다는 점이 기쁘게 여겨집니다. 앞으로도 많은 것을 배우고 성장해 나가겠지만, 다음 1년 뒤에는 제가 배운 것들보다 동료들과 배움을 나눈 족적이 더 많아졌으면 좋겠습니다.
다음 글에서 찾아뵙겠습니다.
긴 글 읽어주셔서 감사합니다.
1년 동안 이렇게나 많은 것을 배우고 경험할 수 있는 유니크굿컴퍼니는 채용 중!