안녕하세요, 여러분! 박비오입니다! 🚀
지난번 포스팅에서 DART OpenAPI를 활용한 Python 샘플 프로그램으로 데이터 수집의 가능성을 확인했었죠? 기억이 나지 않는다면 아래 링크에서 과거 포스팅을 다시 한 번 살펴보세요.
이번 포스팅에서는 프로젝트의 기술 스택 결정 과정과 아키텍처를 재구축하게 된 배경, 엔지니어로서 고민한 흔적들을 더 깊이 있게 나누려고 합니다.
처음 프로젝트를 시작할 당시, 저는 기존 내부 시스템이 Spring 기반의 .do 리퀘스트 구조로 이루어져 있어, 어떻게 하면 가장 효율적으로 DART 공시정보를 연동할 수 있을지 고민이 많았습니다. 특히 내부 인프라팀과 협력해야 하는 문제로 인해 기술적 선택에 더욱 신중할 수밖에 없었죠.
그래서 저는 크게 두 가지 접근법을 고려하게 됐습니다.
이 고민을 표로 정리하면 다음과 같습니다.
| 비교 항목 | FastAPI (분리형 서비스) | Spring Boot (기존 통합형 서비스) |
|---|---|---|
| 개발 속도 | 매우 빠름 (파이썬 기반 비동기 처리) | 비교적 느림 (자바 기반, 컴파일 필요) |
| 통합 용이성 | 추가 작업 및 협력 필요 | 기존 시스템과 즉시 통합 가능 |
| 유지보수 용이성 | 별도 서비스로 관리, 복잡성 증가 | 기존 시스템과 통합 관리 용이 |
| 내부망 제약 | 신규 서비스 설치 및 인프라 협력 필수 | 기존 인프라에서 즉시 실행 가능 |
| 공식 문서 | FastAPI 공식문서 | Spring 공식문서 |
이러한 깊은 고민 끝에, 결국 내부 시스템과의 완벽한 호환성과 유지보수 용이성을 이유로 Spring Boot 프레임워크로 재구축하기로 최종 결정했습니다.
이렇게 탄생한 jDart 프로젝트는 Spring Boot와 MyBatis를 이용해 구축되었습니다. 프로젝트는 고객카드 정보의 입력 및 저장 기능을 중심으로 하며, 경량의 H2 데이터베이스를 사용하여 빠른 구축과 운영이 가능합니다.
H2 데이터베이스는 자바 기반의 경량 RDBMS로, 별도의 설치 과정 없이 즉시 사용 가능하며 약 2MB의 작은 용량 덕분에 부담 없이 프로젝트에 통합할 수 있습니다.
앞으로의 프로젝트는 명확한 목표와 전문성을 기반으로 다음과 같이 진행될 예정입니다.
DART OpenAPI 데이터 파싱 및 자동 저장
최신 정보 크롤링 서비스 구축
생성형 AI를 활용한 자동화 보고서 서비스
이러한 단계적이고 체계적인 접근을 통해 고객사 관리 업무의 완전 자동화와 최적의 데이터 서비스를 실현하려고 합니다.
이번 포스팅은 저의 기술적 고민과 결정을 함께 공유하고, 프로젝트의 발전 방향을 더욱 명확히 전달하기 위한 자리였습니다. 기술적인 조언이나 아이디어가 있으시면 언제든지 댓글로 남겨주세요!
다음 포스팅에서 더 나아진 모습으로 찾아뵙겠습니다! 🌟