비슷한 차트 검색기
전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?
www.similarchart.com
서비스는 완성했지만..
저는 '비슷한 차트 검색기 - 주가 예측' 서비스를 개발하고 운영하고 있습니다. 서비스는 현재 원활하게 돌아가고 있지만, 비용 절감과 유지보수성 향상을 위해 더 나은 기술이나 아키텍처가 없을지 계속 고민 중입니다. 그러던 중, 데이터 엔지니어링과 관련된 도구들을 탐구하면서 Apache Airflow라는 도구를 알게 되었습니다.
Airflow는 배치 작업 및 데이터 파이프라인 자동화에 최적화된 도구라고 하여 제 서비스에도 적합할 것 같았습니다. 현재 주기적으로 배치 작업을 수행하는 구조이기 때문에 이를 좀 더 효율적으로 관리할 수 있을지 기대하며 Airflow에 대해 알아보기 시작했습니다.
Airflow?
Airflow는 파이썬 기반의 유연한 프레임워크로, 복잡한 데이터 파이프라인을 쉽게 구축하고 관리할 수 있도록 돕습니다. 센서, 트리거, 외부 시스템과의 통신 등 데이터 파이프라이닝 개발 시 발생하는 수많은 요구사항들을 위한 솔루션이 잘 되어있었습니다.
Airflow의 가장 큰 장점 중 하나는 파이썬 코드와의 호환성이 뛰어나다는 점입니다. 이를 통해 데이터 수집, 처리, 분석의 전 과정을 파이프라인으로 정의하고 실행할 수 있습니다.
책을 읽기 전에 예상하기로는 특정 로직을 airflow 에서 제공하는 도구로 감싸 다양한 파이프라이닝 작업을 할 수 있게 해주는 것이 아닐까 생각했는데 역시 그렇더군요. 예상했던 것과 크게 다르지 않아 책을 읽는 것이 수월했습니다.
특히, Airflow는 다양한 Operator를 제공하여 데이터 파이프라인의 각 단계를 쉽게 조작할 수 있게 해 줍니다. 특히 제 서비스와 관련이 깊은 PythonOperator, MySQLOperator, DockerOperator 등이 눈에 들어오네요.
이렇게 책을 전체적으로 한번 쭉 보고 어떤 기능들이 있는지 빠르게 둘러보았습니다. 아직은 조금 막막하지만 직접 개발하면서 배우는 것이 제일 효과가 좋은 것 같습니다.
Airflow 도입 시의 고민
Airflow를 실행하고 바로 확인해 본 것은 메모리 사용량입니다. 현재 제 서비스는 저비용 EC2 인스턴스에서 운영 중인데, 가용 메모리가 2GB 정도의 가상메모리로 매우 한정적입니다. Airflow의 scheduler 컨테이너는 약 500MB의 메모리를 사용하지만, webserver는 1GB 이상의 메모리를 차지합니다. 웹서버 없이도 CLI로 Airflow를 사용할 수 있지만, UI를 포기하는 것은 아쉬운 부분입니다.
또한, Airflow 도입 후 데이터 파이프라인을 어떻게 설계할지도 중요한 고민입니다. 기존 시스템을 리팩토링하면서 파이프라인의 구조를 재설계해야 하며, 이는 시간이 걸릴 수 있습니다.
예를 들어 제 기존 컨테이너는 주식 데이터 ETL작업에 더해 비슷한 차트를 탐색하는 작업도 같이 존재합니다. 기존에 시용하던 cron 작업은 실행 시간만 지정해 줄 뿐, 두 컨테이너를 순차적으로 실행하지는 못했는데, Airflow를 활용하면 둘을 분리하여 다른 컨테이너로 만들고 순차적으로 실행하게 만들 수 도 있겠네요.
일단 해보자
우선 개발 환경에서 Airflow를 다루며 이것저것 테스트하면서 실험을 진행해 볼 계획입니다. Airflow의 기능과 성능을 충분히 검토한 후, 서비스에 적용할 수 있을지 결정할 예정입니다.
'프로젝트' 카테고리의 다른 글
프로젝트31. 누군가 내 서비스를 망치려고 한다.. 어떻게 막을까? (1) | 2024.09.24 |
---|---|
프로젝트29. 6달 동안 서비스를 운영하며 식겁했던 순간 (0) | 2024.08.13 |
프로젝트28. 정확도 60%↑? 모두가 4달동안 보는 앞에서 주가 예측 성공! (0) | 2024.07.17 |
프로젝트27. 앱 배포 완료! 이제 나도 웹사이트, 앱 오너! (0) | 2024.06.18 |
프로젝트26. 어라..? 나 프론트엔드 좋아할지도..? (0) | 2024.05.29 |