Web Development/streamlit

[웹개발]streamlit으로 python 데이터분석 웹앱을 만들어보자!(3)

JackSmith 2023. 2. 6.

자, 이번에는 저번에 만들었던 main.py를 전세계에 있는 모든 사람들이 볼 수 있도록 해보겠습니다.

여러분이 서버를 이미 직접 갖고 계신다면, 상관이 없겠지만, 그렇지가 않다면 서버를 스스로 구축하고 운영하는 것은

쉽지 않을 일이죠.

(물론 서버를 스스로 구축하고 운영해보는 것을 권합니다.

직접 구축해보고 운영해보는 경험이 나중에 큰 자산이 될것입니다.)

streamlit에서는 streamlit cloud라는 무료 클라우드 서비스를 제공하는데요,

이를 위해서는 일단, main.py를 git으로 관리하여, github.com으로 push를 하고,

streamlit cloud가 github에 있는 main.py를 땡겨와서,

클라이언트로 하여금 특정 url(uniform resource locator)로 접속했을때, 해당 main.py에 대한 자원으로

응답을 하여, 클라이언트의 브라우저에 뿌려줍니다.

이번에는 깃허브에 git으로 main.py를 푸시하고, streamlit cloud에서 땡겨올 수 있도록,

조치를 취해보도록 하겠습니다.

1>기존 프로젝트를 깃허브에 올리기

준비물: git scm, pycharm, github.com의 계정

절차를 알려드리기 전에, 우리가 위에 봤던 그림중,

이 부분을 좀 더 자세하게 표현해보자면, 아래 그림처럼 될 수 가 있겠습니다.

위 그림과 같이 절차가 살짝 복잡한데요? 하나하나 해보도록 하겠습니다. 순서는 아래와 같습니다.

  1. Remote repository생성(Create)
  2. Local repository생성(add)
  3. Commit
  4. push

-1>Remote repository생성(Create)

github.com에 들어가서 "Your repositories"를 클릭!

자신의 리포지토리 정보가 뜰텐데,우측 상단에 있는 "New"버튼 클릭!

저는 간단하게 streamlit-tutorial이라는 이름으로 로컬 레포지토리를 만들어보겠습니다.

이후 다른건 건드시지 마시고, 해당 창 아래에 있는 'Create repository'를 클릭해서 생성해주세요.

여기까지 해서 위 그림과 같이 "Remote repository"생성을 끝냈습니다.

 

-2>Local repository생성(add)

이번에는 로컬 리포지토리를 생성해보도록 하겠습니다.

위 절차를 따라가 주세요!

저는 streamlit_tutorial이라는 폴더에 main.py를 생성했기 때문에,

"Create Git Repository"에서 이 폴더를 선택하도록 하겠습니다.

그러면 창 하단에, 유효성 검사?와 같이 로컬 리포지토리를 만들고, 이를 연결해도 괜찮은지,

스캔하고 검사하는 절차를 진행합니다.(정확히는 모르겠네요ㅎㅎ;;;)

암튼, 스캔이 끝날때까지 기다려주도록 하겠습니다.

 

여기까지 해서 위 그림과 같이 "Local repository"생성을 끝냈습니다.

 

-3>Commit

이제 제 데스크탑에 저장된 main.py를 로컬 리포지토리에 올려보도록 하겠습니다.

커밋을 하기 위해 오른쪽 그림을 따라 클릭해주시면, 왼쪽그림과 같이 저희 프로젝트 폴더에 있는 파일들이 보일 겁니다.

여기서 원하는 파일들만 선별해서, 로컬 리포지토리에 커밋을  해보도록 하겠습니다.

저는 "first commit!"이라는 메시지를 남기고 커밋을 진행해보도록 하겠습니다.

여기까지 해서 위 그림과 같이 "Commit"을 끝냈습니다.

 

-4>Push

github.com에 올리기까지 얼마 안남았습니다! 이제 '로컬 저장소'에서 '원격 저장소'로

데이터를 옮겨 보도록(push) 하겠습니다!

그러기에 앞서서! git의 동작원리에 대해 한번 더 짚고 넘어가겠습니다.

깃에 대해서 공부하게 되면, 총 3개의 리포지토리를 접하게 될텐데요.

-(1)remote repository  

-(2)local repository

-(3)내 컴퓨터 리포지토리(이건 정식명칭이 있을텐데, 그냥 제가 편하게 이렇게 부르는 겁니다!)

첫번째 저장소는 깃허브에서 리포지토리를 만들었을때, 생성된 저장소를 말합니다.

두번째 저장소는 저희 컴퓨터에 가상으로 만들어진 저장소 입니다.

세번째 저장소는 저희 컴퓨터에서 프로젝트를 생성했을때, 그 프로젝트 폴더라고 생각해주시면 됩니다.

(3)에서 (2) commit를 하고(git commit),

(2)에서 (1)리포지토리로 push를 할 것입니다(git push).

 

이제 푸시를 하려면, 푸시를 하려는 곳의 인터넷 상의 주소를 알아야 해요!

 

위 링크를 복사해주세요!

이제 '원격 저장소'랑 '로컬 저장소'랑 연동을 시켜줄 거에요!

위 그림에 나온 절차를 따라왔다면, 연동은 다 된겁니다! 이제 PUSH를 해보죠!


Git push를 하기 전!!  한가지 비교해볼게, push하기 전과 후에 자신의 깃허브사이트의 repository 창의

화면이 바뀌는 것을 확인하실수 있습니다.

위 그림과 같이 푸시를 눌러주세요!

그러면, 정상적으로 아래 메시지가 뜰겁니다!

※추가

만약 "Push"를 누르고 나서,위와 같은 페이지가 뜰수도 있는데, 아마 저처럼 스타벅스에서 포스팅을 하다가

와이파이가 끊기는 경우에, 저같은 일이 발생할 수 있는데, 당황하지 마시고, 침착하게 "Authorize in GitHub"를 눌러 아래 절차를 따라가 주세요.

그러면, 정상적으로 아래 메시지가 뜰겁니다!

 

 

 

마치며..

여기까지 오셨다면, 91%이상 완성하셨다고 봐도 무방합니다.

다음 포스팅에서는 GitHub에 올린 main.py를 streamlit cloud에 끌고와서(draw해서) 인터넷 상의

모든 사용자가 저희 페이지를 볼 수 있도록 해보겠습니다!

댓글