지금까지는, 앱 개발을 할 때, 파일 하나로 코드 작성을 모두 했다.
실무에서는 파일을 여러개로 쪼개서 개발한다.
파일을 나눠서 개발하는 장점.
1. 유지보수!
2. 협업가능!
모듈별로 나눠서 개발한다.
기존 방법 )
def main() :
st.title("파일 분리 앱")
menu = ["Home", "EDA", "ML"]
choice = st.sidebar.selectbox("메뉴 선택" , menu)
if choice == menu[0] :
st.subheader("Home 화면")
st.text("파일을 분리해서 처리하는 프로젝트 입니다.")
elif choice == menu[1] :
st.subheader("EDA 화면")
df = pd.read_csv("./data/iris.csv")
print(df.columns[0])
st.dataframe(df)
st.subheader("상관계수")
st.dataframe(df.corr(numeric_only=True))
elif choice == menu[2] :
st.subheader("머신러닝 화면")
st.text("예측하는 화면을 여기에 개발")
if __name__ == "__main__" : main()
-> 기존엔 파일 하나에 다 썼지만 실무에서는 이렇게 하지 않는다.
-> 하려는 동작, 기능 별로 구분 지어 파일들을 분리해서 한다. 웹개발 spring의 MVC 패턴 같은 느낌인 거 같다
파일 분리한 코드 )
import streamlit as st
from app_home import run_home_app
from app_eda import run_eda_app
from app_ml import run_ml_app
def main() :
st.title("파일 분리 앱")
menu = ["Home", "EDA", "ML"]
choice = st.sidebar.selectbox("메뉴 선택" , menu)
if choice == menu[0] :
run_home_app()
elif choice == menu[1] :
run_eda_app()
elif choice == menu[2] :
run_ml_app()
if __name__ == "__main__" : main()
-> 1. 기능별로 app_home.py , app_eda.py , app_ml.py 파일을 만든 후 함수를 만든다.
-> 2. 나눈 파일들을 import 한 후 필요 부분에 넣는다.