Search

여기어때 이벤트 기반 통합 알림 플랫폼 구축기 Part 1. Why?

URL
생성 일시
2026/04/03 10:06
최종 편집 일시
2026/04/03 10:06
태그
여기어때
파일과 미디어
|| 안녕하세요. DevOps팀 아리입니다. 이번 글에서는 여기어때의 이벤트 기반의 통합 알림 플랫폼인 Notification Hub를 왜 구축했는지, 그 과정에서 어떤 어려움이 있었고 어떻게 풀어나갔는지를 공유해보려고 합니다. Notification Hub를 어떻게 구축했는지, 기술적으로 어떤 고민이 있었는지가 궁금하다면 Part 2 를 읽어주시길 바랍니다! 1. 좋은 알림이란 무엇인가 서비스의 규모가 커질수록 우리가 가장 경계해야 했던 것은 알림에 무뎌지는 것이었습니다. 봐도 그만, 안 봐도 그만인 메시지들이 쌓이면서 정작 즉시 대응이 필요한 크리티컬한 신호들이 그 속에 묻히기 시작했기 때문입니다. 기존의 개별적인 알림 전송 방식은 각 서비스의 자유도를 보장해 주었지만, 조직 전체 관점에서는 알림의 질을 일정하게 유지하거나 체계적으로 관리하기 어려운 구조적 한계가 있었습니다. 그래서 NotiHub는 단순히 ‘알림을 보내는 기능’을 넘어, 누구나 목적에 부합하고 인지하기 쉬운 알림을 설계할 수 있는 전사적 토대를 만들고자 했습니다. 목적에 맞게: 정보 전달용인지, 즉각 대응용인지에 따라 수신자와 채널이 명확히 구분될 것 인지하기 쉽게: 메시지를 읽는 즉시 상황을 파악하고 다음 행동(Action)으로 이어질 수 있을 것 2. 우리의 현실 채널을 가득 채운 알림들, 정작 중요한 건 묻혔습니다 기존에는 각 시스템(ArgoCD, GitLab 등)에서 제공하는 기본 슬랙 인테그레이션(Slack Integration)을 활용하고 있었습니다. 설정이 간편하고 슬랙이 제공하는 표준 포맷을 즉시 사용할 수 있다는 장점이 있었지만, 서비스 규모가 커지면서 자연스럽게 한계가 드러나기 시작했습니다. 첫째, 제공되는 포맷에 갇힌 낮은 자유도였습니다. 기본 인테그레이션은 정해진 포맷과 규칙 안에서만 작동합니다. 예를 들어 ArgoCD 알림 채널에는 하루 수백 건의 메시지가 쏟아졌지만, Healthy 상태의 성공 알림과 즉각 대응이 필요한 Degraded, Sync Failed 알림이 한데 뒤섞여 있었습니다. 멘션 기능조차 설정하기 어려워, 중요한 장애 신호를 찾으려면 수백 개의 메시지를 직접 스크롤해야 했습니다. 둘째, 정보의 파편화와 인지 부하입니다. GitLab도 마찬가지였습니다. MR과 Pipeline 알림이 구분 없이 섞여 올라왔고, 단순히 “실패했다”는 결과만 통보할 뿐이었습니다. 원인을 파악하려면 반드시 GitLab에 직접 접속해야만 했습니다. 결국 이러한 ‘경직된 알림 구조’는 누군가의 부주의가 아닌, 시스템이 정보를 제때 제대로 전달하지 못하는 구조적 한계로 이어졌습니다. 우리는 편리하지만 제약이 많은 기존 연동 방식에서 벗어나, 우리가 원하는 정보를, 우리가 원하는 포맷으로, 원하는 곳에 보낼 수 있는 완전한 통제권이 필요했습니다. 개인 계정 웹훅 94.48% 초기 기획 단계에서 사내 슬랙 웹훅 현황을 분석했습니다. 결과는 예상보다 좋지 않았습니다. 공용 계정 발급 프로세스가 이미 존재했음에도 불구하고, 이후 생성된 웹훅의 약 90%가 여전히 개인 계정으로 만들어졌습니다. 사실 사내에는 이미 공용 계정 발급 프로세스가 잘 갖춰져 있었습니다. 운영상의 문제를 해결하기 위해 만들어둔 소중한 장치였죠. 하지만 서비스와 조직이 급격히 성장하다 보니, 모든 정보가 온보딩 과정에서 완벽히 전달되기에 현실적인 어려움이 있었습니다. 이런 상황에서 개발자들은 당장 알림을 띄우기 위해 가장 익숙한 ‘개인 계정 생성’이라는 선택지를 택할 수밖에 없었을 거라고 생각합니다. 당시에는 그것이 최선의 해결책이었을지 모르나, 문제는 개인 웹훅이 ‘특정 개인의 계정’에 완전히 종속된다는 점이었습니다. 이로 인해 조직 전체 관점에서는 조금씩 운영 부채가 쌓여가고 있었습니다. 히스토리의 증발 (계정 종속성): 웹훅을 만든 담당자가 퇴사하여 계정이 삭제되면, 그와 연결된 웹훅도 예고 없이 함께 사라집니다. 운영의 악순환: 코드에 하드코딩된 웹훅 URL이 갑자기 에러를 내며 알림이 끊기면, 원인을 파악하고 수정하여 신규 배포까지