"폭발적인 성장을 지탱하는 기술,

백엔드팀이 만드는 안정성과 확장성의 아키텍처"

백엔드팀  / 이준석님, 김백규님

미리캔버스 백엔드 팀을 소개합니다!

미리캔버스 백엔드 팀은 고객의 창의적인 아이디어가 실현되도록 안정적인 기술 기반을 설계하는 팀입니다.


대규모 트래픽과 글로벌 서비스, MSA 전환 등 한발 앞선 기술로 다음 스테이지를 설계하며,

디자인 경험의 무한한 가능성을 기술로 확장하는 백엔드 팀의 이야기를 아래 페이지에서 만나보세요!

백엔드팀은 빠르게 성장하는 미리캔버스를 

안정적이고 확장성 있게 운영하기 위해 끊임없이 구조를 다듬고,

새로운 기술을 실험합니다.


Java와 Spring Boot를 기반으로 MSA 전환과 글로벌 확장을

위한 아키텍처 고도화를 진행하며 수천만 유저가 사용하는

미리캔버스를 안정적으로 지탱하는 역할을 맡고 있습니다.


누구나 자유롭게 아이디어를 제안하고, 직접 도메인을 책임지며 높은 자율성과 주도성을 바탕으로 성장하는 팀.

백엔드 팀의 이야기를 생생하게 들려드릴게요.


안녕하세요 준석님, 백규님! 간단한 자기소개와 함께 미리디 합류 계기를 들려주세요.

준석님: 대학교에서 학생회 활동을 하면서 카드 뉴스를 만들 일이 정말 많았어요. 그때 처음 미리캔버스를 알게 됐는데,

포토샵처럼 복잡한 툴이 아니어서 금세 익힐 수 있었어요. 디자인 경험이 없던 저도 금방 보기 좋은 결과물을 만들 수 있었죠.

그런 경험 덕분에 자연스럽게 ‘이런 서비스를 만드는 회사는 어떤 곳일까?’ 라는 관심이 생겼어요.


대학교 졸업을 앞두고 프로그래머스 서머 인턴 프로그램에 지원했는데, 그때 미리디가 참여사 중 하나였어요.

개발자라면 누구나 높은 트래픽 환경에서 일하고 싶어하는데, 미리디의 인지도라면 그런 경험을 할 수 있을 것이라 기대했습니다.

또한 제가 직접 사용해본 서비스였기 때문에 사용자 관점을 개발자 관점과 연결할 수 있겠다는 생각도 들었어요.


인턴으로 일하면서 느낀 건, 단순히 기술만 배우는 곳이 아니라 ‘개발자로서의 태도’를 배우는 곳이라는 점이었어요.

연차가 낮더라도 누구나 자유롭게 아이디어를 제안할 수 있고, 기술적인 의사결정 과정에 참여할 수 있는 환경이었습니다.

덕분에 인턴 기간 내내 주도적으로 프로젝트를 진행하며 빠르게 성장할 수 있었고, 자연스럽게 정규직 전환까지 이어졌어요.



백규님: 저도 준석님처럼 대학생 때부터 “내가 자주 사용하는 서비스를 만드는 회사에서 일하고 싶다”는 생각을 늘 했어요.

학교에서 팀 프로젝트를 할 때마다 발표 자료를 만들었는데, 그때마다 미리캔버스를 썼거든요.

때마침 현장실습 인턴 채용 공고를 보게 되었고 지원하여 미리캔버스 개발 팀에 합류하게 되었습니다.


인턴으로 근무하면서 놀랐던 것은 인턴임에도 하나의 도메인을 온전히 담당하여 운영할 수 있는 기회가 주어진다는 것이었어요.

작은 기능을 고치는 게 아니라, 하나의 도메인을 온전히 담당해서 운영하고 개선할 수 있었죠. 덕분에 담당하던 서비스의

일 평균 사용량이 2.5 배 이상으로 성장하는 경험도 할 수 있었고, 성장하는 서비스를 안정적으로 운영하기 위해 주도적으로

프로젝트를 수행하며 정규직으로 전환될 수 있었습니다.

두 분 모두 미리디에 인턴으로서 함께 하시게 되었군요!

처음 미리디에 합류하셨을 때 특히 인상 깊었던 부분이 있을까요?

준석님: 앞서 백규님께서도 언급해주셨는데 연차에 상관없이 누구나 아이디어를 제안할 수 있고, 그것이 실제로 반영된다는 점이

정말 인상 깊었어요. 인턴 시절, 저보다 입사 시기가 얼마 차이 나지 않는 주니어 엔지니어가 ‘테크 스펙’이라는 문서 양식을

도입하자고 제안한 적이 있었어요. 그 제안이 단순히 “좋은 의견이네”로 끝나지 않고, 실제로 팀 내 업무 프로세스로 도입됐어요.


그때 깨달았어요. ‘이 팀은 제안의 주체보다 제안의 가치로 평가하는 곳이구나.’ 누구든지 문제를 발견하면 개선할 수 있고,

그 과정에서 실질적으로 팀이 바뀌는 걸 보면서 제가 회사의 일부로서 기여하고 있다는 자부심이 생겼습니다.



백규님: 저도 처음 합류했을 때 가장 놀랐던 점이 ‘주니어에게도 진짜 도메인을 맡긴다’는 거였어요.

미리디에서는 단순히 티켓 단위의 일을 처리하는 게 아니라, 내가 맡은 서비스의 아키텍처 설계부터 기술 선택, 운영까지 모두 직접 경험할 수 있었어요.


물론 이런 자율성이 혼자서 모든 걸 책임져야 한다는 의미는 아니에요. 매일 진행되는 데일리 미팅과 주간 미팅을 통해

팀원들과 꾸준히 소통하며 막히는 부분에 대해서는 언제든 피드백과 조언을 구할 수 있었습니다.

덕분에 올바른 방향을 잃지 않고 자신감 있게 나아갈 수 있었습니다.


이처럼 깊이 있는 책임감을 부여하는 동시에, 든든한 동료들의 지원이 함께하는 환경이야말로 미리디가 가진 가장 큰 매력이자

제가 가장 인상 깊게 느꼈던 부분이었습니다.

각자 소속하고 계신 파트에서는 어떤 문제를 해결하고 계신가요?

준석님: 저는 백엔드 팀의 디자인 파트에서 일하고 있어요. 디자인 파트는 HTTP API를 통한 디자인 조회와 저장, 버전 관리,

최근 진행한 디자인 승인 기능 같은 협업 기능 등 디자인 도메인 전반을 다룹니다.

미리캔버스에서 사용자가 만드는 디자인은 단순한 이미지가 아니라, 수많은 요소와 버전 정보가 연결된 복잡한 데이터예요.

이 데이터를 얼마나 안정적이고 효율적으로 저장·관리하느냐가 저희의 핵심 미션이에요.


현재는 디자인 1.0에서 2.0으로 전환을 진행하고 있습니다. 1.0은 정적인 저장 방식이었지만, 2.0에서는 실시간 저장과 동시편집을 지원해요. 이를 위해 마이크로서비스 분리, DB 스키마 변경, API 재설계 등 여러 변화가 동시에 일어나고 있습니다.

레거시 시스템과 신규 시스템을 함께 운영하면서도 안정성을 유지하며 전환해야 해서 기술적으로 꽤 도전적인 프로젝트예요.



백규님: 저는 백엔드 팀의 검색 파트에서 개인화 피쳐를 안정적이고 효율적으로 서빙할 수 있도록 검색 아키텍쳐를 개선하는 문제를 해결하고 있어요.


이를 위해 전통적인 BM25 기반의 키워드 검색과 KNN 검색으로 1차 후보군을 빠르게 retrieve 하는 역할과, 1차 후보군에 대해

구체적인 개인화 비즈니스 로직을 적용하여 랭킹을 취하는 역할을 별도의 모듈로 서로의 역할을 명확히 분리하려 노력 중입니다.

최종적으로 저희는 복잡한 비즈니스 로직과 개인화에 대한 요구사항을 멀티스테이지 추천 아키텍쳐를 적용하여 해결하고자 합니다. 이를 위해 AI 연구원, 데이터팀 등 다양한 조직과 긴밀하게 협업하며 업무를 진행 중입니다.

미리캔버스 백엔드팀 검색파트 김백규님

‘미리캔버스’하면 디자인이 가장 먼저 떠오르는데, 미리캔버스만의 검색 시스템은 흥미롭게 다가오네요!

검색 시스템을 만들며 가장 도전적이었던 기술적 과제가 있었을까요?

준석님: 디자인 파트에 소속되기 전에는 저도 검색 파트에서 일했었는데요(웃음). 실시간 검색 결과 re-rank 시스템을 구축했던 것이 특히 기억에 남는 것 같아요. 실시간 개인화 re-rank를 하려면 템플릿 메타데이터, 사용자 행동 이력 등 수많은 feature 데이터를 실시간으로 결합해야 하는데, 프로덕션 DB에 부하를 주지 않으면서 이를 처리하는 게 쉽지 않았어요.


이 과정에서 MLOps의 'feature store' 개념을 알게 되었고, 다양한 사례들을 조사했습니다. AWS SageMaker의 feature store를 도입해 데이터를 수집하고, Databricks 워크플로우를 통해 가공한 뒤, 서빙용 DB로 옮겨 사용하는 구조를 직접 설계했어요.

당시엔 머신러닝 시스템을 처음 다뤘기 때문에 시행착오가 많았지만, DevOps팀과 데이터엔지니어링팀의 도움으로 한 분기 만에 완성할 수 있었어요.


결과적으로 모델 성능은 기대에 미치지 못했지만, 그 경험이 제게 정말 큰 자산이 됐어요. feature store 설계와 대용량 데이터 파이프라인 구축을 직접 경험하며 시야가 넓어졌고, 이후 다른 기능 개발에서도 이 구조를 응용할 수 있었어요.



백규님: 최근 검색 파트에서 가장 도전적이었던 과제는 개인화되어있는 검색 피쳐에 대한 요구사항이 증가하면서 캐싱 전략을 개선해야 했던 점이었어요. 개인화 검색은 곧 사용자마다 검색 결과가 달라야 한다는 의미인데, 이는 곧 모든 요청이 고유해서 캐시를

거의 활용할 수 없다는 뜻이기도 했습니다. 실제로 이 문제 때문에 캐시 히트율이 한 자릿수에 머물러 있었습니다.


그래서 저희는 관점을 완전히 바꿨어요. 모든 사용자를 위한 전역 캐시가 아닌, '한 명의 사용자가 연속된 검색을 할 때'의 경험을

최적화하는 데 집중했습니다. 사용자가 페이지를 넘길 때마다 발생하는 다양한 요청을 표준화해서 묶어 처리하도록 설계했어요.

쉽게 말해, 1페이지, 2페이지 따로 요청하는 것을 더 큰 덩어리 단위로 묶어서 처리하고 그 결과를 캐싱했습니다.다행히 이 접근은

매우 효과적이었어요. 캐시 키의 무분별한 증가를 막을 수 있었고, 결과적으로 캐시 히트율을 50% 이상으로 끌어올렸습니다.

이는 사용자에게 더 빠른 응답 속도를 제공함과 동시에, 불필요한 검색 요청을 줄여 인프라 비용까지 절감하는 효과를 가져왔습니다.


또 하나는 실시간 인덱싱 속도 개선이었어요. 매일같이 쏟아지는 새로운 템플릿과 디자인 요소들이 최대한 빨리 검색 결과에 나타나야 했는데, 데이터 등록 파이프라인에서 임베딩 모델을 거치는 구간이 병목 지점이라는 것을 발견했습니다.저희는 이 부분을 정교한 비동기 처리 구조로 전환하면서 무거운 임베딩 작업이 다른 프로세스를 지연시키지 않도록 만들었습니다. 덕분에 콘텐츠 등록부터 검색 가능까지의 시간이 기존보다 5배 이상 줄었어요. 이 프로젝트를 통해 개인화와 성능이라는 자칫 상충될 수 있는 목표를 동시에 달성할 수 있었습니다.

듣기만 해도 흥미로운 기술적 도전이네요!

이를 든든히 뒷받침해준 미리디 백엔드팀의 기술 스택과 아키텍처는 어떤 특징이 있나요?

준석님미리캔버스의 백엔드 시스템은 Java + Spring Boot 기반으로 구축되어 있으며, AWS 인프라 위주로 운영되고 있어요.

AWS의 다양한 서비스를 적극 활용하고 있고, AWS와 깊은 협력 관계를 맺어 기술 지원을 받고 있습니다.


초기에는 모놀리식 구조였지만, 현재는 마이크로서비스 아키텍처(MSA) 로 전환을 진행 중이에요. 이 과정에서 다양한 최신 기술

스택을 도입하고 있습니다. 데이터베이스는 PostgreSQL RDS에서 Aurora PostgreSQL로 전환했고, 도메인 별로 데이터베이스를 분리했습니다. MongoDB는 디자인, 스토리지 관련 데이터 저장에, Redis는 캐싱과 세션 관리에 사용하는 등 용도에 맞게

다양한 데이터베이스를 조합해 사용하고 있어요.


올해는 특히 MSK와 Axon 프레임워크 기반을 닦아두어 이벤트 드리븐 아키텍처로 피처를 개발할 수 있게 되었습니다.

Spring Cloud Gateway를 도입했고, 이를 시작으로 EKS도 도입했습니다. 모니터링 툴로는 Datadog을 사용하고 있습니다.

요약하자면 서비스가 빠르게 성장하더라도 각 기능을 독립적으로 개발하고 안정적으로 배포할 수 있는 기반을 마련하고 있어요.

미리캔버스 백엔드팀 디자인파트 이준석님

백규님: 저희 검색 도메인에서도 성공적인 MSA 전환을 위해 달려가고 있어요. 올해 안에 검색 기능을 완전히 독립된 검색 MSA로 분리하는 것을 목표로 하고 있습니다.


현재 검색 시스템은 PostgreSQL이나 MongoDB에 저장된 원본 데이터를 검색에 최적화된 형태로 가공하여 OpenSearch에

인덱싱하는 파이프라인으로 구성되어 있습니다. 이 구조를 독립된 서비스로 완성함으로써, 검색 기능의 고도화와 운영을 더욱 민첩하고 전문적으로 수행할 수 있게 될 것입니다.


결론적으로 저희는 MSA 전환과 아키텍처 고도화를 통해 서비스의 폭발적인 성장세 속에서도 흔들림 없는 안정성과 확장성을

확보하는 데 모든 기술적 역량을 집중하고 있습니다.

미리캔버스 백엔드 팀에는 정말 다양한 기술이 활용되고 있었군요!

그렇다면 팀 내에서 기술 의사결정은 보통 어떤 방식으로 이뤄지나요?

준석님: 기술 의사결정은 담당자가 직접 리서치하고, 필요하다면 실험을 진행하고 결과를 테크 스펙 문서로 정리한 뒤 팀 미팅에서 공유해요. 문서화를 중요하게 생각해서 테크 스펙 문서로 기술 제안이나 설계를 정리하고, 이를 바탕으로 팀원들과 논의합니다.

복잡한 설계의 경우 팀원들을 초대해 대면으로 설계와 코드를 설명하고 피드백을 받는 오프라인 리뷰도 진행합니다.



백규님: 새로운 기술이나 아키텍처 도입에 대한 아이디어가 나오면 먼저 파트 미팅에서 자유롭게 토론을 해요. 팀원에게 투명하게

공유하고 자유롭게 의견을 구하며 기술 도입의 필요성과 예상 효과, 그리고 잠재적인 리스크까지 다 함께 논의하며 방향성을

구체화합니다.


긍정적인 공감대가 형성되면, 곧바로 실제 환경에 적용하는 대신 스트레스 테스트와 같은 객관적인 검증 단계를 거칩니다.

이를 통해 운영 환경에서 발생할 수 있는 성능 문제를 사전에 파악하고 안정성을 확보하는 과정을 거쳐요.

이 단계까지 통과하면 실제 구현과 사용자 피드백 확인을 거쳐 도입의 모든 과정을 마무리합니다.


그리고 이 모든 과정에서 저희가 가장 중요하게 여기는 것이 바로 '기록'이에요. 왜 이 기술을 선택했는지, 어떤 논의와 검증을

거쳤는지, 그 결과는 어떠했는지를 꼼꼼하게 문서로 남깁니다. 이렇게 축적된 기록은 단순히 과거의 이력이 아닌

팀 모두의 살아있는 기술 자산이 되어 추후 유사한 문제를 해결할 때 시행착오를 줄여주는 실질적인 기술 자산이 된답니다.

최근 근무하시면서 개인적으로 성장했다고 느낀 순간이 있었나요?

준석님: 최근 캔버스 2.0 디자인 승인 기능을 개발하면서 다시 한번 크게 성장했다고 느꼈어요.

디자인 승인은 팀 협업을 위한 기능으로, 주로 기업 고객을 대상으로 합니다. 저는 이 기능의 메인 백엔드 개발자로 참여했고,

이메일 발송을 담당하는 Notification 서버 개발자, 권한 관련 개발자와 협업했는데요.


이 프로젝트가 복잡했던 이유는 크게 세 가지였어요.

먼저, 권한 정책이 복잡했습니다. 승인자와 요청자가 각각 충족해야 하는 조건들이 여러 개 있고, 조건에 따라 승인 요청 데이터가 달라졌습니다. 사용자가 승인자로 지정되면 권한이 바뀌고, 승인 권한도 편집과 댓글로 나뉘는 등 케이스가 많았습니다.

그리고 디자인 1.0에서 2.0으로 넘어오면서 정적인 API 호출 방식이 웹소켓 기반 실시간 동시편집으로 바뀌었는데요, 동일한 요구사항을 다른 방식으로 구현해야 했습니다.

마지막으로 여러 MSA 간 책임 분리가 어려웠어요. 레거시 모놀리틱 서버, 동시편집 서버, Notification 서버와 조율하면서 권한 판단 책임을 디자인 서버가 가져가야 할지 워크스페이스 서버가 가져가야 할지 같은 고민들이 있었습니다.


이 문제들을 풀기 위해 각 담당자들과 끊임없이 소통하며 설계를 다듬었어요. 여러 번의 문서화와 오프라인 리뷰를 거치면서 제안서를 발전시켰고, 테스트 코드도 꼼꼼히 작성했어요. Cursor 같은 AI 도구와 SDD 방법론을 적극 활용하면서 업무 효율도 높였죠.

이 프로젝트를 통해 백엔드 개발자로서 설계·커뮤니케이션 역량이 모두 성장했다고 느꼈어요. 다양한 기술 스택을 다룰 수 있게 되면서 단순히 코드를 잘 짜는 걸 넘어서 시스템의 전체 흐름을 바라보는 시야가 넓어졌다고 생각해요.



백규님: 저는 최근 미리캔버스의 메인 DB를 RDS에서 Aurora로 전환 프로젝트를 주도했을 때 성장을 많이 느꼈어요.

MSA로 각 도메인이 분리될 예정이지만 RDS 특성상 볼륨 사이즈를 탄력적으로 조정하기 힘들다는 문제가 있었고,

무거운 데이터 가공 쿼리들이 하나의 메인 DB 를 바라보기에 부하를 분할하고자 작업을 진행했습니다.


이를 위해 메인 DB 의 모든 테이블 DDL 전수조사부터 시작하여 마이그레이션 방법 리서치와,

몇 개월에 걸친 테스트로 성공적으로 검증된 이후 서비스 점검시간에 DB 라우팅을 변경해주는 작업까지 주도적으로 진행했습니다.


이 과정에서 어플리케이션 코드단의 관점으로만 서비스를 바라보고 있었는데 해당 DB 전환 작업을 진행하면서 데브옵스 팀과

협업하는 과정을 통해 조금 더 큰 그림으로 서비스 아키텍쳐단의 작업을 할 수 있었고 시야가 넓어지는 경험을 할 수 있었어요.

백엔드팀에서 일하며 느낀 가장 큰 매력은 무엇인가요?

준석님: 많은 사용자가 이용하는 서비스의 백엔드 시스템을 다양한 최신 기술로 개발할 수 있다는 게 정말 매력적이에요.

특히 MSA 전환과 글로벌 서비스 확장이라는 흔히 경험하기 어려운 대규모 프로젝트도 경험할 수 있어요.

서비스가 성장하면서 기술적으로도 조직적으로도 변화하는 과정을 직접 경험하고 있습니다.



백규님: 미리디 백엔드 팀은 신뢰와 자율성이 공존하는 팀이에요. 연차와 직급에 상관없이 아이디어와 의지만 있다면 서비스의 핵심적인 문제 해결을 스스로 판단하고 결정할 수 있는 권한이 주어져요.

더욱이, 미리디의 핵심 자산인 수많은 고품질 템플릿과 디자인 요소들은 매일 엄청난 검색 트래픽을 발생시킵니다.

이처럼 거대한 트래픽을 안정적으로 처리하는 동시에 더 나은 검색 경험을 위해 새로운 아이디어를 A/B 테스트로 빠르게 실험하고 반영해야 하는 과제는 정말 매력적이라고 생각해요.

앞으로 백엔드팀에서 준비 중인 도전이나 목표가 있을까요?

준석님: 백엔드 팀은 MSA 전환과 글로벌 확장을 대비해 기술 스택을 계속 고도화하고 있어요.

Java 업그레이드, Virtual Thread 도입, MSK·Axon 기반 이벤트 드리븐 구조 정착, SSE 기반 실시간 기능 확장 등 여러 시도를

하고 있습니다.단순히 새로운 기술을 도입하는 게 아니라, 팀 전체가 그 기술을 완벽히 소화하고 안정적으로 운영할 수 있는

수준으로 끌어올리는 게 목표예요.



백규님: 저희 검색 파트는 검색 도메인을 올해 기존의 모놀리식 api 서버에서 검색 MSA를 완벽하게 분리하는 것이 목표예요.

검색은 실험이 많고 속도가 중요한 영역이라, 독립적인 구조로 전환하면 훨씬 민첩하게 대응할 수 있어요.

앞으로 더 많은 A/B 테스트와 실시간 데이터 처리 구조를 개선해, 사용자에게 더 빠르고 정교한 검색 경험을 제공하는 게 저희의 큰 비전이에요.

마지막으로, 백엔드팀 지원을 고민하는 후보자 분들께 한마디 부탁드려요!

준석님: 온전히 하나의 기능을 맡아 자율적으로 개발하고 싶은 분, 그리고 개발을 사랑하는 분을 기다리고 있습니다!

디자인 에디터라는 도메인이 낯설 수 있지만, 실시간 동시 편집, 대용량 데이터 처리, 글로벌 트래픽 대응 등 그만큼 기술적으로 해결할 문제들이 많아요.

최신 기술 스택을 적극 도입하고 실험할 수 있는 환경에서 스스로 성장하고 싶은 분이라면 미리캔버스 백엔드팀은 최고의 경험이 될 거예요.



백규님: 미리캔버스는 꾸준히 성장하고 있는 서비스예요. 그렇기에 MSA 전환부터 시작해서 각 도메인의 다양한 기술과제들뿐

아니라 적극적인 비즈니스 요구사항까지 코드로 녹여내는 경험을 해보실 수 있습니다! 그리고 이 과정에서 개발자로서 큰 성장을

하실 수 있으실 것이라고 확실하게 말씀드릴 수 있습니다. 함께 고민하고 성장할 동료 분을 기다리고 있습니다!

이런 분이라면, 미리디의 백엔드팀에 잘 맞을 거예요!

바로 이런 팀을 찾고 계셨다면, 그 시작을 함께 해볼까요?

미리디의 여정에 함께할 당신을 기다립니다.