[강사 인터뷰] 마이크로서비스 아키텍처, 남들이 좋다고 해서 배우려 하지 마세요

#MSA #마이크로서비스아키텍처 #백엔드 #DevOps


MSA가 좋다고 할 수 밖에 없는
그 상황과 배경을 생각해야 합니다

안녕하세요! 소개 간단히 부탁드립니다.

안녕하세요, 현재 당근마켓에서 소프트웨어 엔지니어로 일하고 있는 김병규입니다. 새로운 기술들의 배움과 적용에 있어 보수의 끝이었던 고전 금융업을 시작으로 현재 새로운 기술들의 최전선인 스타트업에서 일하고 있어요. 늘 제가 지나온 경험들을 저와 같은 어려움을 겪으셨던 분들한테 공유하고자 하는 욕심들이 많았는데 이렇게 뵙게 되어 너무나 영광이에요.

핀테크 기업에서 일하셨을 때는 어떠한 일들을 해오셨는지, 또 DevOps 경험은 어떤 계기로 하게 되셨는지 말씀 부탁드립니다.

제가 이전에 경험하고 있던 도메인이 증권업, 그 중에서도 펀드와 관련된 업무였었는데요. 마침 핀테크에서 새롭게 증권업과 연동하는 플랫폼을 구축하고 있다는 소식을 듣고 합류했었어요. 증권업과 핀테크 시스템을 연동하는 플랫폼을 새로 구축하면서, 초기에는 증권 플랫폼 구축 프로젝트 내의 AA, TA 로 일을 했었는데요. 점차 시간이 지나가면서 새로운 기술이나 CI/CD 등 새로운 기술에 욕심이 많았다보니 자연스럽게 데브옵스의 영역에 발을 들이게 되었던것 같아요.

경험하고 백엔드로 다시 돌아오셨을 때, 이전과는 어떤 부분에서 시야가 달라지셨나요?

무엇보다 코드와 인프라를 보는 관점이 많이 달라졌었던것 같아요.

이전에는 단순히 비즈니스 로직을 작성하고 이 로직이 적절하게 작동하며, RDB를 사용하는데에 있어 올바른 쿼리와 인덱스를 사용하는 것에 집중했었어요. 당시 저의 좁았던 시야에서는 개발이라는 일은 그게 전부였어요.

그러나 한번 데브옵스를 경험하고 백엔드에 돌아왔을 때, 가장 크게 달라졌던 것은 2가지가 있었는데요. 하나는 제가 작성했던 한 줄의 Push 된 코드가 코드 저장소와 CI/CD 파이프 라인을 어떻게 거치며 실제로 프로덕션 환경에서 고객의 응답을 받아 처리하기까지의 전 과정이 눈에 보이게 되었다는 것이에요.

그리고 다른 하나는 고객의 요청 데이터가 http/grpc 등의 프로토콜을 통해서 내 코드가 동작하는 인프라에까지 도달하는 전 과정이 눈에 보이기 시작했다는 것인데요. 이런 시야와 관점의 변화를 통해 듣기만 했던 수 많은 Devops 관련 기술들이 왜 생기게 되었고 어떤 문제들을 해결해 주며, 어떤 장/단점이 있을 수 있는지를 깨닫게 된것 같아요.

현재 다니시는 회사의 규모나 성격에 따라, 전 과정에서의 모든 devops 기술들을 파악하기에는 어려움이 있으실 수 있지만, (N년차 개발자라면) 적어도 그 성격과 한계가 어떤지는 알아야 조금 더 효율적인 백엔드를 고민할 수 있는 개발자가 되실 수 있다고 생각합니다.

지금은 어떤 기업에서 어떤 업무를 하고 계신가요?

현재 당근마켓에서는 앱의 푸시나 SMS 같이 고객에게 알림 메세지를 보내기 위한 플랫폼을 담당하고 있는 팀에서 일하고 있어요. 고객에 대한 알림 발송 요청을 받는 플랫폼으로서 받은 요청을 고객에게까지 안정적으로 전달하는 시스템을 개발, 운영하고 있어요.

사실 현재 회사에는 대부분의 데브옵스의 영역을 각 팀에서 자율적으로 담당하고 오너십을 가지고 있어요. 그래서 이전에 했던 경험들이 굉장히 큰 도움이 되고 있는데요. 사실 입사 초기에 사내 엔지니어 분들 모두가 Devops 영역에 대해 어느정도 기반지식이 있다는 사실에 굉장히 놀랐던 기억이 있습니다.

MSA는 '언제 해야되고 , 어떻게 해야한다' 라는 정답이 없다고들 말합니다. 이에 대해서 병규님의 생각은 어떠신가요? 왜 정답이 없다고 말할까요?

실제로 정답이 없는거 맞는것 같아요. 심지어 모든게 같은 상황이더라도 인력이나, 비즈니스 특성에 따라 수많은 다른 솔루션이 나올 수 있어요. 하지만 모든 솔루션에 대해 공통점이 있다면, 빠르고 유연한 대처를 가능하게 하는 것이 목적이라는 것이에요

제 강의 철학이 항상 왜에 대해서 생각 해볼수 있는 관점을 가져보자는 것인데요. 정답이 없다는 사실과 결과를 먼저 볼 것이 아니라 왜 정답이 없다고 말할 수 밖에 없는지를 생각해보면 좋을것 같아요. 이런 얘기가 나오는 배경들을 주체적으로 판단할 수 있는 지식과 경험들이 쌓일 수 있다면, 현재 상황에서 자신만의 정답을 찾을 수 있을것 같아요.

이번 강의는 타사에서는 만들지 않았던 커리큘럼의 강의인데, 강의의 어떤 부분이 제일 특별하다고 이야기할 수 있을까요?

앞서 말씀드렸듯이, 명확한 답이 없기 때문에 타사에서 만들지 않았던 커리큘럼의 강의일 수 있을것 같아요. 일반적으로 강의라고 하면, 그 강의를 충분히 소화했을 때 남는게 있고 활용할 수 있어야 한다고 생각할 수 있으니까요. 그런 관점에서는 MSA 는 강의하기에 적절한 주제라고 보기는 힘들것 같아요

제 생각에는 MSA 는 관점을 배우는 것 이라고 표현해 보고 싶어요. 그래서 MSA 를 배워서 어떻게 활용해 봐야지, 라는 접근으로 시작하면 조금 허탈하실 수도 있을 것 같아요. "다양한 이론과 기술들의 목적이 무엇인지를 깨닫고 이런 어려움들에서는 어떻게 해결하더라~" 하는 케이스들로부터 점점 더 넓게 많은 것을 볼 수 있는 관점을 가지는 것이 이 강의의 목적이라고 생각해요.

병규님 파트를 듣는다면 수강생이 얻어갈 수 있는 것을 3가지로 말씀해주실 수 있을까요?

이번 강의를 준비하면서 개인적으로 수강생 분들이 다니시는 회사에서 이런 능력을 가지시면 좋겠다고 생각한 것들이 3가지 있는데요.

✅ 첫번째는 MSA 의 배경, 목적에 대한 학습을 통해 현재 사용하시는 기술의 why에 대해 자신있게 말할 수 있는 능력

✅ 두번째는 MSA 간편결제 실습 프로젝트를 통해 직면한 문제에 대해 적절한 해결 방법을 제시할 수 있는 능력

✅ 마지막으로 현재 담당하시는 시스템을 파악하고, 주체적으로 MSA 가 필요한 상황이다 혹은 아니다를 판단하고 why 까지 제시할수 있는 능력이에요.

물론 이 짧은 시간으로 모든 것을 마스터 하기에는 어렵겠지만, 적어도 이런 능력을 가지기 위한 기초 작업 정도는 하실 수 있도록 최대한 강의를 구성해보고자 했어요.


마지막으로, 강의를 들을 수강생에게 응원이나 조언해주실 수 있을까요?

흔히 제 주변에서도 "MSA 가 요즘 대세고 좋다고는 하는데 어디서부터 어떻게 공부를 해야할지 모르겠어요" 라는 고민을 가장 많이 듣는데요. "좋다고 하던데~" 라는 사실보다, 왜 좋다고 하는 걸까를 고심해 보라고 얘길 해요. 하지만 고민만 하다가 10년이 지난 친구들도 많아요. 제로 베이스 상태에서는 이를 깨닫고 실천하기에는 정말 어렵거든요.

"내 친구는 어디에 들어갔다던데~ 얼마나 돈을 받는다던데~" 라고 생각하실 시간이 없어요. 저도 수 없이 많이 했던 생각들인만큼 여러분 중 누군가는 얼마나 힘든 심정이실지 너무나 잘 알고 있어요.

현재에 안주하면 끝입니다. 여러분 모두 회사가 아니라, 여러분이 직접 회사를 선택하는 사람이 되고 싶으시잖아요.

이런 강의나 자료들을 찾고 있으시다는 것부터, 여러분 모두 가능성은 충분히 높다고 생각해요. 마지막까지 포기하지 않으신다면, 더욱 그 가능성은 높아질 거예요. 모두 포기하지 않으셨으면 좋겠습니다!


지금 패캐머들이 읽고있는 BEST 아티클이 궁금하다면

이 글과 연관된 주제의 추천 강의