2021.06.02_Local과 Server통신을 위한 공부

이예린·2021년 6월 2일

study

목록 보기
1/2

일단, 서버에 대한 지식이 전혀 없으므로 기본적인 용어 먼저 정리를 해 보겠다

서버란?

서버(Server)는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로, 컴퓨터 프로그램 또는 장치를 의미

직장에서 매일 서버관리, 서버어쩌고 저쩌고 하는데 정작 사용해야 할 나는 아무것도 모르고 있다.

한 마디로, 서버는 클라이언트가 요청하는 정보를 처리하고 응답을 해 주는 것! 이라고 보면 될 것 같다.
서버도 우리가 사용하는 일반적인 노트북, 컴퓨터가 될 수 있지만 많은 요청을 잘 처리하기 위해 고성능을 갖춘 것 뿐이라고 한다.

또 모르는 단어들을 정리하자면,

Protocol

통신규칙으로, 어떠한 방법으로 통신 할 것인가?

host

도메인 네임으로, 특정 인터넷에 접속되어 있는 각각의 컴퓨터 (모르겠다)

port

해당 숫자의 포트에 연결되어 있는 서버와 연결하게 된다는 의미

FTP

File Transfer Protocol의 약자로, 파일 전송 프로토콜 : 서버와 클라이언트 사이의 파일전송을 위한 통신규약이다

여기까지 용어를 정리했고, 오늘 직장 선임님한테 배운 내용을 잊지않도록 정리해보기로 했다.

  1. Local 가상 환경(tf_env)이 있고, 그 안에서 수행하던 .py와 각종 패키지들이 있다. 그래서 Local의 tf_env에서 Server로 가상환경을 Export 해줘야 한다.

이 때, Local computer 에서는

1) 가상환경 켜기

conda activate [가상환경이름]

2) 명령어로 Export

conda env export > env.yaml

내 패키지 list 가져오기

3) Local의 가상환경에서 사용한 Python version 확인

  1. Server에 가상환경 생성
conda create -n [가상환경이름]

을 통해 Server에도 가상환경을 생성한다.
이 때, Python도 local의 version에 맞게 설치하도록 한다.

  1. .py나 필요한 csv file을 서버로 옮기기 위해서 FTP Client를 사용한다.(우리 회사에서는 bitvise SSH를 사용하는데, 검색해보니 다른 client들이 많았다.)

FTP client를 사용하면 익스플로어 환경과 같이(GUI) 파일을 옮길 수 있는데 사용하지 않으면 cmd창에서 명령어로(CUI) 파일을 송수신 해야한다.

  1. 이제 다 옮기고 준비도 다 끝난 것 같은데 아니란다. Server에서 Background로 코드를 돌려야한다고 해서 tmux명령어(리눅스에서, 하나의 창이 아닌 여러 창을 함께 사용할 때의 명령어)를 사용한다. 그러면 Server가 꺼지지 않는 이상 tmux로 돌려놓은 코드는 다운되지 않는다.

새로운 Session 생성

tmux new -s [session_name]

Session에 다시 들어가볼때

tmux a -t [Session_name]

할 일을 끝내고 나가고 싶을때는

(Ctrl+b) d

위 과정을 거쳐 내 그지같은 코드를 서버에서 돌릴 수 있게 되었고...
더 공부가 필요한 내용이라고 생각이 들었다...

<추가>
Python에서 Loop를 돌릴 때, Progress status를 확인하기 위해 tqdm이라는 패키지를 사용한다.
그러면 Progress bar가 생성되고, 시간도 얼마나 남았는지 확인 가능하다.
사용법은 range앞에 tqdm 입력하면 된다.

0개의 댓글