본문 바로가기
Programming

우분투 원격서버로 개발하기

by 느리게 걷는 즐거움 2021. 12. 18.
728x90
반응형

우분투 원격서버로 개발하기

 

프로그램 개발을 진행하는 경우 소스코드의 빌드의 성능 문제 또는 빌드 환경의 통일 등 다양한 이유로 소스코드를 서버에서 수정하고 빌드하는 경우가 많습니다. 제 경우에도 데스크탑으로 우분투 서버를 거실에 설치하고 외부나 다른 방에서 노트북으로 개발하고 있습니다. 우분투 서버에서 소스를 효율적으로 수정/업데이트하는 방법은 무엇이 있을까 고민했던 내용을 정리해 봅니다. 비슷한 고민을 하신분들에게 도움이 되면 좋겠습니다. 

 

개발 환경

개발환경은 아래와 같이 노트북을 이용하여 개발 서버의 코드를 수정하고 빌드하는 구조입니다.

 

====================================================================
 [ 개발 서버 :: 우분투 ] --o |NETWORK| o-- [ 노트북 :: 윈도우/우분투]
====================================================================

 

이 경우 노트북의 성능이 데스크탑 보다는 낮은 경우가 많고 노트북을 새롭게 변경하는 경우에도 추가로 개발환경을 다시 구성하는 불편함이 없어지는 장점이 있을 것 같습니다.

단점으로는 서로다른 운영체계로 접속하기 위해서 ssh, ftp, sftp, samba 등 서로 다른 파일시스템 사이에서 파일을 주고 받아야 하는 것이 있습니다. 그리고  GUI를 사용하는 과정이 원격서버접속, x11등의 불편한 과정을 수행해야한다는 부분일 것 같습니다.

 

장점 : 성능/개발환경의 안정성

단점 : GUI개발환경의 비효율성, 상이한 파일시스템 연결을 위한 추가 작업 필요

 

개발 언어

개발 언어도 다양하고 사용하는 개발 툴도 다르기 때문에 이 부분도 환경 구축이 어려운 부분 같습니다. 요즘엔 VSCODE를 사용하시는 분들이 많아져 VSCODE로 파이썬, C, C++등 다양한 언어에 대한 개발을 진행하는 것 같습니다. 이 글에선 파이썬을 개발언어로 정하고 개발 환경에 대해서 고민해 보겠습니다.

 

VIM

===========================================================================
   [ 개발 서버 :: 우분투 ] --o |NETWORK| o-- [ 노트북 :: 윈도우/우분투]
   [ vi                 ]                   [ putty / mobaXterm     ]
===========================================================================

vi를 이용하여 파이썬을 개발하는 경우 위의 그림과 같이 코딩이 가능합니다. 개발 서버에는 vi를 설치하고 vi를 효율적으로 사용할 수 있는 plugin을 설치합니다.

 

vi를 개발 툴로 사용하시는 분들은 다양한 vim plugin을 이용하여 개발을 진행하고 있으며 저도 터미널만 이용해야하는 경우 vi로 개발을 진행합니다. vi에 다양한 plugin을 쉽게 서ㄹ치학 위해서는 vundle, vimplug등을 이용하여 plugin을 설치할 수 있습니다. 그리고 vimrc를 github에 올려놓으면 새로운 linux 서버에서 개발을 시작해도 바로 내가 계속 사용했던 개발 환경을 빠르게 구축할 수 있습니다. vi에 많이 사용되는 plugin은 nerdtree, tlist, tag, ctag, cscope, fzf 등 다양합니다. 

 

VSCODE

VSCODE로 파이썬을 이용하는 경우를 고민해 봅니다. 제가 사용하는 개발환경은 개발서버와 노트북 모두 vscode가 설치된 환경입니다. 

=======================================================================
   [ 개발 서버 :: 우분투 ] --o |NETWORK| o-- [ 노트북 :: 윈도우/우분투]
   [ vscode             ]                   [ vscode                ]
=======================================================================

VSCODE 역시 다양한 플러그인을 제공하고 있으며 이 플러그인들을 이용하여 다양한 연결방식을 구성할 수 있습니다. VSCODE에서는 sftp를 이용하여 우분투 서버를 마운트할 수 있는 플러그을 제공합니다. 또는 samba등을 이용하여 서버의 소스코드를 윈도우에 네크워크 드라이브로 연결하고 윈도우에 설치된 vscode로 개발을 진행할 수 있습니다.

다만 GPU등 개발 서버의 HW리소스를 사용하여 파이썬 코드를 실행해야하는 경우 실행을 개발 서버에서 수행해야 합니다.

 

개발서버에서 파이썬 코드를 실행하기 위해서는 개발 서버의 터미널을 이용해야 합니다. VSCODE에서는 터미널 창을 제공하고 있어서 개발서버를 터미널 창으로 연결하여 파이썬 코드를 수행할 수 있습니다. 만약 주피터 노트북 처럼 GUI가 필요한 기능을 사용해야 하는 경우는 어떻게 해야할까요?

 

개발서버 GUI 기능 사용

우분투의 GUI기능을 사용하기 위해서는 원격서버접속과 X11 기능을 사용하는 방법이 있을 것 같습니다. 저는 X11과 원격서버접속을 모두 사용해봤는데 X11보다 원격서버접속이 속도가 더 빨라서 좀 신기했습니다. X11설정이 문제가 있어 더 느릴 수도 있을 것 같습니다 참고만 해주세요. 

 

원격서버접속의 경우 <Tight VNC> 앱을 윈도우에서 사용하여 개발서버에 연결하였습니다. X11의 경우 <Xluncher>를 이용하여 연결합니다. X11의 경우 putty등의 터미널에서 X11관련 설정과 우분투 서버에 X11관련 설치가 필요하며 <Tight VNC>의 경우 우분투 서버의 원격제어 설정을 활성화 하고 암호화 레벨을 낮추는 작업을 수행 후 사용이 가능합니다.

 

원격서버접속의 경우 윈도우에서 사용하는 원격접속처럼 개발서버의 GUI를 직접 보는것처럼 사용이 가능하지만 개발서버의 리소스를 많이 사용하기 때문에 다수의 개발자가 사용하느 개발서버의 경우 사용이 불가능합니다. 그래서 대부분 X11방식으로 연결하여 사용할 것 같습니다.

 

제가 고민해봤던 개발서버 이용방법에 대해서 정리해봤습니다. 

읽어 주셔서 감사합니다.

728x90
반응형