서비스 개발 배경
낮은 해외 진출률:
한국 스타트업의 해외 진출률은 약 7%로 매우 낮으며 많은 스타트업이 자금과 인력이 부족하여 해외 진출에 어려움을 겪고 있음.
정보 부족:
해외 진출 시 가장 큰 어려움으로 시장 정보 부족(41.1%)이 지적하고 있음, 많은 스타트업이 필요한 정보를 얻기 어려워 해외 진출을 포기하는 경우가 발생.
기술 규제 증가:
무역기술장벽(TBT)으로 인한 무역상의 기술적 장애요소가 증가, 이를 해결하기 위한 정보가 필요.
정부의 지원:
정부와 투자기관은 스타트업의 해외 진출을 지원하기 위해 다양한 프로그램을 제공하고 있으나, 비용적인 문제와 진입 장벽으로 실제. 로 이를 활용하는 스타트업은 소수.
서비스 개요
스타트업 & 중소기업의 해외진출 활성화를 위한 RAG기반 AI 어시스턴트
- 스타트업의 해외 진출 어려움 요소 '시장 정보부족' 문제를 해결하고 RAG 기반 정보 검색 서비스 제공
- 신뢰할 수 있는 정보 출처(인도 무역청, 인도 특허청, KOTRA 등) 기반의 자료를 사용하고 출처까지 조회할 수 있음으로 신뢰성 확보
Apache-Airflow 도입배경
Apache-Airflow란?
초기 에어비엔비(Airfbnb) 엔지니어링 팀에서 개발한 워크플로우(e.g) ETL 파이프라인) 오픈 소스 플랫폼, 추후에 Apache 산하로 들어가게 됨으로 Apache-Airflow로 명칭이 바뀌게 됨
(1) Airflow Key Concept
DAG ? (Directed Acyclic Graph) - 방향이 있는 순환되지 않는 그래프
- 워크플로우를 제어하는 기본 단위 (하나의 워크플로우 = 하나의 DAG)
- 반복이나 순환을 허용하지 않는다.
- DAG는 Task로 이루어져 있으며 각 task는 순환되는 구조로 연결될 수 없음
Operator? (각 테스크를 정의)
- Action Operators
- 기능이나 명령을 실행하는 오퍼레이터
- 실제 연산을 수행, 데이터 추출 및 프로세싱
- (참고) 내장 Operators는 BashOperator, PythonOperator, EmailOperator
- 이외의 오퍼레이터는 공식 documnet 참고 (링크)
Transfer Operater
- 하나의 시스템을 다른 시스템으로 옮김 (데이터를 Source에서 Destination으로 전송 등 )
- 예를 들어, Presto에서 MySQL로 데이터를 전송하는데에 사용
Sensor Operators
- 조건이 만족할 때까지 기다렸다가, 조건이 충족되면 다음 Task를 실행시킴
Task과 Operator는 비슷한 용어로 사용될 수 있는데, 개발자가 정의한 Task를 Operator가 실행시킨다! 라고 이해하는 편이 용이
- Operator가 Trigger(수동, 주기적)로 인해 실행되면 Task가 되는 형식, 이 때 실행된 Task를 Task Instance라고 함
(각 테스크는 binary right shift Operator에 의해서 의존성을 정의한다.)
(2) Airflow component
웹서버 : 웹 대시보드 UI로 스케줄러에서 분석한 Dag를 시각화하고 DAG 실행과 결과를 확인할 수 있는 인터페이스를 제공함
스케줄러 : DAG를 분석하고 현재 시점에서 Dag의 스케줄이 지난 경우 airflow worker에 DAG의 태스크를 예약함
Worker : 예약된 태스크를 실제로 실행시키는 것
Executor : 태스크가 어떻게 실행되는지 정의
3) Airflow 기본 동작 원리
- 유저가 새로운 Dag를 작성 → Dags Foolder 안에 py 파일 배치
- Web Server와 Scheuler가 파싱하여 읽어옴
- Scheduler가 Metastore를 통해 DagRun 오브젝터를 생성함
- DagRun은 사용자가 작성한 Dag의 인스턴스임
DagRun Status : Running
- 스케줄러는 Task Instance Object를 스케줄링함
- Dag Run object의 인스턴스임
- 트리거가 상황이 맞으면 Scheduler가 Task Instance를 Executor로 보냄
- Exeutor는 Task Instance를 실행시킴
- 완료 후 → MetaStore에 완료했다고 보고함
- 완료된 Task Instance는 Dag Run에 업데이트됨
- Scheduler는 Dag 실행이 완료되었는지 Metastore를 통해 확인 후에 Dag Run의 생태를 완료로 바꿈
DagRun Status : Completed
- Metastore가 Webserver에 업데이트해서 사용자도 확인