// education

풀스택 AI 애플리케이션 구축 및 클라우드 배포 종합 실습

배운 모든 생성형 AI 기술, 바이브 코딩, 프론트엔드 UI 및 백엔드 데이터베이스를 결합하여 완벽한 풀스택 AI 서비스를 제작하고 글로벌 클라우드에 라이브 배포합니다.


1. 클라우드 배포 전문 용어 사전 (Glossary)


2. Streamlit 파이썬 풀스택 AI 챗봇 완성 코드

import streamlit as st
from openai import OpenAI

# 1. 페이지 타이틀 및 메타 레이아웃 설정
st.set_page_config(page_title="DAVHAVE AI 비서", page_icon="🤖", layout="centered")
st.title("🤖 DAVHAVE 스마트 풀스택 AI 비서")

# 2. 사이드바 API 키 입력
with st.sidebar:
    st.header("⚙️ 서비스 설정")
    user_api_key = st.text_input("OpenAI API Key", type="password")
    selected_model = st.selectbox("AI 모델 선택", ["gpt-4o-mini", "gpt-4o"])

# 3. 대화 세션 이력 초기화
if "messages" not in st.session_state:
    st.session_state["messages"] = [
        {"role": "assistant", "content": "안녕하세요! DAVHAVE 풀스택 AI 비서입니다. 무엇을 도와드릴까요?"}
    ]

# 4. 이전 대화 화면 렌더링
for msg in st.session_state.messages:
    st.chat_message(msg["role"]).write(msg["content"])

# 5. 사용자 입력 수신 및 AI 응답 렌더링
if prompt := st.chat_input("질문을 입력하세요..."):
    if not user_api_key:
        st.error("사이드바에 API 키를 입력해 주세요!")
        st.stop()

    client = OpenAI(api_key=user_api_key)
    
    st.session_state.messages.append({"role": "user", "content": prompt})
    st.chat_message("user").write(prompt)

    # API 응답 생성
    response = client.chat.completions.create(
        model=selected_model,
        messages=st.session_state.messages
    )
    
    reply = response.choices[0].message.content
    st.session_state.messages.append({"role": "assistant", "content": reply})
    st.chat_message("assistant").write(reply)

3. 프로덕션 성공 배포 체크리스트 4단계

  1. 보안 인프라: API 키나 DB 비밀번호가 소스코드에 포함되지 않도록 secrets.toml 또는 환경변수로 감싸기
  2. 반응 속도 (UX): 답변이 완성되는 동안 사용자에게 로딩 스피너(st.spinner)나 스트리밍(Streaming) 파이프라인 적용
  3. 에러 핸들링: API 연결 끊김이나 네트워크 장애 시 튕기지 않고 안내 팝업을 띄우는 예외 처리
  4. 글로벌 배포: Cloudflare / Streamlit Cloud / Vercel에 연결하여 SSL 보안이 적용된 서브도메인 발급

4. 자주 묻는 질문 (Q&A)

Q. DAVHAVE 사이트처럼 Cloudflare Workers로 글로벌 배포할 때의 이점은? A. 사용자와 가장 가까운 글로벌 엣지 데이터센터에서 초저지연(Low Latency)으로 구동되며, 서버 관리 부담이나 콜드 스타트 지연 없이 안전하게 배포할 수 있습니다.

← 이전미디어 처리 AI 유틸리티 앱 제작 (이미지, 오디오, GIF) 다음 →