끊임없이 더 나은 기술을 고민하는 백엔드 파트

끊임없이 더 나은 기술을 고민하는 백엔드 파트

에디터스 노트

포자랩스의 개발팀은 직무에 따라 3개의 파트로 나눠져 있습니다. 소프트웨어 파트, 프론트엔드 파트 그리고 백엔드 파트. 오늘은 그중 백엔드 엔지니어 주완님과 함께 포자랩스 개발팀 문화에 대하여 이야기를 나눠보았어요.


Q1. 어떤 일 하는 누구인가요?

주완: 안녕하세요, 저는 김주완입니다. 현재 B2C 서비스인 viodio와 AI 음원 생성 자동화 시스템(내부 제품) 백엔드 엔지니어로 일하고 있어요.

Q. 포자랩스 합류 과정이 궁금해요.

주완: 포자랩스에서 먼저 인터뷰 보자고 연락을 주셨어요. 그전에는 포자랩스라는 기업이 있는 줄도 몰랐죠. 채용절차를 거치면서 포자랩스에 최종 합류하기로 결정한 이유는 크게 두 가지가 있었어요.

개발팀 백엔드 파트 엔지니어 주완

첫 번째, 면접 때 과제 코드 리뷰를 해주는 것에서 좋은 인상을 받았어요. 제출한 과제와 관련된 질문을 받고 대답하며 좋은 피드백 경험을 했다고 느꼈어요.

제가 합류하기 전까지 포자랩스 백엔드에서 자신의 의견을 제안하는 코드 리뷰는 대부분 선웅 님이 하고 있었어요. 코드 리뷰를 하긴 하지만, 과제에 대한 피드백을 받을 때만큼의 설계에 대한 고민이나 코드에 대한 의견을 주고받는 리뷰는 아니었죠. 하지만 저는 과제 피드백을 받을 때만큼의 설계에 대한 토론을 기대했기 때문에 저부터 제 생각을 코드 리뷰에서 공유하기 시작했어요. 그랬더니 팀원들도 리뷰에서 조금씩 자기 생각을 말하기 시작했고, 자연스럽게 리뷰 문화가 정착되어 온 것 같네요.

어쩌다 보니 합류 계기보다 리뷰 문화가 정착하게 된 이야기까지 이어지긴 했지만, 어쨌든 제가 기대했던 문화를 팀원들과 함께 만들어 나가는 경험도 하게 되어 좋았던 것 같아요.

두 번째 이유는, 개발자로서 빠른 성장을 기대할 수 있는 환경이라고 판단했거든요. 성장이야 어느 곳을 가든 잘할 수 있다고 개인적으로 생각하지만, 환경이 갖춰졌을 때는 더 빠르게 성장할 수 있다고 생각했어요.

앞서 말씀드린 것처럼 제가 제의받았을 당시 포자랩스는 관련 기사도 거의 없었고 홈페이지도 유지 보수가 되고 있는 상태가 아니었기 때문에 어떤 회사인지 알기 어려웠어요. 그래도 합류 여부 결정을 위해 포자랩스에 대해 열심히 검색했었습니다. 검색하다 보니 포자랩스에서 인턴으로 일했던 분의 회고록 비슷한 글을 발견할 수 있었어요. 그 글을 읽으면서 그분 스스로도 열심히 노력하는 분 같았지만, 포자랩스라는 회사도 구성원의 의견을 존중하고 동기부여될 수 있는 환경을 제공하고 있다고 생각하게 되었죠. (그때 읽은 글은 오래되어 이제 자세히 기억나지 않지만요.)

Q. 다른 회사와 포자랩스의 코드 리뷰 문화가 어떻게 다른가요?

주완: 제가 이전에 다녔던 회사는 코드 리뷰 문화가 없었어요. 다른 사람이 제 코드를 읽거나, 제가 다른 사람의 코드를 읽을 일이 많지 않았어요. 아키텍처를 설계하고 설득할 필요도 없었죠. 코드에 대한 팀원 간의 합의가 이루어질 수 있는 환경은 아니었던 것 같아요.

제가 합류했을 때의 포자랩스 백엔드는 적어도 팀 간의 합의를 하면서 개발하고 있었어요. 즉, 팀이 개발하면서 지향해야 하는 철학이 있었죠. 이 철학은 각자의 코드를 평가할 기준이 되었기 때문에, 어느 정도 일관성 있는 코드를 작성하도록 서로의 코드를 리뷰할 수 있었어요.

Q. 포자랩스의 개발 철학은 무엇인가요?

주완: 가장 우선이 되는 것은 비즈니스입니다. 결국은 사용자에게 가치를 전달할 수 있어야 개발 의의를 찾을 수 있다고 생각하거든요. 그리고 지속적으로 가치를 전달할 수 있도록 이해하기 쉬운 코드를 지향합니다. 코드 사용자의 관점에서 코드를 작성해요. 코드를 처음 보는 사람이라도 해당 코드를 이해할 수 있어야 유지 보수하기 용이한 코드라고 생각하거든요. 이해하기 쉬운 코드는 코드 사용자 관점에서 읽기 쉽고 테스트 가능한 코드라고 정의하고 있어요. 읽기 쉬운 것 자체로 사용자의 코드 이해에 큰 도움을 줄 수 있고, 어떤 입력에 어떤 출력을 기대하는지를 테스트 코드로 명시해두면 코드 사용자의 이해를 더 도울 수 있을 거예요.

Q. 현재 백엔드 파트가 직면한 문제는 무엇이고, 그 문제를 어떻게 해결하고 있나요?

주완: 일반인들도 쉽게 작곡을 해볼 수 있도록, 작곡 자동화 시스템(서비스) 개발하는 것이 가장 큰 당면 과제예요. 이를 위해 모놀리식(monolithic)으로 구축된 아키텍처를 세분화된 목적의 작은 모듈들로 분리하고, 작곡하려는 사용자의 수준이나 니즈 등에 따라 각 모듈들이 재조합되어 재사용될 수 있는 아키텍처를 설계 및 구현하는 작업을 진행하고 있어요.

Q. 포자랩스에서 일하는 동안 어떤 부분에서, 얼마나 성장했다고 느끼시나요?

주완: 여러 부분에서 빠르게 성장했는데요, 그중 pytest를 활용한 테스트 코드 작성 능력을 꼽을 수 있어요. 새로운 분이 합류해도 이해하기 수월한 테스트 코드를 작성하려고 부단히 노력했어요. 지난 1년간 리드 개발자님과 함께 회고 과정을 거쳐 어떤 부분에서 타협하고, 또 어떤 부분에서 엄격해야 하는지 등을 토론하고 고민하는 경험을 통해 성장했다는 게 느껴져요.

또, python에서 의존성을 제어하는 방법과 커뮤니케이션 능력이 성장했다고 생각해요. 포자랩스는 특히나 작곡팀도 있고 다양한 직무의 팀원들이 모여있잖아요. 저는 작곡을 해 본적도, 음악이라는 분야를 다뤄본 적도 없었어요. 작곡 도메인 지식이 없다 보니 제가 모르는 게 뭔지 정의하는 것부터 어려워서, 질문을 하는 것도 어려웠어요. 그래도 여러 수단을 사용해가며 소통하다 보니까 자연스럽게 내가 알고 있는 개념을 모르는 사람도 이해할 수 있도록 설명하는 능력, 모르는 것을 표현하는 능력을 성장시킬 수 있었다고 생각해요.

 

Q. 그렇다면 포자랩스의 백엔드 개발자로 일하는 가장 큰 매력 포인트는 무엇인가요?

주완: AI 음악이라는 다소 비범한(?) 분야를 경험을 할 수 있다는 점이 가장 큰 매력이에요. 그렇기 때문에 대부분의 개발자들에게는 익숙하지 않은 것을 학습하는 능력을 기를 수 있죠.

Q. 앞으로 개발팀의 방향은 어떻게 되나요?

주완: 보다 정교한 AI 음원 생성 자동화를 통해 음원 생성 시간을 단축하고, 음원의 퀄리티를 향상시킬 수 있도록 끊임없이 고민하며 달려나갈 예정이에요.

Q. 개발팀과 함께 성장할 수 있는 동료상에 대해 설명해 주세요.

주완: 무엇을 구현해야 하는지 혹은 구현했는지 설명할 수 있는 분. 확장성 및 재사용성을 고려하여 설계하는 분. 문제를 찾아 개선하는 걸 즐기는 분과 같이 일하고 싶어요. 그 외에는 *DDD를 사용해 보거나, 실무에서 적용해 본 경험이 있으면 더욱 좋고요.  *DDD: 아키텍처 설계 방식

Q. 마지막으로 가장 좋아하는 아티스트와 최애 곡은 무엇인가요!

주완: 아티스트는 따로 없지만 좋아하는 곡은 메이플스토리 시간의 신전 BGM과 인생의 회전목마입니다.