AWS 기술 블로그
AWS 기술 파트너와 함께 구축한 푸드테크 기업 식신의 Amazon Bedrock 기반 AI 대시보드 구축기
식신은 월간 350만 명의 사용자들이 이용하는 푸드테크 기업으로, 혁신적인 서비스를 통해 푸드테크 산업의 선두주자로 자리매김하고 있습니다. 식신이 제공하는 두 가지 주요 서비스를 소개합니다.
식신의 맛집 검색 서비스는 약 100만 개의 방대한 맛집 데이터를 기반으로 운영됩니다. 사용자들은 이 서비스를 통해 다양한 맛집을 검색하고, 리뷰를 읽고 작성하며, 사진을 확인할 수 있습니다. 이를 통해 고객들은 자신의 취향에 맞는 맛집을 쉽게 찾을 수 있으며, 식당들은 새로운 고객과 연결될 수 있는 기회를 얻고 있습니다.
식신의 ‘식신 e식권‘ 서비스는 일간 24만 명의 이용자가 사용 중인 혁신적인 기업용 모바일 식권 서비스입니다. 이 서비스를 통해 기업들은 직원들에게 편리한 식사 혜택을 제공할 수 있으며, 식당 운영자들은 새로운 고객을 유치하고 사업을 성장시킬 수 있는 기회를 얻고 있습니다.
프로젝트 소개
식신은 100만 개 이상의 맛집 데이터와 월간 350만명의 이용자들이 방문하는 데이터, 그리고 오랜 서비스 운영 경험을 바탕으로 트렌드를 반영한 메뉴 기반 인사이트 제공 서비스를 구축하고자 했습니다. 프로젝트의 주요 목표는 식신의 데이터와 다양한 이기종 데이터를 통합하여 더욱 매력적인 맛집 및 메뉴 추천 서비스를 제공하고, AI 모델의 해설 기능을 통해 데이터 인사이트 도출을 지원하는 것이었습니다. 이를 통해 지역 별 인기 메뉴, 스토리가 있는 메뉴 트렌드, 상황이나 장소에 맞는 테마 데이터, 메뉴 별 사용된 식자재 등의 데이터를 실시간으로 확인할 수 있는 분석형 대시보드, 컨텐츠형 위젯, API 등 다양한 형태의 컨텐츠로 제공하고자 했습니다.
이 프로젝트는 Amazon S3, Amazon Bedrock, 그리고 Snowflake 세 가지 주요 인프라를 활용하여 구축되었습니다. 특히 AWS 파트너 서비스인 Snowflake를 데이터 레이크로 활용하여 다양한 소스의 데이터를 효율적으로 통합하고 관리했습니다. 이렇게 통합된 데이터는 지속적으로 가공되어 생성형 AI 애플리케이션을 위한 기반이 됩니다. Amazon S3는 다양한 데이터의 저장과 관리를 담당하며, Snowflake 파이프라인 연계를 통해 데이터의 원활한 흐름을 보장합니다. 이 과정에서 축적된 데이터는 Amazon Bedrock의 LLM(대규모 언어 모델)을 활용한 맛집 및 메뉴 추천 서비스의 핵심 자원이 됩니다.
프로젝트의 또 다른 주요 특징으로는 Amazon Bedrock의 Claude 3.5 Sonnet 모델과 Streamlit in Snowflake 기능을 활용하여 조회 기간과 지역 정보를 필터링 후 해당 지역의 맞춤형 레스토랑 및 메뉴 추천, 컨설팅 리포트를 확인할 수 있게 한 점과, AI 모델의 해설 기능을 하나의 대시보드에 통합한 점을 들 수 있습니다. 이러한 기능들을 통해 사용자들은 보다 직관적이고 인사이트 있는 데이터 분석 결과를 얻을 수 있게 되었습니다.
파트너와의 협업: 솔루션 구축을 위한 협력 과정
프로젝트의 첫 발단은 AWS Unicorn Day 행사 참여에서 시작되었습니다. 이 행사에서 AWS 스타트업 어카운트 팀과의 미팅을 통해 우리는 프로젝트의 초기 아이디어를 공유할 수 있었습니다. 놀랍게도 현장에서 즉석으로 본격적인 개발 구축 논의를 위해 AWS의 파트너사인 Snowflake와 메가존클라우드와의 미팅이 성사되었습니다. 해당 미팅을 통해 우리는 관련 생성형 AI 아키텍처와 RAG 시스템에 대해 소개받을 수 있었고, Foundation Model(Claude 3.5 Sonnet)의 장단점과 차이점을 확인할 수 있었습니다.
이후 프로젝트는 AWS, 메가존클라우드, Snowflake 세 기업의 긴밀한 협력을 통해 진행되었습니다. 프로젝트의 주요 작업 목표는 크게 세 가지였습니다.
- Amazon Bedrock을 이용한 메뉴 및 식자재 키워드 추출
- Snowflake를 활용한 데이터 파이프라인 구축
- Amazon Bedrock과 Streamlit을 활용한 메뉴 랭킹 및 AI 대시보드 생성
메가존클라우드는 이 프로젝트의 데이터 파이프라인 구축을 주도했습니다. Snowflake의 데이터 플랫폼과 AWS의 Bedrock을 연계하여 LLM 기반 마케팅 솔루션을 위한 데이터 파이프라인을 구축했습니다. Snowflake는 LLM 애플리케이션 구성의 핵심적인 데이터 마련을 위해 Amazon S3에 수집된 방대한 데이터를 Snowflake에서 효율적으로 저장하고 분석할 수 있도록 지원했습니다. AWS는 Amazon Bedrock 서비스에 대한 기술 지원과 프롬프트 엔지니어링 검토를 통해 LLM 기능의 유연한 구현을 도왔습니다.
개발 리소스가 부족한 식신은 세 기업과의 협력을 통해 각 회사의 강점을 최대한 활용하여 효율적이고 안전하며 확장 가능한 LLM 기반 마케팅 솔루션 구축을 가속화할 수 있었습니다.
솔루션 구축 과정
위 아키텍처는 이번 프로젝트의 전체적인 아키텍처의 모습을 보여주고 있습니다. 식신의 자체 데이터베이스 데이터는 S3로 적재되고, 나머지 다양한 이기종 데이터는 Snowflake로 직접 적재됩니다. 프로젝트는 적재된 데이터를 Snowflake로 통합하여 처리하는 것을 목표로 진행되었습니다.
식신 자체 보유 데이터 통합 과정
먼저 식신 자체 보유 데이터 통합을 위해 Snowflake의 Task를 활용하여 지속적인 ETL 워크플로우를 구축했습니다. 식신 서비스의 데이터를 S3로 적재한 후, Snowflake의 S3 Stage로 연동하여 내부 테이블로 복사하는 일배치 task를 생성했습니다. 또한 Snowflake에서 제공하는 함수를 사용해 API 호출을 통해 금융 및 이커머스 정보를 수집하고, 이렇게 수집된 데이터를 Join 하여 통합 테이블을 만들었습니다.
아래 Snowflake task 코드는 S3에 저장된 CSV 파일의 데이터를 Snowflake의 ‘hotplace_detail’ 테이블로 복사하는 자동화된 ETL 프로세스 일부의 예시 코드입니다.
CREATE OR REPLACE TASK hotplace_detail
AFTER attach_file
AS
BEGIN
TRUNCATE TABLE "SIKSIN_POC"."TEMP_DATA".hotplace_detail;
COPY INTO "SIKSIN_POC"."TEMP_DATA".hotplace_detail
FROM @siksin_s3_stage/seeondb/hotplace_detail/LOAD00000001.csv
FILE_FORMAT = (
TYPE = 'CSV',
FIELD_OPTIONALLY_ENCLOSED_BY = '"',
ERROR_ON_COLUMN_COUNT_MISMATCH = FALSE
)
ON_ERROR = 'CONTINUE';
END;
Snowflake의 공식 문서에서 Amazon S3에 저장된 데이터를 Snowflake로 효율적으로 복사하는 방법에 대한 자세한 가이드를 확인할 수 있습니다. 이 과정에 대한 상세한 단계와 모범 사례를 참고하시면 데이터 이전 작업을 원활하게 수행할 수 있습니다.
GA(Google Analytics) 데이터 통합 과정
GA 데이터는 방문자 정보, 유입 경로, 웹사이트 내 사용자 행동, 그리고 전환에 이르는 방대한 사용자 행동 데이터를 수집합니다. 이 프로젝트에서는 Snowflake의 GA Connector를 활용하여 이러한 데이터를 효율적으로 처리했습니다. GA Connector를 통해 이벤트 수준의 데이터가 Snowflake 계정에 자동으로 수집되어, 사용자 행동 분석, 방문자 수 추적, 페이지 조회수 분석 등이 가능합니다.
구체적으로 GA Connector를 8시간 간격으로 Snowflake와 동기화하도록 설정했습니다. 이렇게 수집된 raw 데이터에서는 각 주요 event의 매트릭을 추출하여 대시보드에 활용했습니다. 이를 통해 실시간에 가까운 데이터 업데이트와 함께, 사용자 행동에 대한 인사이트를 얻을 수 있었습니다.
아래 Snowflake task 예시는 GA 데이터를 처리하여 페이지 뷰 이벤트를 집계하는 예시 코드입니다.
CREATE OR REPLACE TASK SIKSIN_POC.TEMP_DATA.GA_PROCESSING_EVENT_CNT
WAREHOUSE = COMPUTE_WH
AFTER SIKSIN_POC.TEMP_DATA.GA_PROCESSING
AS
INSERT INTO SIKSIN_POC.SIKSIN_DATA.GA_EVENT_CNT
WITH page_view_events AS (
SELECT
CAST(SUBSTRING(REGEXP_SUBSTR(PARSE_JSON(raw):event_params::string, '/P/(\d+)'), 4) AS INT) AS PID,
PARSE_JSON(raw):event_date::string as EVENT_DATE,
TO_CHAR(DATE_TRUNC('HOUR', TO_TIMESTAMP(PARSE_JSON(raw):event_timestamp::varchar)), 'YYYY-MM-DD HH24') AS EVENT_TIMESTAMP
FROM
SIKSIN_POC.GA_SIKSIN.ANALYTICS_INTRADAY_250897549
WHERE
SOURCE_TABLE_DATE >= current_date - 1
AND PARSE_JSON(raw):event_name::string = 'page_view'
AND REGEXP_SUBSTR(PARSE_JSON(raw):event_params::string, '/P/(\d+)') IS NOT NULL
)
SELECT
pv.PID,
pv.EVENT_DATE,
pv.EVENT_TIMESTAMP,
'page_view' AS EVENT_NAME,
COUNT(*) AS EVENT_CNT
FROM
page_view_events pv
GROUP BY
pv.PID,
pv.EVENT_TIMESTAMP,
pv.EVENT_DATE;
LLM 파이프라인 통합 과정
Amazon Bedrock의 Anthropic Claude 3.5 Sonnet 모델을 활용하여 데이터 재활용이 가능한 프로세스를 구성했습니다. 이 과정에서 Snowflake의 데이터를 요약하고 키워드를 추출하는 작업을 총 두 번의 LLM 호출을 통해 수행했습니다. 프로세스에는 세 가지 주요 데이터 소스가 사용되었습니다:
- 식신 소개글, 리뷰글 데이터(매장 PID)
- 식신 매거진데이터(매장키워드)
- ST_MENU_INFO 테이블 데이터 (매장별 메뉴 데이터)
첫 번째 LLM 호출에서는 이 데이터를 바탕으로 메뉴의 식재료와 식당의 키워드 데이터를 새롭게 생성합니다. 생성된 결과는 S3에 저장되며, 키워드 데이터만 추출하여 Snowflake의 LLM_KEY 테이블에 적재됩니다.
두 번째 LLM 호출에서는 첫 번째 호출에서 식신에서 보유한 데이터를 활용하여 동일한 작업을 수행합니다. 이 과정에서 1차 LLM 호출 결과물보다 더욱 정제된 결과를 얻을 수 있었습니다. 중요한 점은 LLM 호출을 꼭 1회만 호출하지 않아도 된다는 점입니다. 좋은 품질의 결과를 위해서라면 다양한 모델의 장단점을 살리고, N회 호출 과정에서의 프롬프트 변화를 통해 결과물 품질을 높일 수 있습니다.
각 LLM 호출 시 사용된 프롬프트 메시지와 생성된 데이터는 S3와 Snowflake 테이블에 모두 저장됩니다. 최종적으로 생성된 키워드 데이터는 대시보드를 위한 통합 테이블에 추가되어 분석에 활용됩니다. 사용된 프롬프트 메시지를 저장한 이유는 프롬프트와 결과물을 향후 비교해서 자체적으로 결과물 품질을 분석을 하기 위함입니다.
LLM 호출 과정은 Python 코드를 통해 구현되었으며, 응답 데이터는 JSON 형식으로 파싱되어 처리됩니다. 이 과정을 통해 데이터를 기반으로 각 매장에 대한 키워드와 메뉴별 키워드 데이터가 생성됩니다. 이렇게 생성된 데이터는 프로젝트의 분석과 인사이트 도출에 중요한 역할을 합니다.
아래 예시는 Amazon Bedrock의 Claude 3.5 Sonnet 모델을 호출하여 응답을 받고, 받은 응답에서 JSON 형식의 데이터를 추출하는 과정을 수행합니다. LLM에 프롬프트를 전송하고 받은 응답에서 정규표현식을 사용해 JSON 데이터를 파싱한 후, 이를 문자열로 변환하여 저장합니다.
##call bedrock
body = json.dumps(prompt_config)
modelId = "anthropic.claude-3-5-sonnet-20240620-v1:0"
accept = "application/json"
contentType = "application/json"
response = bedrock_runtime.invoke_model(
body=body, modelId=modelId, accept=accept, contentType=contentType
)
#parse llm response
response_body = json.loads(response.get("body").read())
results = response_body.get("content")[0].get("text")
json_regex = r'\s*(\{[\s\S]*?\}\s*\})'
match = re.search(json_regex, results)
if match:
json_str = match.group(1)
temp_json = json.loads(json_str)
llm_data = json.dumps(temp_json, ensure_ascii=False)
else:
print("No JSON content found.")
위 예시 코드로 생성되는 데이터는 아래 이미지와 같습니다. 매장별 소개,리뷰,매거진,메뉴 데이터를 기반으로 매장과 메뉴에 대한 키워드 데이터가 생성된 것을 확인할 수 있습니다.
LLM 기반 AI 대시보드 구축 과정
이 프로젝트에서는 Streamlit in Snowflake 기능을 활용하여 AI 대시보드를 구축했습니다. Streamlit은 데이터 처리와 분석을 위한 강력한 대시보드 도구로, Snowflake가 인수하여 기본 기능으로 내재화했기 때문에 별도의 비용 없이 사용할 수 있다는 점이 큰 강점입니다. 또한 실제 프로덕션 서비스 개발 이전에 개념 증명(PoC)을 위한 대시보드 개발에 큰 기술적 어려움 없이 개발이 가능합니다. 특히 Snowflake를 사용하는 상황에서 Streamlit in Snowflake 기능은 애플리케이션 코드를 외부 시스템으로 이동하지 않아 안전하고 신속한 대시보드 개발, 배포, 공유가 가능했습니다.
다만 Streamlit in Snowflake 내에서는 바로 Bedrock을 호출할 수 없었습니다. 그 이유는 Streamlit 에서 import 할 수 있는 패키지 제한이 있었기 때문입니다. 따라서 Bedrock을 호출하는 UDF Function을 생성한 이후에 Streamlit 내에서 해당 UDF Function을 호출하도록 코드를 구성했습니다. Bedrock을 호출할 때, LLM에게 통계 데이터를 제공하여 이 데이터에 대한 요약 그리고 추가 인사이트를 제공해달라고 요청했습니다.
아래는 AI 대시보드를 구현한 일부 샘플 코드입니다.
# Create a dataframe with the prompt
df = session.create_dataframe([prompt], schema=["prompt"])
# Call the Bedrock UDF and get the result
result_df = df.select(
call_udf("SIKSIN_POC.LLM_DATA.CALL_BEDROCK_STREAM", lit(df["prompt"])).alias("result")
)
result_string = result_df.collect()[0]["RESULT"]
# Create a placeholder for the streaming text
response_placeholder = st.empty()
full_response = ""
# Simulate streaming of the response
for chunk in result_string.split('|||||'):
full_response += chunk
response_placeholder.markdown(full_response + "|")
time.sleep(0.05) # Add a small delay to simulate streaming
# Display the final response
response_placeholder.markdown(full_response)
대시보드는 식신의 통합 데이터를 시각화하고, 필터링된 데이터를 LLM에 전달하여 요약 및 추가 인사이트를 제공하도록 구성했습니다. 사용자가 기간별, 지역별 필터를 설정하면 Snowflake 테이블에서 해당 조건에 맞는 데이터를 조회합니다. 이 데이터는 각 매장의 업종, 위치 등에 대한 정보를 포함합니다. 조회된 테이블 데이터를 바탕으로 메뉴별 가중치를 계산하여 최종 메뉴 랭킹 테이블을 생성했습니다. 이 랭킹 테이블은 특정 기간에 대한 지역별 인기 메뉴를 보여주는 중요한 지표로 대시보드에 표시됩니다.
대시보드의 주요 기능 중 하나인 AI 분석 버튼을 누르면, 필터링된 데이터를 기반으로 프롬프트 메시지를 작성하여 Amazon Bedrock을 호출하는 Function이 실행됩니다. 이 Function의 반환값으로 필터링된 데이터의 요약과 인기 있는 음식 등의 추가 인사이트가 대시보드에 출력됩니다. 이를 통해 사용자는 데이터에 대한 더 깊이 있는 이해와 통찰을 얻을 수 있습니다.
LLM 모델들은 빠르게 새로운 버전이 출시되고 있으며 Amazon Bedrock 서비스는 Llama, Claude, Mistral 등 새롭게 발표되는 모델을 빠르게 추가하고 있습니다. 이런 새로운 모델은 통계 데이터에 대한 요약이나 인사이트 도출의 품질을 획기적으로 개선하고 있습니다. Amazon Bedrock의 장점은 새롭게 개선된 모델을 사용자 코드에서 모델명을 교체하는 정도로 손쉽고, 빠르게 교체할 수 있다는 점입니다. 식신도 이러한 Bedrock의 장점을 활용해 다양한 모델을 테스트하고 Claude 3.5 Sonnet 모델처럼 새롭게 발표된 주요 LLM 모델을 출시 즉시 테스트하여 성능을 비교하고 적용할 수 있었습니다.
트러블슈팅
식신 통합 데이터 구성
식신 데이터 통합 프로젝트에서 가장 큰 도전 과제는 통합할 데이터의 종류와 수량이 많아 식신 데이터에 대한 깊은 이해가 필요했다는 점과 데이터 통합의 순서를 결정하는 것이었습니다. 이를 해결하기 위해 우리는 작업 플로우를 명확히 구분하고 순차적으로 통합을 진행했으며, Snowflake의 Worksheet와 Notebook을 활용하여 각 플로우를 효율적으로 구현했습니다.
GA 데이터의 경우, 약 4년간의 방대한 데이터(20억 행)를 처리해야 했습니다. 이를 위해 Snowflake Connector를 활용하여 데이터를 로드하고, 스케줄링을 통해 최신 데이터를 지속적으로 추가하는 시스템을 구축했습니다. Snowflake GA Connector의 raw 데이터를 자동으로 뷰 테이블로 전환해주는 기능은 데이터 가공 과정에서 큰 도움이 되었습니다.
금융 데이터는 현재 Snowflake internal stage로 로드하고 있으나, 향후 모든 데이터를 AWS S3에 적재할 계획입니다. 이러한 다양한 데이터 소스를 매장 ID를 기준으로 통합하여 최종 식신 통합 데이터를 구축하였고, 모든 프로세스가 일간으로 자동 처리되도록 구성했습니다.
데이터 통합 과정에서 중복 데이터 문제가 발생했습니다. 동일한 가게 정보(PID)를 가지고 있지만 사업자 번호가 여러 개인 데이터로 인해 PID 기준으로 조인했을 때 통합 테이블에서 중복 데이터가 생기는 문제였습니다. 이를 해결하기 위해 Snowflake task 기능을 활용했습니다. 중복 데이터를 제거하는 쿼리를 실행한 후 join 쿼리가 실행되도록 프로시저를 개발하여 주기적으로 실행하도록 했습니다. 이 과정을 통해 주기적으로 적재되는 데이터를 효율적으로 처리하고, 데이터 클린징을 자동화할 수 있었습니다.
LLM 애플리케이션을 위한 프롬프트 엔진어링 과정
데이터 분할 처리 및 통합 자동화를 위해, 소스 데이터를 매장별, 메뉴별로 적절히 분할하여 인풋 데이터를 생성하고 LLM을 통해 키워드를 추출하는 방식을 채택했습니다. 자동화를 위해 가장 중요했던 것은 출력 결과물을 JSON 형식으로 추출하고 JSON 내의 데이터 스키마를 일관성 있게 생성하는 것이었습니다. Amazon Bedrock은 결과물의 형태를 json 형태로 지정하는 설정이 별도로 있지 않기 때문에 각 모델에서 제공하는 문서를 참고하여 일관된 형태의 JSON 결과물을 얻을 수 있도록 프롬프트 엔지니어링 과정이 필요합니다. 또 자동화를 위해 매장 ID를 파일명으로 한 JSON 파일로 저장하고, 해당 파일을 식신 데이터의 매장 ID와 비교하여 통합할 수 있게 하였습니다. 소스 데이터의 종류에 따라 키워드 추출에 사용되는 프롬프트를 확인하고 수정할 수 있도록 결과물과 프롬프트 모두를 S3에 저장하였습니다.
또한 LLM을 이용하여 키워드 추출하는 과정에서 중요한 부분은 두 가지였습니다.
- 첫째, 매장의 메뉴별 기본 재료와 소스 재료를 구분하는 것
- 둘째, 입력 데이터에 포함된 음식 관련 내용 중 메인 메뉴에 대한 키워드를 구분하는 것
보통 한국 음식점에서는 메인 메뉴에 밑반찬이 곁들여 제공되기 때문에 프롬프트에 식신이 보유한 데이터 일부를 컨텍스트에 포함시켜 밑반찬에 대한 내용을 LLM이 문맥을 통해 파악하여 제외하도록 하였습니다. 이렇게 구성한 프롬프트는 Amazon Bedrock에서 제공하는 각 모델을 테스트한 결과, 다른 모델에 비해 Claude 3.5 Sonnet 모델의 결과물이 품질이 좋은 것을 확인할 수 있었습니다.
정리하자면 자동화를 위해 일관된 포맷의 결과물을 만들고, 높은 품질의 키워드 추출을 위한 방법 등 프롬프트 엔지니어링 방법을 고민해야 했고, LLM 결과물을 이후에 다른 데이터와 통합하고, 지속적으로 품질을 비교하기 위한 효율적인 저장 방법도 고민해야 했습니다.
Streamlit 대시보드 구성 과정
Streamlit 대시보드 구성 과정에서 가장 큰 문제는 최종 통합테이블이 너무 크게 생성되어 Streamlit에서 데이터를 처리하지 못하는 것이었습니다. GA 데이터와 식신 통합데이터를 join했을 때 생성되는 전체 5GB 데이터를 가져와서 대시보드에서 쿼리하여 처리하려고 했지만, Streamlit은 32MB 이상의 데이터를 메모리에 올릴 수 없어 에러가 발생했습니다.
이 문제를 해결하기 위해 접근 방식을 변경했습니다. 전체 5GB 데이터를 한 번에 가져오는 대신, Streamlit에서 조회될 데이터에 대한 필터링을 먼저 수행하여 데이터를 최대한 잘게 나누어 조인하는 방식으로 변경했습니다. 이를 통해 필요한 데이터만을 작은 단위로 가져와 메모리 부담을 줄이고, 쿼리 결과도 빠르게 출력할 수 있었습니다.
이러한 방법을 통해 데이터 처리 성능을 최적화하고, Streamlit의 메모리 제한을 효과적으로 관리할 수 있었습니다. 결과적으로 사용자가 빠르게 대시보드를 탐색할 수 있도록 하여 사용자 경험을 크게 개선할 수 있었습니다.
마무리
이번 프로젝트는 스타트업이 AWS와 파트너사를 활용하여 혁신적인 솔루션을 신속하게 개발할 수 있음을 보여준 좋은 사례입니다. 식신은 AWS, 메가존클라우드, Snowflake와의 긴밀한 협력을 통해 생성형 AI 기반의 ‘AI 외식메타 인덱스’를 구축의 첫 단계를 성공적으로 마무리할 수 있었습니다.
이 과정에서 AWS의 스타트업 지원 프로그램은 매우 중요했습니다. 식신은 지원 프로그램을 통해 기술 지원을 포함하여 프로젝트 진행에 필요한 비용 혜택까지 받을 수 있었습니다. 만약 생성형 AI를 도입하고자 할 때 스타트업이 가진 어려움 때문에 고민하고 있다면, AWS와 기술 파트너사의 지원을 받을 수 있는 방법을 적극적으로 알아보는 것이 필요합니다. 아래는 식신이 AWS와 파트너사의 지원을 받을 수 있었던 방법을 정리한 것입니다.
- 다양한 AWS 행사에 참여하여 비즈니스 혁신을 위한 새로운 AWS 서비스와 기술 동향 확인
- AWS 행사 현장에서 담당 AM, SA, PSA 혹은 AWS 지원 부스와 기술 파트너 부스에 상담 요청
- AWS 및 기술 파트너의 고객 지원 프로그램 알아보기
식신은 앞으로 AWS와 파트너사의 지속적인 지원 하에 매장별 메타데이터의 가공과 Snowflake와의 통합 데이터 파이프라인을 강화할 계획입니다. 특히 메뉴별 식자재 키워드, 매장 서비스 정보, 방문 고객 정보, 방문 이유 등 다양한 데이터를 지속적으로 파이프라인에 포함시켜 더욱 정교한 인사이트를 제공할 예정입니다. 이러한 성공적인 협업 모델은 푸드테크 산업 발전의 새로운 이정표가 될 것으로 기대되며, 식신은 고객들의 데이터 기반 전략적 의사결정을 적극 지원할 것입니다.