top of page

[이용권&정산개발 Unit 이야기] 신뢰성을 높이면서 동시성을 제어할 수 있는 개발 스킬을 향상할 수 있어요



드림어스컴퍼니 FLO Backend Unit 시리즈의 마지막, 이용권&정산개발 Unit의 인터뷰를 준비해 보았습니다👏🏻


이용권&정산개발 Unit은 이름에서 알 수 있듯이 FLO의 이용권과 정산 업무를 나눠 담당하고 있어요. 상품의 생성부터 판매 후, 저작권자들에게 정산까지 콘텐츠 플랫폼의 이용과 관련된 전반적인 업무를 총괄하고 있는 거죠!


한눈에 어떤 업무를 하는지 그려지는 이용권&정산개발 Unit👩🏻‍💻

리더 Ryan을 통해 개발 문화는 어떨지 확인해 볼까요?



 


이용권&정산개발 Unit의 리더 Ryan




Q. 안녕하세요, 자기소개와 커리어패스에 대해서 소개 부탁드립니다 🙂


Ryan : 안녕하세요, 이용권&정산개발 Unit의 리더를 맡고 있는 Ryan입니다. SK TechX에서 FLO의 전신인 MusicMate 서비스를 개발하면서, SK Planet을 거쳐 현재 드림어스컴퍼니와 FLO까지 합류하게 되었네요.

처음 개발자로 커리어를 시작할 때는, SI 업체에 있었는데 매번 바뀌는 업무 및 개발 환경으로 인해 자체 Product를 가지고 있는 회사로 이직하고 싶었어요. 다행히 이직에 성공해 SK TechX에서 근무하며 MusicMate 개발을 담당했는데, 그때 처음 해보는 결제 업무를 맡게 된 거죠. 그 당시에는 4~5년 차 커리어밖에 되지 않았고 “돈”과 관련된 업무이다 보니 저도 모르게 막연한 두려움이 있던 것 같은데.. 지금은 결제 관련 업무를 7년째 메인으로 담당하면서 팀 리더 까지 맡게 되었네요😊

Musicmate 시절에는 단순하게 API 기능 개발만 가능했다면, FLO를 거쳐 거대한 시스템으로 이전하면서 전체적인 시스템 아키텍처, DB 구조 설계, 크고 작은 배치, 시스템 성능 개선 등 부족하지만 좀 더 넓은 시야를 가지게 된 것 같아 좋습니다!




Q. 드림어스컴퍼니 FLO로 관계사 이동을 결정하게 된 이유가 있을까요?

Ryan : 하나의 업무에 집중해서 완성하고 싶다는 생각이 우선적이었죠. 당시 담당하던 뮤직 메이트에서 기술적으로 스스로 만족 못 하는 부분들이 있었거든요. 그래서 FLO로 바뀌는 만큼 조금 더 완성된 프로덕트를 만들고 싶다는 욕심에 이동을 결정하게 됐어요. 물론, FLO 전환이라는 큰 업무를 같이 해 온 좋은 동료들도 함께 있었기 때문에 그 결정이 좀 더 쉬웠고요. 어느새 저는 FLO 이용권의 아버지가 되었네요😂




Q. 그럼 현재는 어떤 업무를 담당하고 계실까요?

Ryan : 비중으로 따지면 개발 업무 3 : 매니징 업무 7 정도로 현재는 구성원 매니징 업무에 힘을 쏟고 있어요. 개발할 때 가장 중요한 부분은 설계 단계라고 생각하거든요. 설계를 잘 만들어 놓은 만큼 코딩 시간은 줄어들기 마련이잖아요..! 제가 이용권 정산 업무를 오래 해왔다 보니, 여러 경험을 바탕으로 구성원분들의 개발 방향성에 조언을 많이 드려서 설계 미스로 인한 시간 낭비를 줄일 수 있도록 도와드리고 있습니다.





이용권&정산개발 Unit이 일하는 방식



Q. 이용권&정산개발 Unit이 어떤 일을 하는 지도 전체적으로 소개 부탁드려요!


Ryan : 굉장히 직관적인 Unit명이죠. 이 이름대로 저희는 이용권과 정산 업무로 나뉘어 있어요 ㅎㅎ

이용권은 FLO 서비스를 사용하기 위해 필요한 이용권의 상품, 구매 결제 관련한 전반적인 업무를 담당하고 있어요. 돈과 관련된 업무라 데이터 성능을 유지하면서 데이터 무결성을 보완하는 API 작업 등을 주로 하고 있죠. 저희 유닛 구성원이 총 6명인데, 이 중에서 4.5 정도가 이용권을 담당하고 있습니다.

정산은 음악 서비스를 진행하면서 발생한 저작권료에 대한 정산을 담당하는 거예요. 사용자들이 FLO에서 음악을 재생하면, 그 기록을 바탕으로 저작권자한테 얼마를 정산해 줄 것인지를 계산하는 거죠. 대량 데이터 가공 및 배치 작업이 주가 되고 있어요. 이 업무에는 1.5 정도의 인원이 참여하고 있습니다!




Q. 이용권과 정산 업무에서 인력 분배 차이가 나는 이유가 있을까요?


Ryan : 아! 그 이유는 이용권은 시시각각 새로운 Feature가 나오지만, 정산은 완성된 시스템이라 추가 보완하는 정도라서 업무 비중이 적은 편이거든요. 한마디로 이용권은 서비스 기능 위주 개발이고 정산은 데이터 가공 및 처리 관련이라서 효율적으로 인력 배치를 해둔 거죠.

그리고 애초에 이용권과 정산은 서로 기술 스택이 달라요. 이용권은 Java, Kotlin을 베이스로 하고 있고, 정산은 Python이라서 채용할 때도 각각 포지션에 적합한 분으로 뽑았어요. 하지만 아시다시피 Backend 중에서 Python을 사용하는 사람을 구하기 어렵거든요. 그래서 정산 업무도 Java, Kotlin으로 전환하는 계획을 하고 있어요. 최종적인 목표는 이용권과 정산 업무를 Java, Kotlin으로 일원화해서 구성원들이 업무 순환을 수월하게 할 수 있도록 하는 거랍니다🙂




Q. 보통 업무 요청은 어떻게 이뤄지는 편인가요?


Ryan : 다른 개발 및 Backend Unit과 동일하게, 업무 유관자분들이 Jira 티켓을 생성하면 제가 확인해서 적절한 담당자분께 전달해 드리고 있어요. 모든 업무는 Jira 티켓 베이스로 동작하도록 하고 있고, Slack 등 메신저로 들어온 간단한 요청이라도 가급적 Jira / wiki 등에 링크를 남겨 업무 추적이 쉽게 가능하도록 노력하고 있습니다.


전체적인 개발 배포 프로세스는 이전 서버개발 Unit 인터뷰 내용과 동일하니 해당 콘텐츠를 확인해 주시면 좋을 거 같네요!







Q. 장애나 긴급 상황에서 대응은 어떻게 이뤄지는지 알 수 있을까요?


Ryan : 저희는 “돈”과 관련된 일을 담당하다 보니 1건의 장애나 오류도 즉각 대처하는 게 중요해요. 그래서 장애나 긴급 상황이 발생할 경우 기본적으로 모니터링 업체로부터 연락받도록 시스템화 되어 있어요. 연락을 받으면 바로 해당 오류 상황에 대하여 APM Tool 및 로그 데이터 등을 분석하여 문제 원인을 파악하고, 필요할 경우 미팅을 소집해 공동 대응하고 있어요. 바쁜 업무가 있더라도 장애가 발생한 경우에는 가능한 모든 인원이 함께 대응하여 빠르게 해결할 수 있도록 노력해요!

이외에도 데이터 정합성이 중요한 업무 특성상 Sentry를 도입하여, 발생하는 모든 오류를(오류가 1건일지라도) 실시간 Slack 알림을 통해 받고 있으며 별도 담당자 없이 모든 팀원이 발견한 사람이 먼저 대응할 수 있도록 하고 있어요.

사실상 정산 업무는 후처리라서, 이용권 업무에서 오류가 없으면 정산도 오류가 없게 되는 거죠. 따라서 선제 대응이 중요하다고 말할 수 있을 거 같네요.




Q. 코드 리뷰는 어떻게 이뤄지고 있을까요?


Ryan : 서비스에 반영되는 코드에 대해서 업무 유관자 모두가 코드 리뷰를 함께 진행하는 걸 대전제로 하고 있어요. 전체적으로 봤을 때, 90% 이상의 코드가 최소 1명 이상의 코드 리뷰 승인을 거치도록 하고 있고 메인 Feature로 나가는 중요한 건은 담당자 이외에 최대한 많은 다른 분들이 코드 리뷰를 함께할 수 있도록 하고 있어요. 상황에 따라서는 QA 끝나가는 시점까지 최대한 많이 코드 리뷰를 해서 오류를 줄이려고 노력하고 있답니다.

코드 리뷰를 진행하면서 가장 중요한 것은 코드의 품질을 높이는 것이지만, 서로를 존중하는 커뮤니케이션에 대해서도 중요하게 생각하고 강조하고 있어요! 잘못된 커뮤니케이션이 된다면, 코드 리뷰가 자칫 비난으로 이어질 수 있거든요. 그래서 저희 Unit에서는 상대방 배려 커뮤니케이션을 기반으로 코드 리뷰하는 문화를 이어가고 있습니다 ㅎㅎ




이용권&정산개발 Unit의 코드 리뷰 모습✍🏻




Q. 업무를 하며 가장 보람 있던 순간도 말씀해 주세요!


Ryan : 무엇보다 결제 및 정산 시스템 개발자로서 이용권 매출 대사의 오차가 0%에 가까워질 때, 저작권자 정산 금액에 오차가 없을 때 등 우리가 개발한 시스템에 대한 신뢰성이 있다고 느낄 때 보람을 느껴요.

더불어 회사 내부에서 사용자 이탈을 줄이기 위한 사업 계획을 세울 때, 저희의 데이터를 바탕으로 관련 의견을 제시하고 이게 반영되었을 때도 뿌듯함을 느꼈던 것 같네요.




Q. 이용권&정산개발 Unit의 자랑도 빼놓을 수 없죠, 리더로서 시원하게 알려주세요~

Ryan : 업무적으로 가장 장점인 부분은 자기 업무가 아니더라도 서로 챙겨 준다는 거예요. 리더인 제가 굳이 담당자를 지정하지 않아도 구성원들이 먼저 하겠다고 솔선수범해 주는 분위기예요.

두 번째는, 제가 어딜 가나 자신 있게 말할 수 있는 “친절한 커뮤니케이션”인데요! 개발자끼리는 개발 용어를 사용해도 큰 무리 없지만, 저희는 비개발자분들하고도 협업을 많이 하잖아요. 그렇기 때문에 개발 용어를 풀어서 자세하게 설명하는 게 시간은 꽤 걸리지만 굉장히 중요한 일이거든요. 그걸 저희 구성원들은 굉장히 잘해주세요. 그래서 어딜 가나 친절한 커뮤니케이션을 하는 Unit이라고 자부할 수 있을 거 같습니다😎


업무 외적으로는..ㅎㅎ 저희가 사실상 캔미팅 선구자라고 말씀드릴 수 있을 거 같아요. 작년 코로나가 조금씩 해소되고 있을 때부터 업무상 리프레시가 필요하다고 판단했어요. 그래서 CTO인 Dennis한테 리프레시를 위해 당일치기 워크샵을 다녀와도 되냐고 물어봤고, 흔쾌히 수락해 주셨죠. 다녀온 이후에 저희 Unit 내에서 긍정적인 영향으로 이어졌고, 이후 다른 리더들에게도 공유해 알려지게 되면서 제도화되었다고 알고 있어요 (뿌듯)

먹는 것에 진심인 만큼 저희는 반기별로 미식회도 열고 간식 박스도 항상 꽉꽉 채워서 비치해 두고 있답니다😋




역사적인 최초의 캔미팅(?) 설계안



비개발자들과의 커뮤니케이션도 문제 없죠!



스낵바까지 준비 완-료





FLO Backend 개발자가 되고 싶다면



Q. 포지션 지원에 가장 기본이 될 이용권&정산개발 Unit의 기술 스택에 대해 설명해 주세요!


Ryan : 앞서 말씀드렸던 것처럼 크게 Java, Kotlin, Python을 사용하고 있어요.

이용권 업무는 Java와 Kotlin이지만 지속적으로 Kotlin으로 이동하는 작업을 진행중에 있고, 정산 업무는 Pyhon을 사용해 작성했지만 기술 스택 일원화 및 MCP Unit 업무와의 효율성을 위해 JAVA / Kotlin으로 전환 준비에 있습니다.




Q. 인터뷰에서 중요하게 보는 지원자의 역량이 있나요?


Ryan : 우선, 원활한 커뮤니케이션 능력을 바탕으로 깊이 있는 기술 이해도 / 질문-답변 커뮤니케이션 과정 / 어려운 질문에 대해 풀어 나가는 과정 이 3가지를 중점적으로 보고 있어요.




Q. 다른 Backend Unit과 달리, 인터뷰 전에 사전 과제를 주고 있는데 이유가 있을까요?


Ryan : 사전 과제를 도입한 건 지원자와 좀 더 심도 있는 커뮤니케이션을 해보기 위해서였어요.

실제 업무에 사용하는 기술들을 바탕으로 간단한 버전의 과제를 제시하고 이를 어떻게 설계하고 고민했는지 같이 보고 있어요. 물론, 사전 과제이다 보니 누군가에게 맡겼거나 본인이 직접 하지 않았을 가능성도 있겠죠. 하지만 그런 부분을 파악하기 위해, 인터뷰 전에 거의 반나절 동안은 지원자가 제출한 과제를 보고 어떤 질문을 해야 이분의 진짜 역량을 알 수 있을지 나름의 고민을 많이 하고 있어요. 이렇게 준비한 질문들을 바탕으로 간단한 질문에서 깊이 있는 질문까지 이어 나가면서 지원자분이 어떤 기술적 이해도를 가졌는지, 어려운 상황에서 어떻게 대처하는지, 어떻게 커뮤니케이션 과정을 풀어나가는지, 과거에 어떤 업무를 해왔는지 등 잘 살펴보기 위해 노력하고 있답니다.







Q. FLO의 Backend 개발자로 일하면 어떤 커리어적 장점이 있을까요?


Ryan : 저희 Unit만의 Identity죠, 결제 및 구독 모델, 외부 연동 등 다양한 개발 업무를 하실 수 있다는 점이에요.

이용권의 경우, 시간이 걸리더라도 신뢰성 높은 일을 하는 것과 동시성을 제어하는 게 중요해서 이와 관련된 개발 스킬을 향상할 수 있을 거고요. 정산의 경우에도, 대용량 데이터를 처리함에 있어서 데이터를 가공 및 검증하는 단계가 많거든요. 그래서 단계별 검증 절차와 데이터 가공 중 문제 대처 능력을 향상할 수 있을 겁니다ㅎㅎ




Q. 이용권&정산개발 Unit만의 온보딩 프로세스는 어떻게 되어 있나요?


Ryan : 온보딩 프로세스는 꾸준히 만들어 나가고 있어요. 1주 차에는 회사 생활, 업무를 위해 준비해야 하는 과정 등을 체크리스트로 정리해 둔 게 있어서 그걸 제공해 드리고 있어요. 2주 차에는 업무 설명회 등을 탄력적으로 하고자 합니다만, 시간 여유가 충분하지 않다 보니 아직 부족한 부분이 많아서 개선하고자 노력하고 있어요. 그리고 3주 차 이후부터는 실제 업무를 부여해서 업무에 적응해 나갈 수 있도록 하고 있답니다.

더불어서 저희는 슬랙 팀채널이 있고 뉴비채널이 따로 있어요. 뉴비채널에 질문을 올리면 구성원들이 확인해서 답글을 달기도 하고, 새로 들어온 분들은 이전 히스토리를 보면서 정보를 알아가고 있습니다.





앞으로 기대하는 모습



Q. 이용권&정산개발 Unit 안에서 성장을 위해 노력하는 게 있다면?


Ryan : 주 단위로 개발/비개발 주제 상관 없이 TechTalk을 진행하고 있어요. 진행을 맡은 Host가 그 주에 주제를 Wiki에 공유해 주고, 금요일 오전에 모두 모여서 발표하는 방식이에요. 단순 커뮤니케이션하는 방법부터 심도 있는 주제까지 제한 없이 다양하게 다루고 있고, 주제에 대한 의견이나 참고 자료는 구성원들이 자율적으로 코멘트로 남기고 있습니다.



이용권&정산개발 Unit의 TechTalk




Q. 드림어스컴퍼니 FLO에서 이루고 싶은 목표가 있다면 무엇일까요?


Ryan : FLO를 지금보다 더 많은 유저를 모을 수 있는 서비스로 만드는 게 목표일 것 같아요. 이미 FLO 서비스 자체는 많이 성숙해졌기에 기회가 된다면 음악 서비스 이외의 새로운 서비스를 만들어 보고 싶기도 하고요.

제가 개발자로 오랜 생활을 하다 보니 개발 관련 문제는 해결 방법이 직관적이라 수월했지만, 사람 대 사람으로 마주하는 업무들은 문제가 생기면 풀어 나가기 쉽지 않더라고요. 그래서 구성원들에게도 항상 커뮤니케이션의 중요성에 대해서 강조하고 있는데요. 그렇다 보니 최종적으로는 구성원들을 더 잘 이끌어 주고 구성원들의 이야기를 귀담아듣는 좋은 리더가 되고 싶습니다.







Q. 마지막으로 드림어스컴퍼니 FLO Backend 개발자에 지원한 분들에게 한마디 부탁드려요!


Ryan : 회사생활을 즐겁게 하는 것 중에서 맛있는 식사도 빠질 수 없잖아요. 저희가 맛집은 꿰뚫고 있으니 저희와 함께 즐거운 회사생활&미식의 자리를 함께 해봅시다!


“자네, 내 식사 동료가 되겠는가?😋”





자네, 우리의 식사 동료가 되겠는가?



 


이번 인터뷰에서는 리더인 Ryan 덕분에 핵심 내용만 쏙쏙 담을 수 있었던 것 같은데요! 인터뷰에 참여해 주신 이용권&정산개발 Unit의 Ryan에게 진심을 담은 박수를 드립니다👏🏻🙇🏻‍♀️💗


🚀드림어스컴퍼니 FLO Backend 개발 Unit에 대해 더 알아보고 싶다면?


bottom of page