연말정산으로 국세청 자료를 인쇄해서 제출해야하는데

PDF파일을 용지당 4페이지로 인쇄해서 제출하라는 요청이 있었습니다.


개인적으로 Adobe PDF reader같은 툴을 사용하지 않고

웹 브라우저를 이용해서 열어서 보다보니

못 찾아서 해맸습니다.


찾고나니 별거 아니라서 여기에 저장합니다.

일단 파일을 웹브라우저(Chrome, Firefox, Edge ...)등으로 열고 인쇄 버튼을 누릅니다.


그리고 나서는 '속성' 버튼을 클릭합니다.



이 부분에서 해맸는데

'완료' 탭을 클릭하면 나옵니다.



'완료'라는 어색한 이름의 탭 찾는것만 제외하면 간단합니다.

웹 브라우저를 이용해서 gmail을 사용하기가 불편해서 찾아보았다.

mutt라고 하는 툴이 있었는데 설명글이 맘에 들어서 우선 설치해보았다.

"All mail clients suck. This one just sucks less." -me, circa 1995


다른 이메일 클라이언트에 비해서 편리한데

개인적인 경험으로는 엄청나게 편리하다.

참고로 대부분의 메일들이 html로 꾸며져 있어서 html의 Tag들도 같이 보인다.

html 파일 형식에 익숙하면 그런대로 볼만함


다운로드해서 설치하는 방법은 여기를 참고하면되는데

Mac에서는 brew를 이용해서 편리하게 할 수 있다.

 % brew install mutt

 % mkdir -p ~/.mutt/cache


설치하고 나서는 설정파일에 세팅만 하면 끝이난다.

vim이나 nano를 이용해서 설정파일에 설정해준다.

vim을 사용했다.


 % vim ~/.muttrc
set imap_user = "$gmail_id@gmail.com"
set imap_pass = "$gmail_password"
set smtp_url = "smtp://$gmail_id@smtp.gmail.com:587/"
set smtp_pass = "$gmail_password"
set from = "$gmail_id@gmail.com"
set realname = "사용자이름"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed = "+[Gmail]/Drafts"
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
set move = no
set smtp_authenticators = "gssapi:login"


설정 완료 후에 mutt 실행

 % mutt


아래와 같이 실행이 되는데 사용법도 간단한다.
상단 탭에 단축 키 확인해서 사용하면 끝.



더 상세한 설정을 원한다면 아래의 링크 확인하시면됩니다.

https://www.thegeekdiary.com/how-to-install-and-configure-mutt-in-centos-rhel/

...


다 설정했음에도 불구하고 로그인이 실패한다면 아래의 링크에서
보안 수준을 확인 해보시면 해결 될 것입니다.

https://myaccount.google.com/lesssecureapps







출처


1. Git manual


2. Stackoverflow(local log 조회)


3. Stackoverflow(remote log 조회)



Local에서 작업중인 경우 조회하는 방법

# 전체 이력 및 수정했던 사항 조회해서 파일에 기록
% git --no-pager log -p  > git_history_dump



다른 repository의 Log 조회하는 방법 (예시: Selenium-Requests)


# 다른 repository의 이력 및 변경사항 조회해서 파일에 기록
% git clone --bare https://github.com/cryzed/Selenium-Requests Selenium-Requests
% cd Selenium-Requests
% git log -p  > git_history_dump



Reference from : https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins




'기타' 카테고리의 다른 글

SIP Application 명령어 코드 (RFC4740)  (0) 2017.12.19
[Git] 커밋 전체 이력과 diff 결과 조회하기  (0) 2017.12.11
[MYSQL] Join 치트쉬트  (0) 2017.09.11
.vimrc 설정하기 (set)  (0) 2017.04.25
.vimrc 설정하기  (0) 2017.04.24
AS와 S-CSCF간 연동 모드  (0) 2017.04.24

Junegunn Kim 님의 .vimrc를 따라서 사용하고

vim 에디터의 편리함을 알게 되고 

일단은 그분의 .vimrc 설정에서 모르는 것들에 대해 정리한다.

모르는게 태반이다.




보기 좋게 하려다보니, 주석의 맨 우측에 "를 추가함


set number "라인수 세팅"


set autoindent "이전 줄에서 사용하던 들여쓰기를 현재 줄에서도 사용"


set smartindent "autoindent보다 더 많은 경우에 대해서 들여쓰기 해줌"


set laststatus=2 " 화면 하단에 현재 상태 정보 보여줄 것인지 여부 설정"

" 0 - never"

" 1 - only if there are at least two windows (화면분할)"

" 2 - always"



set showcmd "키보드 눌러서 사용하는 명령어 보여줌"


set visualbell "beep 대신에 visual bell 사용"


set timeout timeoutlen=3000 ttimeoutlen=100

"The time in milliseconds that is waited "

"for a key code or mapped key sequence to complete."

"esc 눌렀을 때 키 코드나 매핑 했던것들이 제대로 마무리 될 때까지 기다려주는 시간"

"- time out on mapping after three seconds, "

"- time out on key codes after a tenth of a second"


set shortmess=aIT "Abbreviation, Ignore intro, Truncate other messages"

"vim에서 알려주는 정보들을 짧게하거나 안 보이게 함"


set hlsearch "찾았던 키워드에 하일라이팅 해주기, 끄려면 :noh"


set incsearch "한글자씩 입력할때마다 증가하면서 그에 매칭되는 word에 하일라이팅"


set ignorecase smartcase "/로 검색할 때, 대소문자 구분없이 매칭되는 것을 찾아줌"

"smartcase는 좀더 스마트하게 검색을 해주는데 예를 들어 the, THE, The, ThE가 "

"있을 때, /Th*로 검색하면 T와 Th만 찾아준다."

"ignorecase만 사용하면 the, THE, The, ThE 모두 찾아준다."


set wildmenu "자동완성 기능 향상"

set wildmode=list:full "When more than one match, list all matches and complete first match."


set completeopt=menuone,preview "insert 모드에서 자동완성 추가 옵션"


set tabstop=4 "tab 눌렀을 때 들여쓰기하는 칸 수"

set shiftwidth=4    "<<, >>를 눌러서 들여쓰기 할때 칸 수"

set expandtab smarttab "tab안에 space 채워줌, 이전 줄에서 끝난 그 indent에서 새로운 줄을 시작함"



set list listchars=tab:▸\ ,trail:·,precedes:←,extends:→

"tab과 space 구분하기 용이하게 세팅"


set virtualedit=block "Ctrl + v로 블록잡고 커서를 우측으로 계속 옮길 수 있음, 블록 잡아서 확인하기에 용이함"

"all로 세팅하면 아무모드에서나 커서를 우측에 글자가 없어도 계속 옮길 수 있음"


set nojoinspaces "J로 줄을 합칠 때 space를 1개만 두고 합쳐준다는데 잘 모르겠음"

"차라리 gJ를 사용하면 공백 없이 2개의 줄이 1줄로 merge됨."



set autoread "현재 열고 있는 파일이 아니라 다른 파일에서 수정이 발생한 경우,"

"현재 열고 있는 파일도 변경된 내용을 읽어들인 다는데, 나는 안 써야겠다."



set foldlevelstart=99 "편집하려고 여는 모든 파일의 folding 없앰"


set nocursorline "cursor가 있는곳에 라인이 생기는데 이를 없애줌"


set nrformats=hex "숫자 포맷 0x09 + 1 -> 0x0a "

"octal로 세팅하면 0o07 -> 0o010"



set synmaxcol=9999 "9999 line 이후에는 syntax highlight를 제대로 안 할 수 있음"

"size가 큰 파일을 열때, 속도를 개선하는 효과있음"


set pastetoggle=<F9> "붙여넣기 할때 paste mode on/off 옵션"



set nostartofline "예를 들면 G로 맨 밑줄로 이동할 때 커서가 가장 왼쪽의 시작점으로 이동하지 못하게 한다"

"생각보다 커서가 start of line으로 이동하는것이 불편해서 이렇게 꺼두는게 편리함"


set isfname-=- "vim으로 편집하는 문자가 파일인지 판단하는 옵션"

"-가 있으면 이를 파일로 인식하지 않도록 빼는 설정"



"글자 폭 제한 알림 80자"

if exists('+colorcolumn')

set colorcolumn=80 "vim 7.3 이상"

else

au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)

endif













.

'기타' 카테고리의 다른 글

[Git] 커밋 전체 이력과 diff 결과 조회하기  (0) 2017.12.11
[MYSQL] Join 치트쉬트  (0) 2017.09.11
.vimrc 설정하기 (set)  (0) 2017.04.25
.vimrc 설정하기  (0) 2017.04.24
AS와 S-CSCF간 연동 모드  (0) 2017.04.24
3GPP IMS Architecture  (0) 2017.04.24

Junegunn Kim 님의 .vimrc를 따라서 사용하고

vim 에디터의 편리함을 알게 되고 

일단은 그분의 .vimrc 설정에서 모르는 것들에 대해 정리한다.

모르는게 태반이다.



1. folding


.vimrc 설정이 길어지다보면

이를 카테고리 별로 나눠 보는게 편리하다.

그리고 이를 folding해서 주제별로 보는건 더 편리하다.

zr, zm 으로 폈다, 접었다 할 수 있다.

" vim: set foldmethod=marker foldlevel=0:



2. let

변수를 선언해서 세팅한다.

has('mac')은 Any Macintosh version of Vim인지 확인하고 맞으면 s:darwin은 1로 세팅된다.


has로 확인할 수 있는 항목은 :help feature-list를 확인할 수 있다.


let s:darwin = has('mac')


3. mapleader, maplocalleader


let mapleader = ' '

let maplocalleader = ' '


mapleader를 위 처럼 세팅하면 <Leader>로 세팅한 것들을 사용하기 전에 공백을 먼저 입력해주면 사용가능하다.

maplocalleader는 동일한데 <LocalLeader>로 세팅한 것들을 사용하는데 쓸 수 있다.




4. augroup

augroup vimrc

autocmd!

augroup END


vimrc의 autocommand gorup을 설정하는데

autocmd!로 하는 경우는 기존 세팅된 autocommand를 모두 delete한다.




5. recursive, none recursive 차이


map vs noremap의 차이를 몰랐는데 아래 링크에 가면 이해하기 쉽게 설명이 되어있다.

http://jaeheeship.github.io/console/2013/11/15/vimrc-configuration.html


:map j gg

:map Q j


이런식으로 recursive하게 매핑되면 Q -> j -> gg로 재귀적으로 서로가 서로를 참조하게 되는 차이가 있다.













.

'기타' 카테고리의 다른 글

[MYSQL] Join 치트쉬트  (0) 2017.09.11
.vimrc 설정하기 (set)  (0) 2017.04.25
.vimrc 설정하기  (0) 2017.04.24
AS와 S-CSCF간 연동 모드  (0) 2017.04.24
3GPP IMS Architecture  (0) 2017.04.24
SIP 기본 콜 플로우 (RFC 3665 SIP Basic Call Flow Examples)  (0) 2017.04.21


http://www.tta.or.kr/data/ttas_view.jsp?totalSu=14051&by=asc&order=publish_date&rn=1&pk_num=TTAK.OT-01.0010&nowSu=7644


https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1055




개인 정리용이므로

아래의 내용보다는 위의 출처의 글을 보는것이 

더 도움이 될 수 있다.



AS(Application Server)와 소프트 스위치(S-CSCF)간 연동 모드

- 그림 상에 From, To, Call-ID에 주의를 기울이면 이해하는데 도움이 된다.

- 다이얼로그: SIP 메시지를 통해 두 UA 사이의 설정된 가상의 SIP 관계를 나타낸다.


AS는 응용서비스 동작할 때, 아래의 각 모드들을 적절하게 조합하여

S-CSCF와 연동하여 서비스를 제공한다.




1. AS가 착신 UA 혹은 Redirect 서버로 동작



2. AS가 발신 UA로 동작




3. AS가 SIP Proxy로 동작

- Application Server는 Request에 있는 SIP 헤더를 추가, 변경, 삭제가 가능함




4. AS가 B2BUA로 동작

- 3rd party 호처리를 위해 B2BUA로 동작


4-1 Routing B2BUA

- AS가 Request를 수신하면, 해당 다이얼로그에 대한 세션 처리를 중지 or 보류하고, 

  새로운 다이얼로그 설정을 위해 Request를 생성하여 S-CSCF로 전달



4-2 Initiating B2BUA

AS가 2개의 서로 다른 Request를 생성하여 S-CSCF로 전달

  이 경우 AS는 각 Request에 대한 다이얼로그를 별도로 생성



5. AS를 거치지 않는 경우

- AS는 S-CSCF로 부터의 SIP Request에 대해 이후 진행할 SIP signalling path를 계속 유지하려는 경우

  해당 Request 내에 있는 Record-Route 헤더를 추가해야함

  만일 그렇지 않은 경우 AS는 SIP signalling path에서 제외됨












.


+ Recent posts