AWS 기술 블로그

농심 켈로그의 Amazon Comprehend 감성분석을 활용한 SNS 대시보드 및 알림 구축 사례

농심 켈로그는?

호랑이 기운이 솟아나는 콘푸로스트로 잘 알려진 농심 켈로그는 세계 최대의 시리얼 기업인 켈로그와 식품회사인 농심의 합작으로 1981년 설립되었습니다. 국내에 안성공장을 보유하고 있으며 콘푸로스트, 첵스초코, 리얼 그래놀라, 아몬드 푸레이크 등 대표 제품이 있고 프링글스, 켈로그 바, 프로틴 그래놀라 등으로 제품 포트폴리오를 확장하고 있습니다. 농심 켈로그는 ‘Be the 1st choice of breakfast, snacks and people’ 이라는 비전을 기반으로 소비자의 니즈 충족과 건강한 라이프 스타일 확대를 위해 적극적으로 노력하고 있습니다.

배경

B2C 기업은 다양한 채널에서 발생하는 제품 리뷰와 포스팅을 모니터링하고 비즈니스에 활용하고자 하나, 이런 환경을 구축하는 것은 쉽지 않습니다. 제한된 인력으로 다양한 채널에서 발생하는 리뷰 및 포스팅을 모두 확인하고 분석하는 데는 상당한 시간이 소요되며, 모니터링 채널이 증가할 경우 업무 부하가 발생할 수 있습니다. 또한 수작업으로는 리뷰 데이터 시각화와 활용도 어려워 이를 개선할 필요가 있습니다. 이 게시물에서는 농심켈로그가 Amazon Comprehend 및 여러 AWS 서비스를 활용해 고객 리뷰 및 포스팅을 모니터링, 시각화하고 이를 활용하는 과정을 설명합니다.

구성도

이번 게시글에서 소개하는 구축 사례에서는 고객 의견 및 상품 리뷰에 대한 수집, 가공, 분석 및 시각화 단계까지 아래와 같은 아키텍처 형태로 구현하였습니다.

농심 켈로그는 아래와 같이 세 가지를 주요 요구사항으로 도출하여, 이에 적합한 AWS 서비스를 활용하여 해결하고자 하였습니다.

1) 데이터 수집: 온라인몰의 농심 켈로그 제품 관련 리뷰 데이터 Amazon S3에 업로드, SNS상의 농심 켈로그 제품 관련 고객 의견 크롤링

2) 감성 분석: Amazon Comprehend를 활용하여 수집된 데이터 감성 분석

3) 데이터 시각화 및 알림 구축: Amazon QuickSight를 통해 고객 감성 분석 데이터의 가시성을 확보하고, 고객 반응 선제 대응을 위한 알림이 필요한 경우 Amazon SNS 통한 메일 알림

프로세스 소개

  1. 수집하는 대상은 크게 온라인몰 고객 리뷰 데이터와 15개 SNS 사이트에 올라온 포스팅으로 구분할 수 있습니다. 온라인몰의 경우, 파일로 농심 켈로그 제품에 대한 고객 리뷰 데이터를 받아 오브젝트 저장소인 Amazon S3에 해당 파일을 업로드합니다. Amazon S3는 업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다.
  2. 고객 리뷰 데이터 파일 업로드 시 발생한 새 객체 생성 이벤트를, Amazon S3 이벤트 알림 기능을 통해 Amazon EventBridge에 보낼 수 있습니다. 이 기능을 활용하면 Amazon S3는 버킷에서 특정 이벤트가 발생할 때마다 Amazon EventBridge에 이벤트를 보낼 수 있습니다. 다른 대상과 달리 전송할 이벤트 유형을 선택할 필요가 없습니다.

이벤트를 수신한 Amazon EventBridge에서 AWS Lambda의 실행을 Trigger 합니다. AWS Lambda은 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. SNS에서 농심 켈로그 제품 리뷰 관련 고객 의견 수집은 비용 최적화를 위해 정지시켜둔 Amazon EC2 인스턴스를 Amazon EventBridge과 AWS Lambda를 활용하여 지정된 시간에 시작합니다. Amazon EC2 인스턴스의 시작을 위해 아래와 같은 IAM 정책 및 실행 역할을 AWS Lambda에 적용합니다.

#lambda_policy.json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Start*",
                "ec2:Stop*",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstanceAttribute",
                "ec2:ModifyInstanceAttribute"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        }
    ]
}

위와 같이 Amazon EventBridge 규칙을 사용하면 이벤트에 대한 응답으로 또는 특정 시간 간격으로 트리거되도록 할 수 있습니다. 또한, 아래와 같이 Cron 표현식 형태로 Amazon EventBridge 스케쥴링 규칙 기능을 제공합니다.

  1. 정지된 Amazon EC2 인스턴스를 시작시키고, 필요한 스크립트를 실행시킵니다. AWS Lambda와 AWS Step Functions을 조합하여 전체 아키텍처를 서버리스 기반 아키텍처로 구성을 고려할 수 있었으나, 스크립트 실행 시간이 15분 이상인 점과 쉽고 빠른 구축을 위해 Amazon EC2를 활용하였습니다.
  2. 스크립트에서는 SNS에서 크롤링, 크롤링한 데이터 전처리, 감성 분석, 데이터 후처리 (형태소 분리, 단어 분리), 이상치 탐지 및 최종 데이터 S3 업로드까지의 과정을 포함하고 있습니다. 시작된 Amazon EC2 인스턴스에서는 대상 SNS에서 고객 의견 텍스트 데이터 수집을 위해 Selenium과 Chrome webdriver를 활용한 크롤링 코드를 실행하여 수집합니다.  Amazon Comprehend의 감성 분석 기능을 활용하여, 텍스트의 감성 분석 결과를 받습니다. 여기에서 사용된 Amazon Comprehend는 프로비저닝이 필요 없는 웹 서비스로 기계 학습을 사용하여 텍스트에서 유용한 인사이트 및 관계를 찾아내는 자연어 처리(NLP) 서비스입니다.
  3. 결과 데이터를 Amazon S3에 저장합니다. 데이터는 감성 분석을 위해 데이터 전처리 과정을 거친 후, Amazon Comprehend의 감성분석 기능을 활용하여 제품에 대한 리뷰 데이터의 긍정, 부정과 중립 등으로 구분하는 감성분석 결과 데이터를 받아옵니다. 받아온 데이터를 Hanspell, soynlp, KaKao, khaiii 등을 활용하여 형태소 분리 및 단어 분리 등 필요한 처리를 실시한 후, 다시 Amazon S3에 저장합니다. 하루에 한 번 실행되는 감성 분석 배치 작업이 종료되면, Amazon EC2를 다시 정지 상태로 전환합니다.
  4. Amazon S3에 저장된 결과 데이터를 기반으로, Amazon Quicksight 대시보드를 통해 결과를 시각화하여 비지니스 통찰력을 확보할 수 있게 하였습니다. Amazon QuickSight는 어디에 있든 함께 일하는 사람들에게 easy-to-understand 통찰력을 제공하는 데 사용할 수 있는 클라우드급 비즈니스 인텔리전스 (BI) 서비스입니다. Amazon은 클라우드의 데이터에 QuickSight 연결하고 다양한 소스의 데이터를 결합합니다. 파이프라인이 시작되면 데이터 양에 따라 1~2시간 후 Amazon QuickSight대시보드에 반영됩니다. 아래 대시보드와 같이 온라인몰과 SNS로 구분하여 대시보드를 작성하였고, 부정 의견에 대해 빠르게 확인할 수 있게 되었습니다.
  5. 부정 의견이 다수 발견되는 경우, Amazon SNS의 토픽에 메세지를 보냅니다. Amazon SNS는SMS 문자, 푸시 알림, 이메일을 통해 고객에게 A2P(application-to-person) 알림을 배포할 수 있습니다. Amazon SNS에서 Email 수신인에게 메일로 알림을 보냅니다. 또한 부정적인 리뷰에 대해서는 이상 키워드를 사전에 등록하고, 해당 이상 키워드의 수가 기준치를 초과하는 경우 Amazon SNS를 활용하여 메일로 알림을 전달하여 이에 대해 담당자가 조기에 확인할 수 있는 기능을 구현하였습니다. 아래 사진에서는 부정 건수가 포함된 Email을 수신한 내용입니다.

마무리

다양한 채널에 올라오는 고객 리뷰를 모니터링하고 이를 분석 및 시각화해 의사 결정에 활용하는 것은 많은 기업에서 필요로 하는 내용입니다. 또한 식품 기업은 부정적인 리뷰나 위생 등 민감한 키워드에 빠르게 대응해 기업 및 브랜드 이미지를 관리하는 것이 무엇보다 중요합니다. 소수의 마케팅팀 혹은 PR팀 인력으로 이러한 내용을 모두 확인하고, 빠르게 대응하기에는 여러 어려운 점이 있습니다.

한글로 고객 의견이나 상품 리뷰를 감성 분석하여 신뢰도와 함께 반환해주는 Amazon Comprehend를 활용하여, 고객이 직접 AI 모델링과 같은 과정 없이 손쉽게 여러 소스들로부터 결과를 얻을 수 있습니다. 반복적으로 이루어져야 되는 이런 업무들을 Amazon EventBridge의 스케줄링 기능과 AWS Lambda function을 활용합니다. 시각화를 위해서 Amazon QuickSight를 통해 빠르게 비지니스 인사이트를 얻을 수 있게 하였고, 필요 시 Amazon SNS를 통해 알림을 받을 수 있습니다.

이렇게 프로비저닝이 필요 없는 서버리스 서비스들을 많이 적용하여 고객은 직접 인프라를 관리하는 관리 부담은 피하고, 필요로 하는 기능을 클라우드를 통해 가져갈 수 있습니다.

Jaemin Jung

Jaemin Jung

정재민 Solutions Architect는 고객이 AWS와 함께 성공적인 Cloud 여정을 시작하기 위해 최적의 아키텍트를 구성하고 지원하는 역할을 하고 있습니다.