14장. Streamlit 화면과 Docker 컨테이너
정리
- Streamlit 은 위젯이 바뀔 때마다 스크립트를 처음부터 다시 실행해 화면을 그립니다. 남길 값은
st.session_state, 무거운 준비는@st.cache_resource에 둡니다. - 칸이 여럿이면
st.form으로 묶어 제출할 때만 다시 실행되게 하고, 채팅은st.chat_message와st.chat_input에 채팅 API 와 같은 꼴의 기록을 씁니다.AppTest로 브라우저 없이 화면을 시험합니다. - 화면은 모델 대신 API 를 부르고, API 의 주소와 키는 환경 변수로 받으며, 요청에 시간 제한을 두고 연결 실패를 알기 쉽게 알립니다.
- 컨테이너는 프로그램과 파이썬, 패키지, 설정을 한 상자에 담아 어디서나 같게 띄웁니다. Dockerfile 은 기본 이미지, 패키지 설치, 코드 복사, 실행 명령의 순서이고, 판을 적은
requirements.txt와.dockerignore를 함께 둡니다. - docker compose 는 여러 서비스를 한 파일로 띄우고 서비스 이름으로 서로 찾게 합니다. 컨테이너 안의 서버는
0.0.0.0으로 띄우고, 비밀은 이미지가 아니라 실행할 때 넣습니다. - API 아키텍처는 화면, API, 모델 서버, 데이터를 나눠 바쁜 곳만 늘리고, 층마다 상태 확인 주소를 둡니다.