SCP : Secure Copy Protocol
SSH 프로토콜을 이용해 파일을 전송하는 유틸리티입니다.
Vim Bundle. Vim의 Plugin manager으로 Vim에 다양한 확장 기능들을 설치하여 사용 할 수 있도록 도와줍니다.
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
let path='~/.vim/bundle'
call vundle#begin(path)
call vundle#end()
filetype plugin indent on
call vundle#begin(path)
Plugin 'gmarik/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'The-NERD-Tree'
Plugin 'bling/vim-airline'
Plugin 'tomasr/molokai'
Plugin 'nathanaelkane/vim-indent-guides'
call vundle#end()
:PluginInstall
완료 시 q로 종료.
:PluginClean
완료 시 q로 종료.
Option | Abbreviation | Description |
---|---|---|
‘autoindent’ | ‘ai’ | Copy indent from current line when starting a new line. |
‘cindent’ | ‘cln’ | Enables automatic C program indenting. |
‘smartindent’ | ‘si’ | Do smart autoindenting when starting a new line. |
‘tabstop’ | ‘ts’ | Number of spaces that a |
‘shiftwidth’ | ‘sw’ | Number of spaces to use for each step of (auto)indent |
‘visualbell’ | ‘vb’ | Use visual bell instead of beeping. |
‘number’ | ‘nu’ | Print the line number in front of each line. |
‘ruler’ | ‘ru’ | Show the line and column number of the cursor position, separated by a comma. |
‘title’ | When on, the title of the window will be set to the value of ‘titlestring’ | |
‘warp’ | This option changes how text is displayed. | |
‘cursorline’ | ‘cul’ | Highlight the screen line of the cursor with CursorLine. |
‘linebreak’ | ‘lbr’ | If on Vim will wrap long lines at a character in ‘breakat’ rather than at the last character that fits on the screen. |
‘showmatch’ | ‘sm’ | When a bracket is inserted, briefly jump to the matching one. |
‘background’ | ‘bg’ | When set to “dark”, Vim will try to use colors that look good on a dark background. When set to “light”, Vim will try to use colors that look good on a light background. |
‘guifont’ | ‘gnf’ | This is a list of fonts which will be used for the GUI version of Vim. |
‘wrapscan’ | ‘ws’ | Searches wrap around the end of the file. |
‘hlsearch’ | ‘hls’ | When there is a previous search pattern, highlight all its matches. |
‘ignorecase’ | ‘ic’ | Ignore case in search patterns. |
‘incsearch’a | ‘is’ | While typing a search command, show where the pattern, as it was typed so far, matches. |
‘backspace’ | ‘bs’ | Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert mode. |
‘history’ | ‘hi’ | A history of “:” commands, and a history of previous search patterns are remembered. |
‘fileencoding’ | ‘fencs’ | This is a list of character encodings considered when starting to edit an existing file. |
‘backup’ | ‘bk’ | Make a backup before overwriting a file. |
‘syntax’ | ‘syn’ |
on/off
로 값을 설정.
set number " number 옵션을 Onset nonumber " number 옵션을 Off
숫자
인 옵션
set history=1000 " history 옵션 값을 1000으로 설정.
문자열
인 옵션
set background=dark " backupground 옵션을 dark로 설정.
set guifont=NanumGothicCoding:h12:cHANGEUL " guifont 설정.
:set number
set number
" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below. If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.
" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim
" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
syntax on
endif
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark
" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
" au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"endif
" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
" filetype plugin indent on
"endif
" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set showcmd " Show (partial) command in status line.
"set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
"set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden " Hide buffers when they are abandoned
"set mouse=a " Enable mouse usage (all modes)
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
"----- INDENT -----
set autoindent
set cindent
set smartindent
set tabstop=2
set shiftwidth=2
"----- VIEW -----
set visualbell
set number
set ruler
set title
set wrap
set cursorline
set linebreak
set showmatch
set guifont=NanumGothicCoding:h12:cHANGEUL
"----- SEARCH -----
set nowrapscan
set hlsearch
set ignorecase
set incsearch
"----- EDIT -----
set backspace=eol,start,indent
set history=1000
set fencs=ucs-bom,utf-8,euc-kr,latin1
set fileencoding=utf-8
set nobackup
"<===== VUNDLE config Start =====>
" 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
"
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
let path='~/.vim/bundle'
call vundle#begin(path)
Plugin 'gmarik/Vundle.vim'
Plugin 'The-NERD-Tree'
"----- airline -----
Plugin 'bling/vim-airline'
Plugin 'Syntastic'
Plugin 'tpope/vim-fugitive'
"----- Color plugin -----
"Plugin 'molokai'
"Plugin 'aradunovic/perun.vim'
"----- Git plugin -----
Plugin 'airblade/vim-gitgutter'
Plugin 'gitview'
"Plugin 'Indent-Guides'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'pangloss/vim-simplefold'
call vundle#end()
filetype plugin indent on
"<===== VUNDLE config End =====>
"----- VIM-AIRLINE -----
set laststatus=2
"---- COLOR SCHEME -----
"syntax on
"syntax enable
"colorscheme perun
":set listchars=tab:\|\
":set list
"
let g:indent_guides_enable_on_vim_startup = 1
let g:SimpylFold_docstring_preview=1
colorscheme molokai
let g:indent_guides_start_level = 2
let g:indent_guides_guide_size = 1
시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도됙 용도로 사용하지 못하게 하는 공격. 특정 서버에 수많은 접속 시도를 하도록 만들어 다른 이용자가 정상적인 서비스를 이용 할 수 없도록 만든다.
DDos
다수의 분산된 시스템을 이용하여 Dos 공격하는 기술.
대부분의 Dos 공격은 DDos 형태인 경우가 많다.
Flooding Attack
Spoofing의 사전적 의미는 ‘속이다’이다. 네트워크 공격에서 Spoofing 대상은 MAC Address, Ip Address, Port 등 네트워크 통신과 관련된 모든 것이 될 수 있다.
Server와 Client 사이의 Session을 가로채는 기술.
CentOS에 기본적으로 설치되어 있는 OpenJDK는 OracleJDK 보다 낮은 안정성을 제공합니다. 아무래도 Java가 Oracle에 인수되고 나온 OracleJDK보다 OpenJDK가 안정화가 조금 떨어지는것 같습니다.
ajax는 javascript object를 전송하기 위한 기술입니다. 이 때, 전송하는 데이터는 직렬화하여야 합니다.
[test.jsp]
dim_libel = ["aaaa","bbb"]
$.ajax({
url : "test.do",
type : "GET",
data : { dim_libel : dim_libel},
success : function(data) { ..... }
});
[testControl.java]
@RequestMapping(value="teset.do", method={RequestMethod.GET})
public @ResponseBody List<HashMap<String, Object>> getTest(@RequestParam(value="dim_libel", required=false) String[] dim_libel ) {
log.debug(dim_libel);
}
위 코드는 dim_libel에 2개의 문자열 데이터가 있는 배열을 Control로 전송하여 처리하는 코드입니다. 그냥 전송하면
http://localhost:8080/test.do?dim_label_arr%5B%5D=aaaa&dim_label_value%5B%5D=bbbb
위와 같이 [이 변환되서 전달되면서 정상적인 값이 Control로 전송되지 않습니다.
데이터가 직렬화되어 있지 않아, body에 정상적으로 포함되지 않았기 때문입니다.
jQeury의 ajax의 데이터 직렬화 옵션을 통해 간단하게 해결 할 수 있습니다.
dim_libel = ["aaaa","bbb"]
jQuery.ajaxSettings.traditional = true;
$.ajax({
url : "test.do",
type : "GET",
data : { dim_libel : dim_libel},
success : function(data) { ..... }
});