데이터 기반 애플리케이션을 구축하는 과정은 많은 도전 과제를 동반합니다. 데이터 수집, 저장, 변환, 분석, 그리고 시각화까지의 과정은 일반적으로 다양한 도구와 기술을 필요로 하며, 이로 인해 개발 과정이 복잡해지고 유지보수 부담이 커질 수 있습니다.
Preswald는 이러한 문제를 해결하기 위해 설계된 오픈 소스 풀스택 데이터 애플리케이션 플랫폼입니다. 간결한 Python 및 SQL 코드만으로 데이터 애플리케이션을 구축할 수 있도록 도와주며, 데이터 엔지니어, 분석가, 그리고 머신러닝 엔지니어들에게 유용한 도구입니다.
Preswald란 무엇인가?
Preswald는 엔드 투 엔드(End-to-End) 데이터 애플리케이션 구축을 위한 경량 SDK입니다.
주요 특징을 한 문장으로 정리하자면 데이터 수집부터 시각화까지의 과정을 단순화하여 빠르고 효율적인 개발을 가능하게 하는 도구입니다.
기존의 데이터 애플리케이션 구축 과정에서는 여러 도구가 필요합니다. 예를 들면,
• 데이터 수집 및 저장: PostgreSQL, MySQL, MongoDB 등
• 데이터 변환(ETL): Apache Airflow, DBT, Pandas
• 데이터 분석 및 시각화: Streamlit, Dash, Power BI, Tableau
이처럼 다양한 기술이 필요하지만, Preswald는 이 모든 기능을 하나의 프레임워크에서 제공하여 개발자의 부담을 줄이고, 더 빠른 프로토타이핑과 배포를 가능하게 합니다.
Preswald의 주요 기능
1. 간단한 코드로 강력한 애플리케이션 구축
Preswald는 Python 및 SQL 기반으로 동작합니다.
복잡한 설정 없이 몇 줄의 코드만으로 데이터 애플리케이션을 만들고 실행할 수 있습니다.
예를 들어, Pandas 데이터프레임을 활용하여 간단한 대시보드를 만들고 싶다면 다음과 같이 쉽게 구현할 수 있습니다.
import preswald as pw
import pandas as pd
# 데이터 로드
df = pd.read_csv(“data.csv”)
# 애플리케이션 생성
app = pw.App()
@app.route(“/”)
def show_data():
return pw.Table(df)
# 실행
app.run()
이렇게 몇 줄의 코드만으로 데이터를 쉽게 시각화할 수 있습니다.
2. 엔드 투 엔드 데이터 파이프라인 제공
Preswald는 데이터의 수집 → 저장 → 변환 → 분석 → 시각화까지의 전체 과정을 하나의 플랫폼에서 제공합니다.
이를 통해 여러 개의 도구를 따로 설정할 필요 없이 하나의 프레임워크에서 손쉽게 데이터 흐름을 관리할 수 있습니다.
3. 다양한 데이터 소스 연결 지원
Preswald는 다양한 데이터 소스를 지원합니다.
• CSV, JSON, Parquet 파일 불러오기
• PostgreSQL, MySQL, SQLite 등 SQL 데이터베이스 연결
• API를 통한 데이터 수집
예를 들어, PostgreSQL에 저장된 데이터를 가져와서 애플리케이션에서 사용할 수 있습니다.
from preswald.connectors import SQLConnector
# PostgreSQL 연결
db = SQLConnector(“postgresql://user:password@localhost:5432/mydb”)
# 쿼리 실행
df = db.query(“SELECT * FROM my_table”)
# 데이터 출력
print(df)
SQL 쿼리 한 줄이면 데이터베이스에서 데이터를 불러와 활용할 수 있습니다.
4. 손쉬운 배포 및 운영
Preswald는 로컬 개발 환경뿐만 아니라, 클라우드에서도 쉽게 배포할 수 있는 기능을 제공합니다.
특히 Google Cloud Run과 같은 서버리스 환경과의 통합이 쉬워, 인프라 부담 없이 바로 서비스를 배포할 수 있습니다.
배포는 단 한 줄의 명령어로 가능합니다.
preswald deploy –target gcloud
이를 통해 빠른 개발 → 프로덕션 배포까지의 시간을 획기적으로 단축할 수 있습니다.
Preswald 사용법
1. 설치
Preswald는 Python 패키지로 제공되며, 아래 명령어로 간단히 설치할 수 있습니다.
pip install preswald
2. 프로젝트 초기화
프로젝트를 시작하려면 preswald init 명령어를 사용하면 됩니다.
preswald init my_project
cd my_project
이렇게 하면 프로젝트 폴더가 생성되며, 기본적인 설정 파일들이 포함됩니다.
3. 애플리케이션 개발
이제 app.py 파일을 열어 간단한 애플리케이션을 만들어보겠습니다.
import preswald as pw
app = pw.App()
@app.route(“/”)
def home():
return “Hello, Preswald!”
app.run()
위 코드를 실행하면 로컬 서버에서 애플리케이션이 동작하며, 브라우저에서 http://localhost:8501에 접속하면 결과를 확인할 수 있습니다.
4. 데이터 시각화
Preswald는 기본적으로 테이블, 그래프 등의 시각화 기능을 지원합니다.
예를 들어, Pandas 데이터프레임을 바로 테이블 형태로 출력할 수 있습니다.
import preswald as pw
import pandas as pd
app = pw.App()
# 샘플 데이터
df = pd.DataFrame({
“이름”: [“김철수”, “이영희”, “박민수”],
“나이”: [25, 30, 35]
})
@app.route(“/”)
def show_table():
return pw.Table(df)
app.run()
Preswald를 사용해야 하는 이유
Preswald는 다음과 같은 상황에서 특히 유용합니다.
1. 데이터 애플리케이션을 빠르게 구축하고 싶은 경우
• 기존의 Streamlit, Dash 등과 비슷한 기능을 제공하면서도 더 가벼운 SDK 기반
2. 복잡한 데이터 파이프라인을 단순화하고 싶은 경우
• SQL, Pandas 등을 활용한 ETL/ELT 처리를 쉽게 구현
3. 클라우드 배포가 쉬운 경량화된 애플리케이션이 필요한 경우
• 단일 명령어로 Google Cloud Run 배포 가능
결론
Preswald는 Python 및 SQL 기반으로 데이터 애플리케이션을 쉽고 빠르게 구축할 수 있는 오픈 소스 풀스택 플랫폼입니다.
데이터 수집부터 시각화까지의 전 과정을 하나의 SDK에서 처리할 수 있도록 설계되어 있어, 데이터 분석가 및 개발자들이 더 효율적으로 일할 수 있도록 도와줍니다.
현재 오픈 소스 프로젝트로 활발히 개발 중이며, GitHub 공식 저장소를 통해 직접 사용해볼 수 있습니다.
앞으로도 더 많은 기능이 추가될 예정이니, 데이터 애플리케이션 개발을 고려하고 있다면 Preswald를 한 번 시도해보세요!