
1. 개발 환경
DeepLearning 분야는 다른 SW 직무와는 달리 PC의 개발환경 구성이 중요한 부분을 차지한다고 생각한다.
이와 관련해서 내가 경험했던 개발 환경은 다음과 같다.
1. GPU가 탑재된 데스크탑에서 개발 후 모델 학습 및 클라우드 서버로 서빙
2. GPU가 탑재된 노트북에서 프로그램 개발 및 클라우드 서버에서 학습 및 서빙
3. 노트북에서 서버로 원격 접속하여 개발 후 모델 학습 및 서빙
개인적으로 1번 방법은 개인 개발 용도로 가장 편하고 합리적이였으며, 2번 방법은 유동적으로 데모 개발 프로그램을 시연하고, 프로그램을 간단하게 동작 확인하는 용도로 적합했다.
이에 반해 3번 방법과 같은 경우는 다른 OS환경이여도 원격 서버만 있으면 IDE 툴로 원격 접속해서 원격 서버의 PC 자원을 모두 사용가능하고, 프로그램 개발이 가능하다. 특히, 원격 서버가 리눅스 OS라고 하더라도 IDE 툴로 원격 접속하기 때문에 GUI 기능을 그대로 사용할 수 있어서 편리하다.
이에 따라 3번 방법과 관련해서 VSCode에서 SSH를 통해 원격 서버로 접속하는 방법에 대해 포스팅하고자 한다.
참고로 위의 방법들중에서 1, 2번의 방법들은 사내 서버가 없는 경우에 클라우드 서버를 활용했던 방법들이다. 그러므로 사내 서버가 활용한 상황이라면 3번 방법을 사용하는 것이 비용과 편의 측면에서 합리적이다.
SSH란?
시큐어 셸(Secure SHell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기본적으로는 22번 포트를 사용한다.
2. VSCode 원격 접속
2.1 Remote-SSH 설치

먼저, VSCode에서 제공하는 SSH 원격 접속 툴인 Remote-SSH를 F1로 검색하여 설치한다.
2.2 Remote Host Configuration 작성

위에서 Open SSH Configuaration File를 선택하여, 다음과 같이 Configuaration File에서 원격 서버에 관한 정보를 작성한다.

2.3 Connect to Remote Host

F1에서 Connect to Host를 선택하여 위에서 작성한 Host 정보에 해당하는 대상을 선택하여 접속한다.

최종적으로 다음과 같이 원격 서버에 접속한 것을 확인할 수 있다.
3. 유의사항
주로 공유 네트워크보다는 사설 네트워크로 접속하는 경우가 많기 때문에 SSH 서버에서 포트포워딩을 통해 터널링을 해줘야 한다.