서버쪽 개발을 하는 사람들을 보면 다들 자기만의 툴사용 방식이 있는데,
나같은 경우 putty로 직접 서버에 붙어서 하는 편이다.
들어가기 앞서 내가 보았던 서버 개발 방식을 몇가지 이야기하려하는데 잡설이므로 스크롤을 내려도 좋다.
조금내려서 1. Vundle 다운로드 항목부터 보시길.
가장 기본적인 방법으로는 로컬컴에서 코딩을 한 후 그 수정본을 ftp로 업로드해서
확인해보는 것이다.
이 방법은 '서브x임' 같이 자신이 평소 사용하던 편집기를 사용할 수 있다는 점을 장점으로 꼽을 수 있다.
그런데 이건 매번 수정할 때마다 업로드를 위해 '파일x라'같은 ftp 툴을 이용해야 한다는 점이 매우 번거롭다.
이보다 좀 더 진화한 방법은, 로컬컴에서도 같은 서버를 만들어 놓고, 로컬에서 테스트를 거치면서 개발을 하다가 메이저한 업데이트가 있을 때에만 서버에 소스를 업로드하여 동기화하는 것이다.
이 방법은 처음에 언급했던 방법에서 장점은 그대로 보존하고 단점은 보완한 방식이라고 할 수 있다.
하지만 이러한 방식은 윈도우-리눅스 간의 크로스 플랫폼을 지원하지 않는 서버 프로그램엔 적용할 수 없다는 단점이 있다.
뭐 단점이라고 해봤자 대부분 지원하니까 크게 느껴지진 않을테지만 말이다.
대신 크로스 플랫폼을 지원하는 프로그램이더라도 플랫폼마다 설정방식의 차이가 있어 버그가 발생할 수 있는 경우를 고려해야 한다.
그리고 이 방식은 서버에 직접 붙어서 작업을 하는 것이 아니므로 작업하다 뭔가를 날리거나 하는 등의 실수를 하더라도 안전하다는 장점이 있다.
이런 점에선 내가 사용하는 방법보다 더 좋다고 볼 수 있다.
마지막으로 내가 사용하는 방법은 앞에서 말했듯이 그냥 바로 서버에 붙어 작업하는 것이다.
오로지 콘솔만으로... 문자로만 이루어진 스크린을 앞에 두고 과거 선인들이 느꼈던 고뇌(?)를 몸소 체험해 가면서 말이다.
이러한 방식의 장점은, 개발할 수 있는 장소가 물리적으로 한정되어 있지 않다는 점이다.
위에서 서술했던 두 방법은 평소 자신이 작업하던 환경이 아닌 새로운 곳에서 작업을 하려면 개발환경 세팅을 처음부터 다시해야 한다.
하지만 서버에 직접 붙는다면 처음 한번만 하고나선 나중에 터미널로 붙기만 하면되니, 직장에서든 집에서든 PC방(?)에서든 작업을 이어서 할 수 있다.
PC방같이 공개장소에서 접속하는 경우 PK관리같은 각별한 보안 관리가 필요하겠지만...
뭐 암튼 그런 장점이 있다.
단점이라면... 그 외 모든것?
ㅋㅋㅋ 그래도 일단 익혀두면 그 성취감과 편리함이 단점들을 모두 커버하는 것 같다.
1. Vundle 다운로드
vi 플러그인 관리자 툴인 Vundle 을 다운로드하자.
먼저 git이 필요하다. git을 설치하자
root@glassylife:~# apt-get update
root@glassylife:~# apt-cache search git | grep '^git '
root@glassylife:~# apt-get install git
일단 나는 root 로 접속했기 때문에 그냥 했는데 일반계정으로 접속했다면
NormalAccount@glassylife:~# sudo apt-get update
와 같이 실행하려는 명령어 앞에 sudo를 붙이면 된다.
만에 하나 sudo를 사용해도 권한에러가 발생한다면 구글에 "sudoers"라는 키워드를 이용해 검색해보라.
일반 유저래도 흙수저 은수저가 있다. sudo를 사용할 수 있는 은수저가 되기 위해선 sudoers 라는 그룹에 속해 있어야 한다.
update는 로컬과 원격의 패키지 저장소의 데이터를 싱크시켜주는데 패키지를 설치할 때 습관적으로 한번씩 해주자.
패키지 저장소라고는 했는데, 말에 조금 어폐가 있지만 딱히 적당한 표현이 생각나질 않아서 일단 그냥 두고 나중에 수정해야겠다.
여기서 말하는 패키지 저장소는 실제로 패키지의 바이너리 데이터를 보관하는 게 아니라 패키지의 바이너리 데이터가 어디에 있는지, 버전은 몇인지와 같은 메타데이터를 관리하는 저장소이다.
apt-cache search 는 로컬 패키지 저장소에 찾으려는 패키지가 있는지 검색한다.
없으면 패키지가 있는 원격저장소를 직접 찾아 등록시켜줘야한다.
대부분 잘 될것이기 때문에 이 명령어는 사용하지 않아도 되지만, 혹시라도 다음과정에서 git 패키지 설치가 안 되는 분은 로컬 저장소에서 git을 검색해 있는지 확인해 보고 없다면 갓-구글에게 "restore ubuntu default repo"나 이와 비스무리한 키워드로 검색해보길 바란다.
다음으로 apt-get install git 명령어로 git을 설치한다.
이제 git으로 Vundle 소스를 clone 한다.
root@glassylife:~# git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
2. Vundle 설정 및 플러그인 설치
별거 없다. Vundle 깃헙에 있는 Quick Start 항목을 그대로 따라한다.
Vundle 소스를 받은 후 ~/.vimrc 파일을 수정해준다. 없으면 만들어 준다.
root@glassylife:~# vi ~/.vimrc
일종의 vim 스크립트 파일인데 다음과 같은 코드를 넣어줘야 vi를 사용할 때 Vundle이 작동한다.
set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' " plugin from http://vim-scripts.org/vim/scripts.html Plugin 'L9' " Git plugin not hosted on GitHub Plugin 'git://git.wincent.com/command-t.git'
" The sparkup vim script is in a subdirectory of this repo called vim. " Pass the path to set the runtimepath properly. Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line
나중에 플러그인을 추가할 때 여기에서 플러그인을 눈치껏 추가해주면 된다.
소스 중간쯤에 보이는 Plugin 'plugin_name' 과 같은 형식으로 추가해주면 된다.
그럼 플러그인 추가 방법도 알았겠다 NERDTree를 추가해보자
참고로 NERDTree 플러그인은 pwd를 기준으로 디렉토리 구조를 비주얼라이징 해주거나 파일을 열 수 있도록 도와준다.
코딩을 하다보면 여기저기에 나눠진 소스들을 확인하고 수정하게 되는데,
이 때 소스경로를 직접 입력하지 않고도 파일에 접근 할 수 있게 도와준다.
써보면 안다 얼마나 편한지를...
다음과 같이 rstacruz/sparkup 다음줄에 밑의 소스 2줄을 추가해준다.
참고로 쌍따옴표(")는 주석이다.
...
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" NERDTree Plugin
Plugin
'scrooloose/nerdtree'
코드를 넣었으면 저장을 하고, 닫는다.
그리고 다음 명령어로 플러그인 설치를 한다.
root@glassylife:~# vim +PluginInstall +qall
또는 vim의 명령어 모드에서 :PluginInstall 로도 설치할 수 있다.
이제 vim에 들어가서 명령어 모드에서 :NERDTreeToggle 를 입력해 보자
다음과 같이 왼쪽에 뭔가 불쑥 튀어 나온다. 오오...
나는 현재 빈 폴더에서 vi 를 실행시켜서 특이할만한게 없다.
이미지나 직접 확인해 볼 수 있듯이 사용설명을 보려면 '?'을 입력하면 된다.
그 외에 기본적인 사용 방법은
Ctrl+h,j,k,l 로 윈도우를 옮겨다니거나
:q 로 윈도우를 닫을 수 있다.
3. Vi 설정
매번 명령어를 입력해 NERDTree를 불러오기 귀찮으니까 단축키로 등록해 놓자.
F7키에 등록 시켜놓는게 일반적이다.
다시 ~/.vimrc 파일을 열고 맨 끝에 다음 소스를 추가한다.
...
" map NERT Tree to key 'F7'
nmap <F7> :NERDTreeToggle<CR>
추가한 김에 간단한 vi 설정도 넣자...
마찬가지로 맨 끝에 넣는다
...
" vim settings
set number " show line number
set ts=2 " tab size is 2 spaces
set autoindent " use auto indent
set cindent " use C style indent
set smartindent " use smart indent
set shiftwidth=2 " shifting size is 2 spaces
set paste " turn off autoindent when you paste code
set hlsearch " hilight searching results
set noexpandtab " turn off auto replacing tab with spaces
뭐... 그럭저럭 쓸만한데 이쁘지가 않다.
color scheme을 지정해보자
다시 .vimrc로 돌아가서.. 플러그인을 추가해준다.
NERDTree 플러그인 추가해줬던 줄 밑에 다음 소스를 추가해 준다
...
Plugin 'scrooloose/nerdtree'
" solarized color scheme
Plugin 'altercation/vim-colors-solarized'
그리고 맨 끝에 다음과 같이 설정을 추가해 준다...
...
" setting soarized color scheme
set t_Co=256
set background=dark
highlight Normal ctermbg=NONE
highlight nonText ctermbg=NONE
let g:solarized_termcolors=256
hi Comment term=bold cterm=bold ctermfg=2
colorscheme solarized
다시 다음 명령어로 플러그인을 설치해주고...
root@glassylife:~# vim +PluginInstall +qall
vi을 열면...!
알록달록한게 매우 맘에 든다ㅋㅋㅋ 매우 흡족.
4. Plugin 검색
이제 능동적으로 필요한 플러그인을 찾고 설치해보자
플러그인 검색은 vi의 명령어 모드에서 :PluginSearch 를 입력한다.
무슨 플러그인 4000개 씩이나...
그럼 왼쪽에 윈도우가 하나 생기는데 vi에서 일반적으로 단어 찾는 단축키인 / 를 이용해 적당한 검색 키워드를 입력한다.
taglist 라고 검색하니 'taglist-plus'라는 플러그인을 찾을 수 있었다.
이제 이걸 그대로 NERDTree 추가했듯이 ~/.vimrc 파일에 넣어준다.
그리고 :PluginInstall 해주는거 까먹지 말고!!
'잡것 > Unix & Linux' 카테고리의 다른 글
[Kali Linux] tightVNC 로 vnc 열기 (0) | 2016.07.28 |
---|---|
[Kali Linux] VMware 설치 및 포트포워딩 설정 (0) | 2016.07.28 |
[Kali Linux] SSH 서비스 부팅시 자동실행 하기 (1) | 2016.07.28 |
[Kali Linux] 설치하기 (멀티부트) (5) | 2016.07.27 |
[Ubuntu] SSH Public Key Authentication 사용해제하기 (0) | 2016.07.17 |