7장. 웹 UI 연동과 배포
용어 짚고 가기
웹 UI(Web User Interface)브라우저에서 보이는 화면입니다. User Interface(사용자 접점)의 머리글자로, 사람과 프로그램이 만나는 자리라는 뜻입니다.Streamlit1장에서 소개한 대로 파이썬 코드만으로 웹 화면을 만드는 라이브러리입니다. HTML 이나 자바스크립트를 몰라도 됩니다.위젯(widget)단추, 입력칸, 고르기 상자, 밀대처럼 손님이 만지는 화면 부품입니다. window(창)와 gadget(작은 장치)을 합친 말이라는 설이 널리 알려져 있습니다.사이드바(sidebar)화면 왼쪽에 따로 붙는 좁은 막대입니다. side(옆)와 bar(막대)를 붙인 말로, 설정이나 안내를 둡니다.다시 실행(rerun)손님이 위젯을 만질 때마다 Streamlit 이 앱 스크립트를 맨 위부터 다시 돌리는 일입니다. re(다시)와 run(실행하다)을 붙인 말입니다.세션 상태(session_state)다시 실행해도 지워지지 않고 남는 손님별 메모장입니다. session 은 4장에서 본 "한 사람과 이어지는 한 묶음", state 는 "상태"라는 뜻입니다.st.chat_message채팅 화면의 말풍선 하나를 만드는 함수입니다. chat(수다, 대화)과 message(전하는 말)를 붙인 이름입니다.st.chat_input화면 아래에 붙는 채팅 입력창입니다. input 은 "넣는 것, 입력"이라는 뜻입니다.캐시(cache)한 번 만든 결과를 보관해 두었다가 다시 쓰는 저장 칸입니다. 프랑스 말 cacher(숨기다)에서 온 말로, "숨겨 둔 저장소"라는 뜻입니다.st.cache_resource모델, 색인처럼 무거운 부품을 서버에 한 번만 만들어 모든 손님이 함께 쓰게 하는 캐시입니다. resource 는 "자원"이라는 뜻입니다.st.cache_data표, 글처럼 데이터를 돌려주는 함수의 결과를 보관하는 캐시입니다. 꺼낼 때마다 복사본을 줍니다.스트리밍(streaming)답을 다 쓸 때까지 기다리지 않고 조각이 생기는 대로 흘려보내는 일입니다. stream 은 "시냇물, 흐름"이라는 뜻입니다.st.write_stream조각을 하나씩 받아 화면에 이어 쓰고, 다 쓰면 전체 글을 돌려주는 함수입니다.비밀 값(secrets)API 키나 비밀번호처럼 코드에 적으면 안 되는 값입니다. secret 은 "비밀"이라는 뜻입니다. Streamlit 은st.secrets로 읽습니다.TOML(Tom's Obvious, Minimal Language)"톰의 뻔하고 작은 언어"라는 뜻의 설정 파일 형식입니다. 만든 사람 Tom Preston-Werner 의 이름에서 왔습니다.이름 = "값"꼴로 적고,secrets.toml이 이 형식입니다.AppTestStreamlit 앱을 브라우저 없이 실행해 화면의 부품을 꺼내 보는 시험 도구입니다. App(앱)과 Test(시험)를 붙인 이름입니다.로컬 호스트(localhost)지금 쓰는 내 컴퓨터 자신을 가리키는 주소입니다. local(이곳의)과 host(손님을 맞는 컴퓨터)를 붙인 말입니다.streamlit run은 보통http://localhost:8501에 화면을 엽니다.배포(deployment)내 PC 에서만 돌던 앱을 서버에 올려 다른 사람이 웹 주소로 쓸 수 있게 하는 일입니다. deploy 는 군대를 "배치하다"라는 뜻에서 왔습니다.저장소(repository)프로젝트의 파일과 고친 기록을 모아 두는 곳입니다. repository 는 "창고, 보관소"라는 뜻으로, 줄여서 repo 라고 부릅니다.GitHubGit 저장소를 인터넷에 올려 두고 나누는 서비스입니다. Git(버전 관리 프로그램)과 hub(중심지, 모이는 곳)를 붙인 이름입니다.Streamlit Community CloudGitHub 저장소의 Streamlit 앱을 웹 주소로 띄워 주는 Streamlit 의 배포 서비스입니다. community(공동체)와 cloud(인터넷 너머의 서버)를 붙인 이름입니다.requirements.txt앱이 쓰는 패키지와 판을 한 줄에 하나씩 적은 파일입니다. requirement 는 "필요한 것"이라는 뜻으로, 서버는 이 파일을 읽어 패키지를 설치합니다.