grep

QA

[안정성 보고서] 4. 안정성을 위한 품질 관리

kakao tech카카오

2024년 12월 8일

원문에서 보기 ↗

여는말

오늘날 이용자들은 빠르고 편리한 서비스를 넘어 안전하고 신뢰할 수 있는 온라인 환경을 원합니다. 카카오는 이러한 요구에 부응하여 서비스 품질 향상과 이용자 신뢰 구축을 위해 다각도로 노력을 기울이고 있습니다.

카카오는 최첨단 기술을 도입하고, 엄격한 서비스 품질 관리 프로세스를 운영하며, 건전한 콘텐츠 생태계를 조성하기 위한 탐지 및 모니터링 시스템을 구축했습니다. 코드 작성 단계에서는 AI를 활용해 잠재적 오류를 최소화하고, 다양한 기기 및 OS 버전에 대응하기 위해 자동화 테스트 시스템을 사용합니다. 서비스의 연속성을 확보하기 위해 체계적인 배포 프로세스 및 정책을 수립하고, 이를 반영한 배포 시스템을 구축 및 운영하고 있습니다.

이러한 노력을 통해서 카카오는 이용자에게 더 나은 서비스 경험을 제공하고, 이용자에게 안전한 온라인 환경을 조성하고자 합니다.

1. 코드 품질 관리

1-1. 코드 작성

코드 작성 AI

카카오는 카카오의 서비스 생태계와 자체 기술에 및 핵심 인프라에 대한 이해도가 높은 AI를 구축하기 위해 노력했습니다. 이 AI 시스템은 코드 작성에 활용되고 있습니다. 코드 작성 AI는 광범하고 폭넓은 지식을 바탕으로 개발자가 더 나은 코드를 작성할 수 있도록 도와줍니다.

코드 작성 AI는 채팅형 인터페이스를 통해서 개발자와 실시간으로 소통합니다. 개발자가 작성하는 코드를 분석하여 더 나은 코드를 제안하거나 잠재적인 오류를 사전에 파악함으로써 코드 작성의 효율성을 높혀줍니다. 아울러 개발자가 업무를 원활하게 수행할 수 있도록 도와줍니다. 예를 들어, 특정 업무 또는 서비스의 담당자나 특정 서비스가 구동되고 있는 인프라의 세부 설정값과 같이 개발과 관련된 직간접적 정보를 갖고 있으므로 개발자의 질문에 대한 답변을 신속하게 제공할 수 있습니다.

코드 작성 AI는 피어 리뷰어로서의 역할도 수행해 원활하고 효과적인 코드 리뷰가 이뤄지도록 도와줍니다. PR(Pull Request)이 생성되면 코드 작성 AI가 자동으로 내용을 스캔해서 관련된 맥락을 이해합니다. 이를 기반으로 PR의 변경 사항을 요약해 리뷰어가 한 눈에 내용을 파악할 수 있도록 요약합니다.

코드 작성 AI는 PR의 코드를 분석해서 복잡도, 보안 취약점, 주요 리뷰 이슈 등에 대한 피드백을 제공해 리뷰어가 더욱 효과적으로 코드 리뷰를 할 수 있도록 도와줍니다. 아울러 보안 취약점, 잠재적 결함 등에 대해 코드 개선 사항을 제안합니다.

조직별로 코딩 규칙이 수립되어 있는 경우, 코드 작성 AI가 이를 학습해 코드 리뷰에 적용합니다. 코딩 규칙을 위반하는 코드가 있다면 코딩 규칙에 맞게 수정된, 즉시 커밋 가능한 코드를 제안하는 등 유용한 피드백을 제공합니다.

코드 안정성과 취약성 검사 시스템

카카오는 개발 초기 단계에서부터 코드의 품질과 서비스 안정성을 높이기 위해서 코드 안정성과 취약성 검사 시스템을 구축했습니다. 이 시스템은 프로젝트 전반의 신규 소스 코드를 분석하여 장애가 발생할 수 있는 다양한 위험 요소를 식별합니다. 이 시스템의 주요 검사 항목은 아래와 같습니다.

이 시스템은 코드 작성 단계에서 잠재적 문제를 미리 발견하고 개선할 수 있도록 합니다. 코드의 전반적인 품질을 향상시켜서, 서비스의 안정성을 높입니다.

유닛 테스트 생성 AI

유닛 테스트 생성 AI는 인공지능 기술을 활용하여 개발자가 작성한 코드를 분석하고, 이를 바탕으로 테스트 코드를 자동으로 생성하거나 기존의 테스트 코드를 보완합니다. 그리고 생성된 테스트 코드에는 목적과 의미를 설명하는 주석도 함께 추가해 개발자가 새로 생성된 유닛 테스트를 빠르게 검토할 수 있도록 도와줍니다.

개발자는 유닛 테스트 생성 AI의 도움을 받아 테스트 커버리지를 효율적으로 향상하고 효과적인 유닛 테스트를 수행해, 서비스의 안정성을 지속적으로 개선해 나갑니다.

1-2. 테스트

API 테스트

카카오톡은 대규모의 사용자가 다양한 기능을 이용하는 서비스입니다. 이러한 특징 때문에 새로운 업데이트를 배포하기 전에 철저한 테스트를 진행해 대규모의 트래픽을 받는 상황에서도 서비스의 속도가 안정적으로 유지되는지 확인해야 합니다. 오로지 철저한 사전 검증 과정만이 잠재적 장애를 예방하고 사용자 경험을 향상시킵니다.

카카오는 자사 서비스에 적합한 API 테스트 엔진을 자체적으로 구축했습니다. 이 엔진을 기반으로 웹 화면 중심의 API 테스트 시스템을 개발했습니다. 이 시스템은 단일 테스트 케이스로도 기능과 성능 테스트를 동시에 진행할 수 있으며, 테스트 수행이 종료된 후 테스트와 관련된 사항을 즉시 보고서로 작성해 웹 화면에 게시하기 때문에 테스트 결과를 쉽게 확인할 수 있습니다.

그림 14. API 테스트 화면

모바일 기기 테스트

4천만 명 이상의 이용자가 다양한 모바일 기기를 통해 카카오의 서비스를 사용하고 있습니다. 한 기기에서는 정상 작동했던 기능이 다른 기기에서는 문제를 일으킬 수 있습니다. 각기 다른 모바일 환경에서도 사용자가 카카오의 서비스를 쾌적하게 사용할 수 있도록, 카카오는 2020년에 모바일 테스트 자동화 시스템을 개발했습니다.

이 시스템은 다양한 모바일 및 OS 환경을 실제와 동일하게 구현하며, 대규모 또는 복잡한 테스트를 자동으로 진행할 수 있습니다. 이를 통해 앱이 실제 사용자의 모바일 기기에서 어떻게 동작하는지를 미리 확인할 수 있습니다. 테스트 중에 문제점을 발견할 경우, 코드를 수정해 잠재적 오류를 예방할 수 있습니다. 이렇듯 카카오는 모든 사용자에게 일관된 품질의 서비스를 제공하기 위해서 노력합니다.

그림 15. 모바일 기기 테스트 화면

2. 오픈소스 컴플라이언스 관리

2-1. 오픈소스 검증과 관리

레드햇의 2022년 기업 오픈소스 보고서^[1]^에 따르면, 전 세계 1,296여개 기업을 대상으로 실시한 설문조사에서 80%가 인공지능, 머신러닝, 엣지 컴퓨팅, 사물 인터넷과 같은 신기술 분야에서 오픈소스 사용을 확대할 계획이라고 답변했습니다. 카카오는 오픈소스의 사용 비중이 늘어나고 관리의 중요성이 높아짐에 따라, 안전한 오픈소스 생태계를 구축하기 위해서 오픈소스 컴플라이언스 체계를 수립했습니다.

이러한 노력의 일환으로 개발되어 2021년 6월, 대외 공개된 올리브 플랫폼(OLIVE Platform)은 사용자가 오픈소스를 보다 편리하게 사용할 수 있도록, 오픈소스의 라이선스 및 의무사항을 점검하고 리포트를 제공해 라이선스와 관련된 잠재적 위험을 최소화합니다.

그림 16. 올리브 플랫폼

그림 17. 올리브 플랫폼 이용 현황

2023년에는 올리브 플랫폼에서 제공하는 오픈소스 데이터의 규모를 패키지 매니저의 전체 데이터로 확장했습니다. 수백만 개의 오픈소스 패키지를 수집하여 7천만 개 이상의 오픈소스 패키지 버전에 대한 라이선스 및 보안 취약점 정보를 제공하고 있으며, 자동 수집을 통해 최신 데이터를 반영하고 있습니다.

올리브 플랫폼은 보안상 웹서비스 사용이 어렵거나 소스코드 노출이 우려되는 경우에도 안심하고 사용할 수 있는 OLIVE CLI 도구를 제공합니다. OLIVE CLI는 리눅스(Linux), 맥(Mac OS), 윈도우(Windows) 환경을 지원하며, VCS(Version Control System)에 종속되지 않고 사용자의 PC 환경에서 프로젝트를 분석하고, 분석 결과를 로컬 파일로 관리합니다.

이용자가 분석 결과를 올리브 플랫폼의 프로젝트로 관리하고자 할 경우에는 OLIVE CLI에서 제공하는 명령어(apply, report 등)를 사용하여 올리브 플랫폼에 업로드할 수 있습니다. 이러한 경우를 제외하면, 클라이언트의 소스 코드나 데이터는 올리브 플랫폼으로 전송되거나 서버에 저장되지 않습니다.

아울러 카카오는 오픈소스 생태계의 발전에 기여하고자, 스타트업에게는 오픈소스 및 소프트웨어 자재 명세서(Software Bill of Material, SBOM) 관리 기능을 최대 100개의 프로젝트까지 무료로 제공하고 있습니다.

2-2. 오픈소스 생태계 조성

카카오는 오픈소스 준법 감시 체계를 확산하고 안전한 오픈소스 생태계를 조성하기 위해 2023년 4월^[2]^, 삼성전자, LG전자, 한국저작권위원회와 오소리(Open Source DB Integration, OSORI) 오픈소스 프로젝트 업무협약을 체결했습니다. 각 사는 최소 3만여 건의 자체 구축한 오픈소스 검증 데이터를 공유했으며, 이후 주기적으로 각 사에서 수집한 오픈소스 검증 데이터를 제공해 오픈소스 관리 기능을 강화하고 있습니다. 올리브도 오소리의 데이터를 활용해 더 나은 오픈소스 검증 서비스를 제공할 예정입니다.

그림 18. 오소리 오픈소스 프로젝트 주요 성과

3. 서비스와 콘텐츠 품질 관리

3-1. 스팸 및 유해 콘텐츠 관리

스팸 탐지 및 차단

카카오는 개인 정보 피싱, 불법 도박 사이트, 음란물 등 카카오의 서비스 운영 정책을 위반하는 콘텐츠를 적극적으로 탐지하고 차단하고 있습니다. 2024년 8월에는 카카오톡 운영정책을 자본시장법보다 강하게 개정해 유·무료와 관계 없이 카카오톡 오픈채팅방을 활용하는 모든 투자 리딩방을 금지했습니다. 이에 따라 주식·암호 화폐·부동산 등의 투자 자산 관련 리딩방을 생성·운영·홍보하는 행위는 제재 대상입니다.

세이프봇(Safebot)은 스팸과 욕설·혐오·유해정보 등 사용자의 안전을 위협하는 표현을 탐지하고, 해당 콘텐츠를 가려서 사용자를 보호합니다. 2020년 12월에 최초 도입된 직후에는, 욕설 및 비속어 댓글을 신고하는 신고량이 43% 감소했고 신고 자체도 73% 줄어드는 성과를 보였습니다.

그림 19. 세이프봇 적용 후 욕설 치환 비율과 댓글 신고 삭제 비율

카카오는 세이프봇을 개발하며 구축한 60만 건의 욕설 데이터베이스를 한국인터넷자율정책기구(Korea Internet Self-governance Organization, KISO)에 제공했습니다. 한국인터넷자율정책기구는 이를 통해 인터넷 서비스 기업들이 자율적으로 활용할 수 있도록 API를 만들었고 2023년 6월 온라인 게시판이나 댓글에 포함된 욕설·비속어를 탐지해 알려주는 KISO이용자보호시스템(KISO Safeguard System, KSS)을 공개했습니다. 해당 시스템은 제8회 휴먼테크놀로지 어워드에서 대상을 수상했습니다.

2020년에는 세이프봇에 AI 기술을 도입했습니다. 세이프봇은 개정된 카카오의 서비스 운영방식을 학습하고, 이를 기반으로 더욱 정확한 스팸 및 유해 콘텐츠를 적극적으로 탐지합니다. 최근에는 많은 사용자들이 사용하고 있는 다음 뉴스의 채널톡과, 오픈채팅 서비스 가운데 대중적 접근이 가능한(사적 게시물로 판단하지 않는) 오픈채팅 Auto, 오픈채팅 Lite에 도입되었습니다.

세이프봇이 유해한 콘텐츠를 가리는 과정은 ①세이프봇에게 콘텐츠 분석 요청, ②콘텐츠 1차 필터링, ③콘텐츠 스팸 분류 및 분류 사유 제공 ④콘텐츠 가리기의 4 단계 순서로 진행됩니다.

첫 번째, 새로운 콘텐츠가 생성되거나 사용자가 콘텐츠를 신고합니다. 두 번째, 세이프봇이 운영 정책을 기준으로 해당 콘텐츠를 정상, 또는 스팸 및 유해 콘텐츠로 분류합니다. 세 번째, 스팸으로 판단할 경우에는 그 이유를 함께 기록합니다. 네 번째, 콘텐츠가 스팸 판별 과정을 거치는 동안 이상이 없었다면, 세이프봇이 해당 콘텐츠를 가려서 다른 사용자가 볼 수 없도록 합니다.

그림 20. 세이프봇의 스팸 및 유해 콘텐츠 대응

다음뉴스 사용자가 타임톡에 댓글을 작성했을때 일어나는 일을 통해 구체적으로 세이프봇이 어떻게 콘텐츠 스팸 여부를 판별하는 지 알아보겠습니다.

①다음뉴스 사용자가 서비스 타임톡에 댓글을 작성합니다.

②타임톡이 세이프봇을 호출해 해당 댓글에 문제가 없는지 분석을 요청합니다.

③운영 정책을 기준으로, 세이프봇이 해당 콘텐츠가 가리기 대상인지 판단합니다.

④욕설, 비속어 등 다른 사용자에게 불쾌감을 줄 수 있는 메시지로 판별되면 즉시 해당 메시지를 가려서 다른 사용자가 볼 수 없도록 합니다. 사용자는 세이프봇이 가린 메시지가 궁금할 경우, 해당 댓글을 클릭해서 원래 메시지를 읽을 수 있습니다.

그림 21. 타임톡 서비스에서 작동하고 있는 세이프봇

스팸 및 유해 콘텐츠는 지금도 끊임없이 진화하고 있습니다. 카카오는 이에 선제 대응하기 위해 지속적으로 서비스 운영 정책을 개정하고 있습니다. 이에 발맞춰 스팸 및 유해 콘텐츠 모니터링 체계도 고도화하고 있습니다. 스팸 및 유해 콘텐츠 분류 정확도를 향상하기 위해서 사용자의 피드백과 모니터링을 통해서 분류 결과를 개선합니다. 특히, 잘못된 분류가 발생한 경우 사용자의 신고를 통해 개선 작업을 수행합니다. 카카오는 사용자가 더욱 안전한 온라인 환경을 누릴 수 있도록 노력하고 있습니다.

유해 이미지 및 불법촬영물 차단

2023년 통계개발원에서 발간한 한국의 안전보고서에 따르면, 디지털 성범죄(‘카메라등이용촬영죄’와 ‘통신매체이용음란죄’) 중 통신매체이용음란죄는 2018년부터 2020년까지 5년간 약 7배 증가했습니다.^[3]^ 특히 2020년 텔레그램 N번방 사건은 사이버성범죄의 심각성을 알리고 관련법제도를 정비하는 계기가 되었습니다.^[4]^

디지털 성범죄가 폭발적으로 증가함에 따라, 온라인 환경의 안정성 확보가 중요해졌습니다. 카카오는 사용자가 안전한 대화를 할 수 있도록, 음란물 차단과 쾌적한 온라인 환경을 조성하고자 합니다.

이러한 노력의 일환으로 세이프봇에 유해 이미지를 판별하는 기능을 탑재했습니다. 여기에 ML(Machine learning)을 적용하여 이미지 판별을 선처리하는 단계를 추가해, 더욱 신속하고 효율적으로 유해 이미지를 모니터링하고 있습니다. 현재 세이프봇은 다음TOP에 부적절한 유해 이미지가 노출되지 않도록 자동으로 가리고 있습니다.

더 나아가 카카오는 국내 최초로 불법촬영물 사전 검수 방식을 도입했습니다. 사용자가 서비스에서 모두에게 공개되는 영역에 동영상을 업로드하면, 즉시 판별하는 과정을 거칩니다. 만약 해당 동영상이 불법촬영물일 경우에는 신속히 삭제하고 있습니다. 앞으로는 더 신속한 콘텐츠 판별 및 차단을 위해 자체 검출 시스템 개발 및 TTA(Telecommunications Technology Association) 인증을 도입을 검토하고 있습니다. 이렇듯 카카오는 사용자에게 안전하고 쾌적한 온라인 환경을 조성하고자, 지속적으로 콘텐츠 관리 기술을 개선하고 있습니다.

3-2. 서비스 품질 관리

카카오는 이용자에게 더 나은 서비스 경험을 제공하기 위해서 끊임없이 개선하며, 새로운 서비스 또는 기능을 이용자에게 선보이기 전 철저한 품질 관리 과정을 거칩니다.

카카오의 서비스 품질 관리는 이용자의 전반적인 서비스 경험에 영향을 미칠 수 있는 모든 요소를 세심하게 검토합니다. 카카오는 서비스 또는 기능이 엄격한 품질 기준을 충족하는지 확인하고, 서비스 품질을 높게, 일관되게 유지하고자 합니다.

서비스 품질 관리 프로세스는 ①서비스/기능 검토, ②QA 계획 수립, ③QA 진행, ④QA 종료의 4단계로 진행됩니다. 서비스 품질 관리 프로세스에 대해서 좀 더 자세히 알아보겠습니다.

그림 22. 서비스 품질 관리 프로세스

①서비스/기능 검토: 서비스나 새로운 기능 개발을 시작할 때, QA 조직에서는 서비스나 기능의 규모, 복잡도, 잠재적 위험을 종합적으로 평가합니다. 평가 결과를 기반으로 해당 업무를 진행할 QA 담당자를 배정합니다.

②QA 계획 수립: QA 담당자는 대상인 서비스의 특성에 적합하게 테스트 케이스를 설계하고, 테스트 방법을 선정하며, 테스트 환경과 테스트 기기를 준비합니다. 테스트 케이스는 새로 변경되는 부분, 변경 사항에 영향 받는 부분, 변경 사항에 직접적인 영향을 받지는 않지만 서비스의 기본 기능에 해당하는 부분을 포함합니다. QA는 실제 이용자가 서비스를 사용하는 프로덕션 환경이 아닌 별도의 테스트 환경에서 진행됩니다. QA에 사용되는 테스트 기기는 이 테스트 환경과 연결되어 있어서 이용자에게 영향을 주지 않고 안전하게 테스트를 수행할 수 있습니다.

QA 담당자는 테스트 계획을 서비스 담당자와 테스트를 실제로 진행할 테스트 엔지니어(Test engineer)에게 공유합니다. 이 계획에는 테스트 일정, 테스트 방법, 테스트 환경, 테스트 케이스, 테스트할 개발산출물, 테스트 단말기 등이 포함됩니다. 모바일 서비스일 경우에는 모바일 OS와 버전 등 세부 사항도 명시됩니다. 서비스 관련 담당자들은 계획을 바탕으로 일정 및 과정을 명확히 이해하고 협력합니다.

③QA 진행: 테스트 엔지니어는 QA 담당자가 설계한 테스트 케이스에 따라 체계적으로 테스트를 수행합니다. 테스트 과정에서 예상치 못한 에러나 문제가 발생하면, 테스트 엔지니어는 이를 즉시 QA 담당자에게 보고합니다. QA 담당자는 테스트 중에 발견된 오류나 예외 사항 등을 관리하고, 여러 테스트 엔지니어가 테스트를 수행한 결과를 종합하여 전체적인 테스트 진행 상황을 파악합니다. 이를 기반으로 상세한 일일 보고서를 작성해 서비스 담당자와 개발자에게 공유함으로써, 서비스 품질 평가 및 검증 과정이 효율적으로 이뤄지도록 합니다.

④QA 종료: QA 담당자가 각 이슈의 처리 상태를 확인합니다. 모든 이슈의 상태가 명확히 정리된 단계를 이슈 정리 완료라고 하며, 이슈 정리 완료 상태가 되어야 서비스 QA가 종료됩니다.

QA 담당자는 QA 종료 보고서를 작성해 서비스 담당자에게 공유합니다. 이 보고서는 전체 테스트 과정을 일목요연하게 요약하고, 테스트 된 이슈와 테스트 결과, 또는 테스트 과정에서 발견된 오류나 예외 사항의 해결 상태, 그리고 서비스 전반의 품질 상태를 포함합니다. 서비스 담당자와 관계자들은 QA 종료 보고서를 통해 서비스의 품질 상태를 최종적으로 확인하고, 서비스 배포를 진행합니다.

서비스가 배포된 후에는 서비스 담당자, 개발자, 그리고 담당 QA가 협력하여 종합적인 서비스 모니터링을 수행합니다. 이 과정에서 담당 QA는 실제 이용자 입장에서 배포된 서비스를 사용해보며 사용성과 전체적인 사용자 경험에 문제가 없는지 확인합니다. 한편, 서비스 개발자는 기술적 안정성과 성능을 모니터링합니다. 이러한 모니터링을 통해 서비스의 품질을 종합적으로 평가하고 개선점을 파악할 수 있습니다.

모바일 앱 서비스의 경우, 대부분의 앱이 점진적 배포 전략을 취하고 있기 때문에 신규 버전의 앱을 배포한 직후 모니터링을 하기 어렵습니다. 이러한 경우에는 앱스토어에 등록된 최신 버전을 대상으로 테스트를 진행해, 실제 이용자들이 경험하게 될 버전의 품질과 안정성을 확인합니다.

4. 배포 프로세스 및 정책과 시스템

카카오는 서비스의 안정성과 신뢰성을 향상하기 위해서 배포 프로세스와 정책을 수립했습니다. 이 프로세스는 서비스를 배포할 때 발생할 수 있는 장애를 예방하고, 장애 발생 시 신속하게 대응 및 서비스를 복구하기 위한 목적으로 설계됐습니다. 프로세스는 ①배포 계획 수립, ②배포 노트 작성 및 승인, ③배포 진행, ④배포 후 모니터링의 4가지 단계로 구성됩니다. 배포를 계획하고 실행하는 과정에 대해서 좀 더 자세히 알아보겠습니다.

그림 23. 배포 프로세스

①배포 계획 수립: 배포를 진행할 배포 인력이 배포 계획을 수립합니다. 배포 계획에는 배포 일시, 배포 대상, 배포 후 모니터링 등, 아래와 같은 사항이 포함됩니다.

이들 중 1인은 배포 담당자 역할을 맡아 배포를 직접 수행합니다. 다른 배포 인력은 모니터링 및 커뮤니케이션을 담당합니다. 이들은 배포 과정을 실시간으로 모니터링합니다. 이렇게 배포 인력 구성과 역할을 분담하여 배포 과정에서 발생할 수 있는 예기치 못한 상황에 효과적으로 대처합니다.

배포 담당자는 배포 계획을 체계적으로 수립하면서, 실제 배포를 진행하기 전에 발생 가능한 문제를 예측할 수 있습니다. 이를 통해 예방 대책을 마련해 실제 배포 중에 문제가 발생하더라도 신속하고 효과적으로 대처할 수 있습니다.

그림 24. 카카오 배포 시스템의 배토 노트 작성 화면

②배포 노트 작성 및 승인: 배포 담당자는 수립한 배포 계획을 기반으로 배포 시스템에서 배포 노트를 작성합니다. 배포 리뷰어는 작성된 배포 노트를 검토하고, 문제가 없으면 이를 승인합니다. 만약 배포 계획의 수정이 필요하면 배포 리뷰어는 배포 담당자에게 배포 노트 수정을 요청합니다. 만약 배포를 실행할 필요가 없어질 경우에는 배포 담당자가 배포 노트를 폐기 처리합니다. 폐기된 배포 노트는 시스템에 남아 있어 언제든지 조회할 수 있습니다.

③배포 진행: 배포 담당자가 실제 배포를 실행합니다. 배포 담당자가 배포를 직접 수행하고 다른 이들은 배포 과정을 실시간으로 모니터링합니다. 배포를 실행하고 난 뒤의 배포 노트는 전부 시스템에 저장되며, 배포 담당자와 배포 리뷰어는 언제든지 배포 노트의 상세한 내용을 조회할 수 있습니다.

만약 문제가 발생할 경우, 문제의 종류와 시급성에 따라 배포 담당자에게 즉시 알리거나, 해당 문제로 인해 영향을 받을 수 있는 관련 부서에 연락하는 등의 조처를 합니다.

④배포 후 모니터링: 배포 후 서비스의 성능과 안정성을 실시간으로 모니터링합니다. 만약 모니터링 도구에서 관찰된 서비스 지표가 롤백 기준에 부합할 경우에는 배포 노트에 정의했던 롤백 가이드라인을 따라 롤백을 실행합니다.

그림 25. 카카오 배포 시스템의 배포 노트 검색 화면

카카오는 사용자에게 더 나은 서비스를 제공하기 위해 체계적인 배포 프로세스와 정책을 수립하고 시행함으로써 서비스의 안정성과 신뢰성을 지속적으로 향상시키고 있습니다.

5. 서비스 모니터링, 실시간 대시보드, 알림

5-1. 서비스 성능 모니터링과 실시간 대시보드

카카오는 다양한 환경에서 서비스를 제공하고 있습니다. 스마트폰, 데스크톱 컴퓨터 등 다양한 기기와 iOS, 안드로이드, 윈도우 등 여러 운영 체제에서 카카오의 서비스가 사용되고 있습니다. 이렇게 다양한 환경에서 일관된 성능을 유지하고 좋은 사용자 경험을 제공하는 것은 카카오가 직면한 주요한 기술적 과제 중 하나입니다.

이러한 도전을 해결하기 위해, 카카오는 자체 기술을 기반으로 서비스 성능 측정 및 모니터링 시스템을 구축했습니다. 이 시스템은 이용자가 사용하는 기기에서 시작된 요청이 카카오 데이터센터와 같은 핵심 인프라를 거쳐 이용자에게 되돌아가는 전 과정을 추적합니다.

좀 더 자세하게 설명하자면, 이용자의 모바일에서 발생한 요청은 카카오의 데이터센터에 있는 수많은 서버와 데이터베이스를 거쳐 처리되고, 다시 이용자에게 돌아갑니다. 요청이 네트워크를 통해 처리되는 과정에서 시간이 소모되며, 오류가 발생할 수도 있습니다. 서비스 성능 모니터링 시스템은 이렇게 요청이 처리되는 각 과정에서 발생하는 지연 시간, 처리 속도, 오류율 등의 지표를 수집해 실시간으로 분석하고 이를 대시보드에 시각화합니다.

그림 26. 애플리케이션 성능 모니터링 화면

카카오는 성능 측정 모니터링 시스템을 기반으로, 서비스의 품질을 향상하기 위해 노력하고 있습니다. 실시간 성능 지표를 바탕으로 지속적으로 개선 작업을 수행해, 이용자가 각기 선호하는 어떤 기기나 OS에서도 카카오의 서비스를 안정적으로 사용할 수 있도록 최선을 다하고 있습니다.

5-2. AI 지원 운영 분석과 알림 시스템

카카오에서 제공하는 서비스의 정상적 동작을 방해하는 장애는 여러 가지 원인 때문에 발생합니다. 서비스의 규모가 작으면 한두 개의 지표만으로도 서비스의 상태를 파악할 수 있습니다. 그러나 서비스가 거대해지고 기능이 다양해지면, 서비스의 상태를 파악하고 장애 원인을 분석하는 데 필요한 지표의 종류와 수도 수십, 수백 개 가까이 증가합니다. 이렇게 방대한 양의 트래픽과 사용기록 속에서 장애 원인을 즉각 파악하기란 쉽지 않은 일입니다.

카카오는 모니터링 시스템에 AI를 도입해 잠재적 장애를 예방하려고 노력하고 있습니다. 이 AI는 서비스의 시스템에서 만약 에러나 경고 메시지가 발생할 경우, 이를 실시간으로 분석합니다. 그 결과를 바탕으로 개발자들이 상황을 더욱 빨리 파악할 수 있도록 현황 보고서를 작성하고, 적절한 조치 방안을 제안합니다. 카카오는 장애 대응 시간을 단축하고, 전반적인 서비스 안정성을 높이기 위해서 지속적으로 운영 분석과 알림 시스템을 개선해나가고 있습니다.

닫는말

카카오는 서비스의 안정성과 품질을 향상하기 위해 끊임없이 노력합니다. AI 등 최신 기술을 코드 작성과 테스트까지 개발 전 과정에 도입해, 잠재적 장애를 예방하고 기술적 품질을 고도화하고 있습니다. 체계적인 서비스 품질 관리를 통해 코드로 구현된 기능의 정상 작동과 성능은 물론, 사용자 경험에 영향을 미치는 모든 요소를 종합적으로 검토하여 고품질 서비스를 일관되게 제공하고자 노력합니다.

더불어, 카카오는 서비스와 기능뿐만 아니라 서비스에서 생성되는 콘텐츠의 질적 품질까지도 세심하게 관리하고 모니터링합니다. 허위 · 과장 투자 정보나 불법 리딩방 등 스팸 및 유해 콘텐츠를 효과적으로 차단하기 위해 유해 콘텐츠 탐지 시스템을 지속적으로 개선하고 있습니다. 이러한 노력으로 이용자가 신뢰하고 누릴 수 있는 온라인 환경을 제공하고자 합니다.

카카오는 이용자가 카카오 서비스를 이용할 때마다 만족스러운 경험을 얻기를 바랍니다. 카카오는 앞으로도 지속적인 품질 관리와 기술 혁신을 통해, 이용자의 기대를 뛰어넘는 서비스를 제공하기 위해 최선을 다하겠습니다.

기여한 사람들

강민우 gilbert 김성섭 kevin 김영린 leeno 김용광 dl 김용훈 hoon 이민정 yally 최세환 nio 최필립 libby 황은경 violet


[1] The State of Enterprise Open Source(2022), Redhat

[2] 카카오, 안전한 오픈소스 생태계 위한 민관 협력 ‘오소리 프로젝트’ 추진

[3] 한국의 안전보고서(2023), 통계개발원

[4] 디지털성범죄의 현황과 특성(2020), 통계개발원