티스토리 뷰

반응형

로컬 LLM + RAG 기반 AI 채팅봇 만들기

6.3 배포 후 점검 사항

이제 Ktor 백엔드와 SvelteKit 프론트엔드를 배포 완료했습니다.
이번 단계에서는 배포된 서비스의 정상 동작 여부를 확인하고, 모니터링 및 에러 대응 전략을 구축하겠습니다.


1) 배포 후 확인해야 할 사항

✅ ① 프론트엔드와 백엔드 연결 확인

  • 브라우저에서 배포된 프론트엔드 URL에 접속
  • AI 챗봇과 대화 시도
  • API 호출이 정상적으로 동작하는지 개발자 도구(DevTools)에서 확인
fetch("https://backend-url.com/api/chat/send", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ message: "챗봇이 뭐야?" })
})
.then(response => response.json())
.then(data => console.log(data));

📌 예상 결과

{
    "response": "AI 챗봇은 사용자 질문을 분석하고 응답을 제공하는 시스템입니다."
}

✅ ② CORS 정책 확인 (백엔드 설정 수정 필요 여부)

Vercel에서 실행되는 프론트엔드가 Ktor 백엔드 API를 호출할 수 있도록
백엔드에서 CORS 설정이 올바르게 적용되었는지 확인합니다.

install(CORS) {
    anyHost()
    allowMethod(HttpMethod.Get)
    allowMethod(HttpMethod.Post)
}

CORS 오류 발생 시 브라우저 개발자 도구(F12) → 네트워크 탭에서 API 요청을 확인해야 합니다.


✅ ③ HTTPS 환경에서 WebSocket 정상 동작 확인

Vercel과 같은 프론트엔드 배포 플랫폼은 기본적으로 HTTPS를 사용하므로,
백엔드에서 WebSocket을 wss:// 프로토콜로 설정해야 할 수도 있습니다.

const socket = new WebSocket("wss://backend-url.com/chat");

만약 WebSocket 연결이 차단되면, 백엔드에서 HTTPS 설정을 추가해야 합니다.

install(HttpsRedirect) {
    sslPort = 443
}

2) 배포 후 모니터링 (로그 및 오류 감지)

✅ ① 백엔드 로그 확인

Docker 컨테이너에서 실행 중인 Ktor 서버의 로그를 확인합니다.

docker logs chatbot-container -f

에러 발생 시 로그에서 HTTP 요청, 응답 상태 코드 및 WebSocket 메시지를 분석할 수 있습니다.


✅ ② 프론트엔드 로그 확인 (Vercel Log 기능 활용)

Vercel에서 배포한 프론트엔드의 로그를 확인하려면,
Vercel 대시보드 → "Deployments" → "Logs" 에서 확인 가능합니다.

vercel logs svelte-chatbot

✅ ③ 오류 발생 시 Slack / 이메일 알림 설정

  • Vercel과 Slack을 연동하여 배포 오류 발생 시 자동 알림을 받을 수 있습니다.
  • Sentry 같은 오류 추적 도구를 연동하면 실시간으로 에러를 감지할 수 있습니다.
vercel integrate slack

3) 자동화된 배포 및 업데이트

✅ ① GitHub Actions를 활용한 자동 배포

Vercel은 GitHub과 연동하여 코드 변경 시 자동으로 배포할 수 있습니다.

name: Deploy to Vercel

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install dependencies
        run: npm install

      - name: Build project
        run: npm run build

      - name: Deploy to Vercel
        run: vercel deploy --prod --token ${{ secrets.VERCEL_TOKEN }}

Vercel 환경 변수 설정을 통해 VERCEL_TOKEN을 추가해야 합니다.


✅ ② 백엔드 서버 자동 재시작 설정

Ktor 서버가 예상치 못하게 종료될 경우, Docker Compose의 restart 옵션을 사용하여 자동 재시작합니다.

ktor-chatbot:
  restart: always

✅ ③ PostgreSQL 데이터베이스 백업 설정

PostgreSQL 데이터를 자동 백업하려면 pg_dump 명령어를 활용합니다.

pg_dump -U postgres chatbot_db > backup.sql

백업을 S3, Google Drive 등의 클라우드 저장소에 업로드하여 안전하게 관리할 수 있습니다.


4) 배포 후 점검 체크리스트

점검 항목 결과

프론트엔드-백엔드 API 연결 정상 작동 ✅ 확인 완료
CORS 문제 없이 API 호출 가능 ✅ 확인 완료
WebSocket 정상 동작 (wss:// 적용 필요 여부 확인) ✅ 확인 완료
백엔드 로그 모니터링 (docker logs) ✅ 확인 완료
Vercel 로그 모니터링 (vercel logs) ✅ 확인 완료
자동 배포 (GitHub Actions 연동) ✅ 적용 완료
백엔드 자동 재시작 설정 (Docker Compose restart 옵션 추가) ✅ 적용 완료
데이터베이스 백업 스케줄 설정 ✅ 설정 완료

5) 다음 단계

이제 백엔드와 프론트엔드를 배포한 후, 운영 환경에서의 점검 및 최적화 작업을 완료했습니다.
다음으로 7.1 성능 최적화 (API 응답 속도 개선) 을 진행하여
백엔드 API의 응답 속도를 최적화하고, WebSocket 성능을 향상시키겠습니다! 🚀

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함
반응형