[Streamlit] 3. config와 secrets
Streamlit에서 일반 설정은 config와 secrets로 관리할 수 있다.
config에서는 테마, 서버 설정 등을 관리,
secrets에서는 민감한 개인 정보를 관리한다.
나는 프로젝트에서 각각 다음과 같은 방식으로 활용했다.
config | theme, server, browser |
secrets | databricks, api |
설정을 위해서는 실행 파일과 같은 위치에 .streamlit 폴더를 만들고 그 안에 config와 secrets를 넣으면 된다.
확장자는 toml로 설정해 줘야 한다.
참고로 toml 파일은 터미널에서 생성할 수 있다.
[terminal]
# cd 스트림릿 파일 경로
mkdir .streamlit
echo. > .streamlit\secrets.toml
그렇게 구성된 경로는 다음과 같이 만들어진다.
[directory]
app.py
.streamlit
|--- config.toml
|--- secrets.toml
.gitignore
1. config
streamlit에서는 config의 테마 설정을 통해 css 적용 없이도 간단한 테마 적용이 가능하다.
사용법은 간단하다.
config.toml 파일 내에서 다음과 같이 구성해 주면 된다.
[config.toml]
[theme]
primaryColor = "#2c436f"
backgroundColor = "#ffffff"
secondaryBackgroundColor = "#b5cfe4"
textColor = "#2d2d2d"
config theme설정을 통해서는 간단하게 주색, 배경색, 보조배경색, 글자색 적용이 가능하다.
그 외에도 base 변수로 라이트/다크 테마 설정, font 변수로 디폴트 폰트 변경 등이 가능하다.
예시와 같은 테마를 적용할 시 사이드바 테마는 이렇게 바뀐다.
다음으로 config에서는 서버, 브라우저 설정도 가능하다.
이건 서버 세팅 포스트에서 다시 다루도록 하겠다.
2. secrets
secrets는 외부에 노출되지 않아야 하는 개인정보를 관리할 때 사용한다.
나는 api 키, 데이터브릭스 연동 코드 관리 등을 목적으로 활용했다.
secrets.toml 파일 구성은 다음과 같다.
api_key='키값' 식으로 넣어주면 된다.
[secrets.toml]
[databricks]
host
http_path
personal_access_token
[api]
api_key
config와는 달리 형식은 자유롭고, 외부 노출 방지 목적이므로 깃 푸쉬를 방지하기 위해 경로를 .gitignore 파일에 추가해 줘야 한다.
[.gitignore]
.streamlit/secrets.toml
이후 코드에서의 활용은 다음과 같이 st.secrets[구분][변수명]으로 호출해서 사용하면 된다.
다음 예시는 데이터브릭스 연동을 위한 모듈 코드이다.
[db_connector.py]
import databricks.sql as sql
import streamlit as st
def connect_to_databricks():
try:
host = st.secrets["databricks"]["host"]
http_path = st.secrets["databricks"]["http_path"]
access_token = st.secrets["databricks"]["personal_access_token"]
connection = sql.connect(
server_hostname=host,
http_path=http_path,
access_token=access_token
)
st.success("✅ Databricks에 성공적으로 연결되었습니다.")
return connection
except Exception as e:
st.error(f"❌ Databricks 연결에 실패했습니다.: {e}")
return None