solstyle

공지 사항

SolBox 2009. 4. 12. 01:25 by solstyle
[펌]연애할때 한번쯤 겪었을 갈등. 남자와 여자의 차이
어느날 부터 여자로부터 시작되는 사소한 다툼이 시작된다



왜 빨리 답장을 하지 않아?

왜 다른 여자와 얘기를 하는거야?

왜 나랑 있을때 자꾸 다른곳을 보는거야?



이런 사소하지만 여자는 크다고 느끼는 것들을 말하면

보통 남자들은 이렇게 대꾸한다

왜 그러는거야 별것도 아닌걸로 여기서 여자는 발끈하게 된다

별것도 아니라고? 이게 별게 아니야? 너한텐 별게 아니라고?

남자는 싸우고 말하는게 귀찮기 때문에

여자의 말을 다 듣고 풀어주기보단 그냥 덮으려고 한다

'아 그냥 친군데 왜 의심해 아무것도 아니야'

'바빴어 몰랐어 싸움걸지좀 마라 그만하자'

여자는 처음부터 싸움 걸려는것도 아니였고

그저 자기가 느끼는 서운함을 밖으로 들어냈을뿐인데

그때 남자의 태도에 상처받고 화내면서 얘기하게 된다



여기서 남자의 태도가 그 커플이 얼마나 장기전이 될지

단기전이될지를 결정한다 이게 발단

이런식으로 자주 싸우게 되면 남자는 짜증만 내기 시작한다

뭔말을 하더라도 "또 왜그래" 이게 시작

"자꾸이러면 난 진짜 힘들다" 이런 말을 하게된다



그때부터 여자는 생각한다

멍멍 큰소리로 짖을때 주인에게 맞아서 눈치보던 강아지 마냥

자신의 서운함을 이해해주기는 커녕

이유없는 투정으로 받아들이고 화내는 남자의 태도에서

상처아닌 상처를 입게 되는 것이다



'내가 서운해서 서운한걸 말하면

너에겐 이해안되는 일이 되어서 화내는구나'



이때부터 남자를 바꿔야겠다는 생각은 없어진다.

'너랑 안 싸우려면 너와 내가 안 맞는 사이가 아니려면 난 서운해도 화나도 그냥 말을 말아야 겠구나 '

'니 생각을 바꾸느니 너를 바꾸느니 내 맘을 바꿔야겠다'



여기서 부터 싸움은 아마 줄어들것이다

이쯤되면 남자는 이런 착각을 하게 될수도 있을것이다



'내가 많이 좋아서 알아서 내게 맞추는건가?'

'이제야 날 이해하는군'



하지만 여자는 속으로 칼을 갈고 있을 가능성이 많다



여자 - 왜 이렇게 연락을 안했어

남자 - 바빴다고

여자 - (속으로: 내 목소리가 듣고싶다면 1분이라도 시간냈지)

응 그래 바빴구나

남자 - 그래 그런건 이해해야지

여자 - (속으로: 이해는 둘이 하는거지 혼자하는건가?)

응 알겠어 미안~



남자는 이로써 전혀 싸울일이 없다고 생각하겠지만

여자의 가슴엔 하나 늘어난 셈이다

여자는 말론 미안하다곤 하지만 속으론 전~혀 아니올씨다

너한테 기대한 내가 병신이지 생각하고 만다



그렇게 하나하나 쌓여가다보면 어느세 모든걸 해탈한 석가모니

마냥 간디마냥 남자가 지나치게 서운하게 해도 그러려니 하게된다

그쯤되면 남자는 생각한다



남자 - 뭐지? 이년 지랄할때 됐는데 아무말도 안하네

여자 - ?? 난 진짜 아무렇지도 않다니까?



여자는 정말 아무렇지가 않다

왜냐면, 자기가 생각하기에 정말 사랑한다면 정말 좋아한다면

할수 없는 행동을 남자는 지금껏 해왔고

그러면서, 아 얘는 날 결국 안 좋아하는구나 스스로 세뇌시켰으며

그렇게 내려진 결론으로 나를 별로 안 좋아하는데 그럴수도 잇지? 라며 아무렇지도 않게 되는것이다




남자 -진짜미안해 전화한다는게깜박했어..친구들이 자꾸 술을줘서

여자 -??아냐 난 진짜로 괜찮아~ 재밌었지

남자 - 아..진짜 미안해..

여자 - 괜찮다는데도 그러네??

(속마음: 난 진짜 괜찬은데 오늘은 널 기다리지도 않았고 내 할일을 하고 있었고 니가 종일 내게 연락하지 않았단 것도 조금 전에야 깨달았는데)



남자는 그제서야 웃으면서 고마워 날 이해해주는건 너뿐이야

라고 말하게 된다 여자는 무덤덤하다

그러다가 어느날 심심한 오후쯤 되면 여자는 생각하게 된다



여자 -사귀는거 같지도 않고 언제까지이러고 이해하고 사겨야하나



남자에게 전화를 걸게 된다



여자 - 헤어지자

남자 - ..........갑자기 무슨소리야?

여자 - 헤어지자구

(속마음: 갑자기? 너한텐 갑자기겠지만 나한텐 그때부터

시작 된 이별이였어)

남자 - ........갑자기 왜 그래.. 내가 뭐 잘못했어?

여자 - (속마음: 더이상 뭔말을 하고 싶지도 않다 설명도 귀찮다 )

아니,그런거아니야,니 잘 못없어 그냥,헤어지자



남자는 헤어지고 나서 생각한다

자기가 못해준것, 자기가 해주지 못한것, 싸울때 져주지 못한것,

여자가 울면서 말할때 진지하게 들어주지 못한것

그동안의 자기가 했던 몇번의 실수를



그때서야 알게된다



남자의 모든 행동을 100% 이해한다는건

여자에겐 사랑을 포기한다는 뜻이라는걸

=================================================

여기에 동의하는 여자는 댓글의 80%를 차지하는정도로 많았다.



이 점에 대해서 남자들이 하고 싶은 말은 뭘까?


정정 '나 연애해보지 않아서 몰라' 라는 리플이외에 이 글에 동감을 표하지 않은 리플은 손에 꼽을정도였다

하고싶은말이 뭐냐고?

있을때 잘하라고

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.
2008. 8. 27. 22:20

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.
2008. 5. 19. 22:46

SolBox 2008. 5. 18. 23:02 by solstyle

VI 에디터 사용법<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

이 문서는 프리(free)입니다. 자유 소프트웨어 재단(FSF)에 의해 제출된 GNU GPL(일반 공개 라이선스) 2판 또는 그 이후 버전이 정하는 바에 따라 자유롭게 재배포하고 수정할 수 있습니다.
이 문서는 유용하게 쓰이기를 바라는 마음으로 배포합니다. 그러나 아무런 보증도 하지 않습니다. 심지어 상업성이나 특정 목적에 적합하다는 보증도 하지 않습니다. 자세한 사항은 GNU GPL을 참조하십시오.

1. vi?

리눅스나 유닉스를 처음 접하는 사람에게 vi는 매우 골치아픈 존재이다. 도스나 윈도우에서 문서 편집기를 써 본 사람에게는 vi는 매우 불편한 편집기로 생각될 것이다. 그러나 내가 아는 한 vi만큼 가볍고 편하게 쓸 수 있는 편집기는 지구상에는 없다! `가볍고'라는 단어를 붙인 이유는 이맥스(emacs)라는 편집기를 쓰는 사람이 항의할 것이 걱정되기 때문이다. 이맥스는 호랑이 담배피던 시절부터 가장 똑똑한 에디터로 군림해 왔다. 그러나 프로그램 크기만도 수십메가에 달하고 설치되어 있지 않은 경우도 많다. 하지만 대부분의 유닉스 계열 시스템이라면 vi는 십중팔구 설치되어 있을 것이다. 따라서 한번 익혀두면 여러모로 편리하게 쓸 수 있다.

vi라는 이름은 `VIsual display editor'를 의미한다. vi는 버클리의 어느 천재가 만들었다고 한다. vi를 만들던 시절에는 ed와 같은 라인 에디터가 일반적이었다. 그 옛날 옛적 도스의 `edlin' 이라는 라인 에디터를 써 본 사람이라면 라인 에디터가 얼마나 불편한지 알 것이다. 유닉스처럼 텍스트 에디터와 포매터가 분리된 환경에서는 텍스트 에디터의 비중이 크기 때문에 기능 면에서도 많은 요구가 있게 마련이다. 때문에 텍스트 에디터가 워드 프로세서의 기능의 상당 부분을 가지게 되었다. 유닉스에 여러가지 종류가 있듯이 vi도 여러가지 클론이 만들어졌다. 요즘 대부분의 배포판에는 vim이라는 vi의 클론이 포함되어 있다. vim은 완벽하게 한글을 지원하고 원래의 vi의 기능을 충실하게 갖고 있을 뿐만 아니라 여러가지 좀더 편리한 툴들을 제공한다.

2. vi 입문

2-1. 실행과 종료, 파일 저장

우선 vi를 실행해 보자. 쉘 프롬프트에서 vi<CR>를 입력하면 다음과 같은 화면이 보일 것이다. <CR>< C R >을 차례대로 타이프하라는 뜻이 아니라 엔터를 치라는 뜻이다. 만약 이미 존재하는 어떤 파일을 편집하고 싶다면 `vi [file]<CR>'을 입력한다.

~

~

~

~                         VIM = Vi IMproved

~

~                           version 5.6.70

~                      by Bram Moolenaar et al.

~

~                    Vim is freely distributable

~           type  :help uganda<Enter>     if you like vim

~

~           type  :q<Enter>               to exit

~           type  :help<Enter>  or  <F1>  for on-line help

~           type  :help version5<Enter>   for version info

~

~

~

 

[영어][완성][세벌식]

`~'는 빈 줄, 즉 아무것도 없는 줄이라는 뜻이다. 친절하게도 vim은 실행하자마자 가장 중요한 명령을 알려준다. 바로 `:q<CR>'이다. 한번 실행해 보자. 쉘 프롬프트로 돌아갈 것이다. 이미 `quit'의 약자라는걸 짐작하고 있을 것이다. vi를 종료하는 명령 못지 않게 중요한 명령이 있다. 바로 파일을 저장하는 명령이다. 파일을 저장하기 위해서는 명령 모드에서 `:w [file]<CR>'을 타이프하면 된다. 만약 이미 파일 이름이 지정되어 있다면 그냥 간단히 `:w'만 타이프해도 된다. w `write'의 첫 글자이다. , 파일을 저장한 후 vi를 종료하려면 명령 모드에서 `:wq<CR>' 혹은 `ZZ'를 차례로 타이프하면 된다.

2-2. 글 입력

이제 뭔가를 써 넣을 차례다. 그 전에 우선 한 가지를 알아둘 것이 있다. vi가 다른 `평범한' 편집기와 비교할 때 가장 특이한 점은 프로그램의 상태가 `명령 모드' `입력 모드'로 구분된다는 점이다. 보통의 편집기는 키보드에서 입력되는 문자가 그대로 문서에 포함될 것이다. , 기본적으로 입력 모드에 있다. 이에 반해 vi는 기본적으로 명령 모드에 있다. 이 상태에서 키보드에서 입력하는 문자 하나하나는 vi에 대한 명령어가 된다. 입력 모드로 들어가는 문자를 입력하면 비로소 그때부터 입력 모드가 되는 것이다. 입력 모드에서 명령 모드로 복귀하려면 `<ESC>'키를 누른다. 입력 모드로 들어가는 명령을 요약하면 다음 표와 같다.

a

커서 위치의 다음 칸부터부터 끼워넣기(append)

A

커서가 있는 줄의 끝에서부터 끼워넣기

i

커서 위치부터 끼워넣기(insert)

I

커서가 있는 줄의 맨 앞에서부터 끼워넣기

o

커서 바로 아래에 줄을 만들고 끼워넣기(open line)

O

커서 바로 위에 줄을 만들고 끼워넣기

 

다음과 같이 적어 보자.

iI am a member of KULS!<CR>Are you a member of KULS?<CR>나는 018이다.

화면에 다음과 같이 입력될 것이다.

I am a member of KULS!

Are you a member of KULS?

나는 018이다.

~

~

입력을 마쳤으면 `<ESC>'를 눌러 다시 명령 모드로 돌아오자. 만약 현재 상태가 입력 모드인지 명령 모드인지 잘 모른다면 무조건 `<ESC>'키를 눌러 일단 명령모드로 돌아온 후 다시 시작하도록 한다.

2-3. 커서 이동

이제 커서를 이동시켜 보자. 커서 이동에 사용하는 키는 다음과 같다.

h

한칸 왼쪽으로 이동

l

한칸 오른쪽으로 이동

j

한줄 아래로 이동

k

한줄 위로 이동

w

다음 단어의 첫 글자로 이동

W

다음 단어의 첫 글자로 이동

b

이전 단어의 첫 글자로 이동

B

이전 단어의 첫 글자로 이동

e

단어의 마지막 글자로 이동

E

단어의 마지막 글자로 이동

^

그 줄의 첫 글자로 이동

$

그 줄의 마지막 글자로 이동

0

그 줄의 처음으로 이동

<CR>

다음 줄의 첫 글자로 이동

+

다음 줄의 첫 글자로 이동

-

윗줄의 첫 글자로 이동

(

이전 문장의 첫 글자로 이동

)

다음 문장의 첫 글자로 이동

{

이전 문단으로 이동

}

다음 문단으로 이동

 

단어 단위 이동 명령에서 대문자 명령은 소문자 명령과 약간 차이가 있다. 대문자 명령은 무조건 띄어쓰기 전까지를 한 단어로 취급한다. 다시 말해 I'm a member of "KULS"에서 w, b, eI / ` / m / a / member / of / " / KULS / " 를 각각 한 단어로 취급하는 데 반해 W, B, EI'm / a / member / of / "KULS" 를 한 단어로 취급한다. , vi는 빈 줄이 나오기 전까지를 한 문단으로 취급한다. , {를 누르면 이전 빈 줄로, }를 누르면 다음 빈 줄로 이동한다.

2-4. 글 수정

작성되어 있는 글을 수정하는 명령은 보통 c와 커서 이동 명령이 결합된 형태이다. 정리하면 다음과 같다.

r

커서 위치의 한 글자 교체

R

커서 위치부터 <ESC>를 누를때까지 다른 글자로 교체

s, cl

커서 위치의 글자를 한개를 여러 글자로 교체

ch

커서 바로 앞의 글자를 한개를 여러 글자로 교체

cw

커서 위치의 한 단어를 교체

c0

커서 위치부터 줄의 처음까지 교체

C, c$

커서 위치부터 줄의 끝까지 교체

cc

커서가 있는 줄을 교체

cj

커서가 있는 줄과 그 다음 줄을 교체

ck

커서가 있는 줄과 그 앞줄을 교체

 

이제 실습을 해보자. 다음과 같이 타이프 해 보자.

jjjr1kwwwwcwKorea University Linux Study<ESC>

아래와같이 바뀌었을 것이다. 세 글자 왼쪽으로 이동한 후(jjj) 커서 위치의 글자를 1로 교체하라(r1)는 뜻이다. r 명령의 경우 한 글자만 교체하는 명령이므로 교체 후 자동으로 명령모드로 전환된다. 그 다음은 한줄 위로 이동한 후(k) 네 단어 오른쪽으로 이동하고(wwww) 커서 위치의 단어를 Korea University Linux Study로 교체하고(cw) 명령모드로 전환하라(<ESC>)는 뜻이다.

I am a member of KULS!

Are you a member of Korea University Linux Study?

나는 011이다.

~

~

다시 다음과 같이 타이프해 보자.

O고려대학교 리눅스 동아리 KULS! Since 1999.<ESC>jkkksthe<ESC>

이제 아래와 같이 바뀌었을 것이다. 먼저 커서가 있는 줄의 위쪽에 한 줄을 삽입하고(O) (고려대학교 리눅스 동아리 KULS! Since 1999.)를 적은 다음 아래줄로 가서 오른쪽으로 세 글자 이동한 후(jkkk) 커서 위치의 한 글자를(s) the로 교체하라고 명령한 것이다.

I am a member of KULS!

고려대학교 리눅스 동아리 KULS! Since 1999.

Are you the member of Korea University Linux Study?

나는 011이다.

~

~

2-5. 글 삭제

글을 삭제하는 명령도 수정하는 명령과 거의 비슷하다. 글을 수정하는 명령이 c와 커서 이동 명령이 결합된 형태인것처럼 글을 삭제하는 명령은 d와 커서 이동 명령이 결합된 형태이다. 정리하면 다음과 같다.

x, dl

커서 위치의 글자 삭제

X, dh

커서 바로 앞의 글자 삭제

dw

한 단어를 삭제

d0

커서 위치부터 줄의 처음까지 삭제

D, d$

커서 위치부터 줄의 끝까지 삭제

dd

커서가 있는 줄을 삭제

dj

커서가 있는 줄과 그 다음 줄을 삭제

dk

커서가 있는 줄과 그 앞줄을 삭제

 

이제 글을 삭제해보자. 다음과 같이 타이프한다.

j0wd0wxxxxwwXXXjwwDjdd

다음 줄의 처음으로 이동해(j0) 한 단어 오른쪽으로 이동한 후(w) 커서 위치에서부터 줄의 처음까지 지우고(d0) 다시 한 단어 이동한 뒤(w) 커서 위치의 네 글자를 지우고(xxxx) 다시 두 단어 이동한 뒤(ww) 커서 바로 앞의 글자 세개를 지우고(XXX) 다음 줄로 내려가 두 단어 오른쪽으로 이동한 후 거기에서부터 줄의 끝까지 지우고(jwwD) 다음 줄을 모두 지우라(jdd)는 뜻이다. 이제 아래와 같이 바뀌었을 것이다.

I am a member of KULS!

고려대학교 리눅스 동아리 KULS! Since 1999.

you member Korea University

~

~

2-6. 복사 & 붙이기

글을 복사하는 명령을 이미 두 가지를 배웠다. 위에서 글 교체와 글 삭제 명령으로 지워진 글은 버퍼에 저장된다. 버퍼에 저장된 글을 끼워넣는 명령은 두 가지가 있다. p 를 누르면 현재 커서 위치의 바로 다음에 끼워넣고, P를 누르면 현재 커서 위치의 바로 앞에 끼워넣는다.

현재 작성되어 있는 글에 영향을 미치지 않고 글을 복사하는 방법은 cd 대신 y를 사용한다는 점을 제외하면 위에서 살펴본 교체나 삭제 방법과 동일하다. y는 잡아당기다 라는 뜻의 영어 단어 yank의 첫 글자이다. 정리하면 다음과 같다.

yw

커서 위치부터 단어의 끝까지 복사

y0

커서 위치부터 줄의 처음까지 복사

y$

커서 위치부터 줄의 끝까지 복사

yy

커서가 있는 줄을 복사

yj

커서가 있는 줄과 그 다음 줄을 복사

yk

커서가 있는 줄과 그 앞줄을 복사

p

커서의 다음 위치에 붙여넣기

P

커서가 있는 위치에 붙여넣기

 

다음과 같이 입력해보자.

kkPjyyjpjdw$pdw$p0dw$p

먼저 두 줄 위로 올라가 커서가 앞쪽(위쪽)에 조금 전에 삭제한 내용을 끼워넣고(kkP) 다음 줄을 복사해서(jyy) 한 줄 아래로 이동한 후 커서 뒤쪽(아래쪽)에 끼워넣은 후(jp) 한 줄 아래로 내려가 한 단어를 삭제한 후 그 단어를 그 줄의 맨 끝에 붙여넣고(jdw$p) 다시 맨 앞의 한 단어를 삭제한 후 맨 뒤에 붙여넣으라(0dw$p)는 뜻이다. 이제 다음과 같이 바뀌었을 것이다.

나는 011이다.

I am a member of KULS!

고려대학교 리눅스 동아리 KULS! Since 1999.

I am a member of KULS!

Korea University you member

~

2-7. 기타

다음은 위에는 해당되지 않지만 많이 사용되는 명령들이다.

u

작업 취소(undo)

U

그 줄에 행해진 작업 모두 취소

Ctrl+r

작업 재실행(redo)

.

조금 전에 했던 명령을 반복

J

현재 줄과 아래 줄을 연결

~

대문자를 소문자로, 소문자를 대문자로 바꿈

%

괄호의 반대쪽 짝으로 이동

Ctrl+l

현재 화면을 지우고 다시 그림

Ctrl+g

파일에 관한 정보를 표시

 

다음과 같이 입력해 보자.

kkk0bbbxxxuuujdw.UkkJ

먼저 세 줄 위로 이동해 그 줄의 맨 앞으로 이동한 후 세 단어 오른쪽으로 이동하고(kkk0bbb) 글자 세개를 지웠다가 이를 취소한 후(xxxuuu) 한줄 아래로 내려가 한 단어를 삭제하고(jdw) 다시 한번 한 단어를 삭제하고(.) 그 줄에서 행해진 작업을 모두 취소한 뒤(U) 두 줄 올라가 그 줄과 그 다음 줄을 연결하라(kkJ)는 명령이다. 이제 다음과 같이 바뀌었다.

나는 011이다. I am a member of KULS!

고려대리눅스 동아리 KULS! Since 1999.

I am a member of KULS!

Korea University you member

~

Ctrl+l 명령은 화면을 다시 나타내는 명령이다. 문서 작성중에 talk 요청이 오거나 혹은 다른 메시지에 의해 화면이 지저분해질 경우 사용하면 편리하다.

지금까지 배운 대부분의 명령 앞에는 숫자 인수를 줄 수 있다. 다음과 같이 타이프해 보자.

3j0w2dw2k2yy3P

세 줄 아래로 내려간 후 첫 번째 칸으로 이동했다가 한 단어 오른쪽으로 이동하고(3j0w) 두 단어를 지운 후(2dw) 두줄 위로 올라가서(2k) 두 줄을 복사해서(2yy) 세번 붙여넣기 하라(3P)는 뜻이다. 이제 다음과 같이 바뀌었을 것이다.

나는 011이다. I am a member of KULS!

고려대리눅스 동아리 KULS! Since 1999.

I am a member of KULS!

고려대리눅스 동아리 KULS! Since 1999.

I am a member of KULS!

고려대리눅스 동아리 KULS! Since 1999.

I am a member of KULS!

고려대리눅스 동아리 KULS! Since 1999.

I am a member of KULS!

Korea member

~

이제 기본적인 내용은 다 익혔다. 지금까지 배운 내용만으로도 간단한 문서를 작성하고 편집하는 데에는 문제가 없을 것이다. 이제 vi를 빠져나가자.

:q<CR>

, 그런데 vi가 말을 듣지 않는다. 화면 맨 아래를 보면 다음과 같이 나와 있을 것이다.

~

~

No write since last change (use ! to override)

. 파일을 저장하지 않았기 때문에 그냥은 나갈 수 없다는 뜻이다. 강제로 빠져나가려면 !를 사용해야 한다.

:q!<CR>

이제 별 탈 없이 vi를 빠져나올 수 있을 것이다.

3. vi 중급 사용자로

일단 vi를 실행한 후 /usr/doc/HOWTO/Installation-HOWTO 라는 파일을 한번 열어보자. 애써 실행한 vi를 빠져나온 다음 다음과 같이

lhs0@libretto$ vi /usr/doc/HOWTO/Installation-HOWTO

vi를 다시 실행해줘도 되겠지만, 장차 vi의 고수가 될 사람이 이런 구차한 방법을 쓸 수는 없다. 명령 모드에서 다음과 같이 입력하자.

:e /usr/doc/HOWTO/Installation-HOWTO<CR>

bash에서처럼 파일 이름을 전부 다 타이프하지 않고 일부만 타이프한 후 <TAB> 키를 누르면 자동으로 완성된다. 다음과 같은 화면이 나올 것이다. 꼭 이 파일이 아니라도 상관없다. 만약 이 파일이 없다면 다른 아무 파일이나 큼지막한 파일을 열어보자.

The Linux Installation HOWTO

by Eric S. Raymond

v4.15, 20 November 1998

 

This document describes how to obtain and install Linux software. It

is the first document which a new Linux user should read to get

started.

______________________________________________________________________

 

Table of Contents

 

...

 

"/usr/doc/HOWTO/Installation-HOWTO" [readonly] 1518 lines, 59961 characters

[영어][완성][세벌식]

전체 1518줄이다. j키를 눌러 한 줄씩 내려가며 한번 세보자. 농담이다. 설마 정말 이렇게 하는 사람이 있다면 필자는 아주 슬프다.(-;) 화면 맨 아래에 보면 1518 lines 라고 나와 있다. 만약 나오지 않는다면 Ctrl+g를 눌러보자.

3-1. 화면 이동

앞 장에서 이미 커서 이동 명령을 배웠다. 그러나 커다란 문서에서 j, k 키만 가지고 돌아다니는 것은 너무 시간이 오래 걸린다. 커다란 문서를 편집할 때 화면 이동에 쓰이는 키는 다음과 같다.

H

커서를 화면의 맨 위로

z<CR>

현재 줄을 화면의 맨 위로

M

커서를 화면의 중앙으로

z.

현재 줄을 화면의 중앙으로

L

커서를 화면의 맨 아래로

z-

현재 줄을 화면의 맨 아래로

[n]H

커서를 위에서 [n]번째 줄로

[n]L

커서를 아래에서 [n]번째 줄로

Ctrl+u

반 화면 위로 스크롤

Ctrl+b

한 화면 위로 스크롤

Ctrl+d

반 화면 아래로 스크롤

Ctrl+f

한 화면 아래로 스크롤

gg, 1G

문서의 맨 처음 줄로

G

문서의 맨 마지막 줄로

[n]G

[n]번째 줄로 이동

 

 

 

이제 또 실습을 해 볼 차례다. 먼저 G를 눌러보자. 화면의 맨 마지막 줄로 커서가 이동할 것이다. 이번에는 gg를 입력해 보자. 다시 맨 처음 화면으로 돌아올 것이다. 극과 극으로만 움직이니 별로 재미가 없다. 100G를 한번 입력해 보자. 100번째 줄로 커서가 이동할 것이다. 정말 100번째 줄인지 궁금하면 k키를 한번씩 누르며 몇 번 눌러야 첫 번째 줄 까지 가는지 한번 세보자. 정말 따라하는 사람이 있다면 정말 이 글을 더 이상 쓰기가 싫어질 것 같다.

:set number<CR> 또는 :set nu<CR>

를 입력해 보자. 화면 왼쪽에 줄 번호가 표시될 것이다.

:set nonumber<CR> 또는 :set nonu<CR>

를 입력하면 다시 사라질 것이다.

이제 Ctrl+f를 눌러 한 페이지씩 아래로 내려가 보자. 다시 Ctrl+b를 눌러 원래 위치로 돌아와 보자. 이번에는 H를 눌러 보자. 커서가 화면의 맨 첫 번째 줄로 이동할 것이다. M, L도 한번씩 눌러보자. 이번에는 z<CR>을 눌러보자. H를 눌렀을 때와는 약간 다를 것이다. H를 누르면 화면은 정지된 채 커서만 이동하는 데 반해 z<CR>을 누르면 커서의 위치가 문서에 고정된 채 문서가 스크롤되어 커서가 있는 줄이 첫 번째 줄에 위치하게 된다. z., z-도 한번씩 눌러보자.

3-2. 마킹

이제 커다란 문서에서도 마음대로 커서를 움직일 수 있게 되었다. 그런데 만약 어떤 위치에서 작업하다가 잠깐 다른 위치로 가서 뭔가 복사해서 원래의 위치에 붙여넣을 경우를 생각해 보자. 줄 번호를 기억해 두었다가 [n]G 명령으로 그 줄로 가도 되겠지만 똑똑한 컴퓨터를 놔두고 머리를 혹사시킬(?) 필요는 없다. vi 26개의 마킹을 제공한다. , 어떤 위치에 마크를 해 둔 후 다른 위치로 이동했다가 다시 돌아갈 때 그 마크를 이용할 수 있다. 마킹에 관계된 명령들을 정리하면 다음과 같다.

ma

현재 위치를 `a'로 마크

 

 

`a

마크된 `a'로 이동

'a

마크된 `a'가 있는 줄의 처음으로 이동

``

직전의 커서 위치로 이동

''

직전에 커서가 위치하던 줄의 처음으로

 

3-3. 여러개의 버퍼 사용

앞에서 버퍼를 사용하는 방법에 대해서 이미 배웠다. 그런데 앞에서 배운 내용으로는 마지막으로 버퍼에 저장된 내용밖에는 사용할 수 없다. vi는 이전 9개까지 버퍼에 저장되었던 내용을 기억한다. 먼저 삭제, 복사, 교체한 글은 1번 버퍼에 저장된다. 그 상태에서 또 다른 글을 삭제, 복사, 교체하면 그 내용이 1번 버퍼에 저장되고 1번 버퍼에 내용은 2번 버퍼로 옮겨진다. 그 상태에서 다시 글을 삭제하거나 복사하거나 교체하면 그 내용이 다시 1번 버퍼에 옮겨지고 1번 버퍼에 있던 글은 2번 버퍼에, 2번 버퍼에 있던 글은 3번 버퍼로 옮겨진다. 이런식으로 총 9개의 버퍼에 내용이 저장된다. [n]번째 버퍼에 있는 내용을 붙여넣기 위해서는 다음과 같이 입력하면 된다.

"[n]p 혹은 "[n]P

, 붙여넣기 전에 "[n]을 붙여주면 된다. 만약 어떤 버퍼에 저장된 내용을 붙여넣어야 할지 잘 모르겠으면 다음과 같이 해보면 자동적으로 버퍼의 번호를 증가시킬 수 있다.

"1pu.u.u.u.

위에서 이야기한 9개의 버퍼 외에도 vi에서는 a부터 z까지 이름이 붙은 26개의 버퍼를 더 사용할 수 있다. 만약 현재 줄부터 3줄을 버퍼 `a'에 복사 싶다면 "a3yy를 입력한다. 현재 커서의 위치에서 줄의 끝까지 지우면서 그 내용을 버퍼 `b'에 저장하고 싶다면 "bD를 입력하면 된다. 버퍼에 있는 내용을 붙여넣는 방법은 앞에서 설명한 9개의 버퍼와 같다. 만약 버퍼 `a'에 있는 내용을 붙여넣고 싶다면 "ap를 입력하면 된다.

3-3. 패턴 검색 및 교체

패턴을 검색하는 방법은 크게 두 가지가 있다. 먼저 그 줄에서 일치하는 글자를 찾는 방법이다. 만약 현재 줄에서 `a'라는 문자를 찾고 싶다면 fa를 입력한다. 다음 `a'를 검색하려면 ;를 입력하고 다시 이전의 `a'를 검색하려면 ,를 입력한다. 사실 위에서 배운 한 줄 안에서의 검색은 별로 쓸 일이 없을 것 같다. 대부분의 경우 그냥 눈으로 보고 h, l 키나 w, b 키로 찾아가는 것이 속편하다는 사람이 많을 것 같다.

보다 많이 쓰이는 검색 방법은 문서 전체에서 특정 패턴을 찾는 방법이다. 문서 전체에서 특정 패턴을 찾는 방법을 정리하면 다음과 같다.

/[pattern]<CR>

현재 위치에서부터 아래 방향으로 패턴 검색

?[pattern]<CR>

현재 위치에서부터 위쪽 방향으로 패턴 검색

n

검색하던 방향으로 계속 패턴 검색

N

검색하던 반대 방향으로 계속 패턴 검색

 

만약 `linux'라는 단어를 검색하고 싶다면 다음과 같이 입력한다.

/linux<CR>

계속하여 일치하는 패턴을 검색하고 싶다면 n을 입력한다. 문서의 맨 마지막 패턴에서 다시 n을 누르면 다시 문서의 처음부터 검색을 시작할 것이다. 이 기능을 끄고 싶다면 다음과 같이 입력한다.

:set nowrapscan<CR> 또는 :set nows<CR>

이제 문서의 끝에 도달하면 다시 처음으로 돌아가지 않을 것이다. 다시 켜고 싶다면 다음과 같이 입력한다.

:set wrapscan<CR> 또는 :set ws<CR>

검색만 하니 별로 재미가 없다. 이제 특정 패턴을 다른 패턴으로 바꾸어 보자. 어떤 패턴을 다른 패턴으로 바꾸는 방법을 정리하면 다음과 같다.

:s/old/new<CR>

현재 줄의 처음 old new로 교체

:s/old/new/g<CR>

현재 줄의 모든 old new로 교체

:1,20s/old/new/g<CR>

1부터 20번째 줄까지 모든 old new로 교체

:-2,+4s/old/new/g<CR>

커서 2줄 위부터 4줄 아래까지 oldnew로 교체

:%s/old/new/g<CR>

문서 전체에서 old new로 교체

:%s/old/new/gc<CR>

문서 전체에서 old new로 확인하며 교체

:g/pattern/s/old/new/g<CR>

pattern이 있는 모든 줄의 old new로 교체

:g/pattern/s//new/g<CR>

:%s/old/new/g<CR>과 동일

 

3-4. vi에서 UNIX 명령 실행

다음과 같이 입력해보자.

:!bash<CR>

, 이건...친숙한 쉘 프롬프트이다. 만약 vi를 사용하다가 잠깐 쉘 프롬프트로 빠져나와야 할 경우 사용한다. 다시 vi로 돌아가고 싶으면 exit<CR>를 입력한다. :q<CR> vi를 빠져나온것과는 달리 현재 커서의 위치나 버퍼의 내용이 그대로 보존되므로 잠깐 동안 쉘 프롬프트로 빠져나왔다가 금방 다시 vi로 돌아가야 할 경우 편리하게 사용할 수 있다. 그런데 주의할 점이 하나 있다. 이렇게 vi를 빠져나온 후 다시 vi를 실행해서는 안된다. 별 문제야 없겠지만 같은 파일을 다시 연다면 문제가 생길 수 있다.

만약 한 개의 명령어만 실행할 경우 좀더 편리한 방법이 있다.

:![command]<CR>

필자는 현재 latex vi로 이 문서를 작성하고 있는데 문서를 미리보기 할 때마다 vi를 빠져나가서 봐야 한다면 무척 불편할 것이다. 다행히 다음 명령어로 vi를 빠져나가지 않고 미리보기를 할 수 있다.

:!latex %; xdvi %<.dvi<CR>

`latex' 이라는 명령으로 현재 편집중인 파일인 vi-seminar.tex 파일을 컴파일한 다음 생성된 vi-seminar.dvi 파일을 `xdvi'라는 프로그램으로 열어보라는 명령이다. 매번 이렇게 타이프 할 필요는 없다. :을 누른 후 위쪽 화살표 키 혹은 Ctrl+p 키를 누르면 이전에 사용했던 명령이 나올 것이다. 이전에 사용했던 명령을 찾아 단순히 엔터 키만 쳐 주면 된다.

3-5. 끝줄 모드의 사용

이미 끝줄 모드에서 사용하는 명령어를 몇 가지 배웠다. 명령 모드에서 `:'를 입력하면 아래와 같이 화면 맨 아래에서 입력하는 글자들이 보일 것이다.

~

~

~

:wq

[영어][완성][세벌식]

이와 같은 모드를 `끝줄 모드' 혹은 `ex 모드'로 따로 구분해서 부르기도 한다. 끝줄 모드에서 많이 사용하는 명령어를 정리하면 다음과 같다. 특정 패턴을 다른 패턴으로 교체하는 방법은 이미 위에서 정리하였으므로 다시 하지 않겠다.

:q<CR>

vi를 종료함

:w<CR>

편집중인 문서를 저장

:w [file]<CR>

편집중인 문서를 [file]로 저장

:w >> [file]<CR>

편집중인 문서를 [file]에 덧붙여서 저장

:e [file]<CR>

[file]을 불러옴

:e#<CR>

이전에 편집하던 파일을 불러옴

:e%<CR>

현재 파일을 다시 불러옴, 즉 저장하지 않은 작업 취소

:r [file]<CR>

[file]을 커서위치에 끼워넣기

:set [option]<CR>

[option]을 켜기

:set [nooption]<CR>

[option]을 끄기

:![command]<CR>

[command] 실행

:r ![command]<CR>

[command] 실행 결과를 끼워넣기

 

예를 들어 현재 위치에 날짜와 시간을 삽입하고 싶으면

:r !date<CR>

를 입력한다. 만약 phone 이라는 파일을 정렬하여 삽입하고 싶으면

:r !sort phone<CR>

를 입력하면 된다. 앞에서 이미 `set'명령에 사용할 수 있는 옵션을 몇 가지 배웠다. `number' `wrapscan'이 생각나지 않는다면 앞장으로 되돌아가 확인하기 바란다. 다른 유용한 옵션들은 다음 장에서 설명하겠다.

4. vi의 고수로

지금까지 배운 내용만 사용하더라도 이제 vi를 다른 범상한 편집기와는 비교도 할 수 없을 만큼 편리하게 사용할 수 있다. 이 정도만으로도 친구에게 자랑할 수 있을 것이다. 그러나 이 정도만으로는 아직 `나는 vi의 고수다!' 라고 말하기는 좀 부끄러운 감이 있다. 모든걸 정리하는 마음으로 앞에서 열어 두었던 큼지막한 파일을 닫고 새 파일을 열자. 만약 vi를 종료했다가 다시 실행하는 사람이 있다면 정말 필자는 삶이 허무해진다! 다음과 같이 타이프한다.

:e newfile<CR>

4-1. 상용구 사용

아래아 한글에 `상용구'라는 기능이 있다. 이 기능을 사용하는 사람이 얼마나 될지는 잘 모르겠지만, 아무튼 vi에도 이런 기능이 있다. 다음과 같이 타이프해 보자.

:ab kuls Korea University Linux Study<CR>

이제 입력 모드로 전환해 `I'm a member of kuls.'를 입력하자. `kuls'를 타잎하는 순간 `Korea University Linux Study'로 바뀔 것이다. 등록된 상용구를 해제하는 방법은 다음과 같다.

:unab kuls<CR>

등록된 상용구를 보여주는 명령은 다음과 같다.

:ab<CR>

만약 여러 줄을 상용구로 지정하고 싶다면 다음과 같이 한다. ^M을 타이프할때는 먼저 Ctrl+v를 누른 후 이어서 Ctrl+m을 누른다.

:ab kuls2 Korea University^MLinux Study<CR>

4-2. 매크로 사용

vi의 특징중 한 가지는 있을법한 기능은 다 있다는 것이다. 아래아 한글에서 `매크로'를 이용하는 사람이 있을지 모르겠다. vi에서도 매크로를 이용할 수 있다. 다음과 같이 타이프 해 보자. `#2'<F2>키를 의미한다. 그냥 `<F2>' 라고 쓰면 되는 경우도 있고 안 되는 경우도 있다.

:map #2 dwelp<CR>

이제 다음 문장의 the에서 <F2>키를 눌러보자.

You can the type letter.

아래와 같이 바뀔 것이다.

You can type the letter.

매크로에서는 <CR>, <ESC>등 모든 키 입력을 포함시킬 수 있다. 매크로에서 <CR>키를 입력하려면 Ctrl+vCtrl+m을 연속으로 타이프한다. <ESC>키를 입력하려면 Ctrl+v를 누른 후 Ctrl+[키를 누른다.

vi에서는 명령 모드에서 사용하는 매크로와 입력 모드에서 사용하는 매크로를 따로 지정할 수 있다. 입력 모드에서 사용하는 매크로는 다음과 같이 지정한다.

:map! x sequence<CR>

위의 예에서는 xsequence로 정의한다. 매크로를 해제할때는 다음 명령을 이용한다.

:unmap! x<CR>

매번 이렇게 매크로를 지정해 주는 것은 귀찮은 일이다. vi를 실행할 때마다 매크로가 실행되어 있게 하려면 홈 디렉토리의 .exrc 파일에 넣어두면 된다. 다음은 LaTeX을 자주 사용하는 필자의 .exrc파일의 일부이다.


" LaTeX을 위한 매크로

 

" 를 누르면 Visual selection으로 선택된 부분만 컴파일하여 xdvi로 보여줌

map  ^[:1,?^\\begin{document}$?w! _region_.tex^M;;R1

map ;;R1 :'<,'>w >> _region_.tex^M;;R2

map ;;R2 :/^\\end{document}$/w >> _region_.tex^M;;R3

map ;;R3 :!latex _region_.tex; xdvi -expert _region_.dvi; rm _region_.???^M^M

 

" 을 누르면 현재 편집중인 문서를 컴파일하여 xdvi로 보여줌

map  :w^M:!latex %; xdvi -expert %<.dvi^M^M

 

" 을 누르면 컴파일된 문서를 ps로 출력하여 gv로 미리보기

map  :!dvips -o %<.ps %<.dvi; gv %<.ps^M^M

 

" 를 누르면 변환된 포스트스크립트 문서를 pdf로 변환

map  :!ps2pdf %<.ps %<.pdf&^M^M

 

" 레이텍 문서 전처리부를 자동으로 만들어주는 매크로

map ;tex i\documentclass[a4paper]{article}^[;;T1

map ;;T1 o\usepackage{hangul,a4,indentfirst}^M\setlength{\parindent}{1em}^[;;T2

map ;;T2 o\addtolength{\hoffset}{-0.5cm}^M\addtolength{\textwidth}{1cm}^[;;T3

map ;;T3 o\kscntformat{section}{}{}^M\linespread{1.3}^M^[;;T4

map ;;T4 o\begin{document}^M^M\end{document}^[ki

 

" 글꼴에 관계된 매크로

map ;rm i\textrm{^[Ea}^[B

map ;tt i\texttt{^[Ea}^[B

map ;sf i\textsf{^[Ea}^[B

map ;bf i\textbf{^[Ea}^[B

map! ;rm \textrm{

map! ;tt \texttt{

map! ;sf \textsf{

map! ;bf \textbf{

 

" 환경(Environment)에 관계된 매크로

map! ;itemize \begin{itemize}^M\end{itemize}^[O \item

map! ;enumerate \begin{enumerate}^M\end{enumerate}^[O \item

map! ;description \begin{description}^M\end{description}^[O \item[

map! ;equation \begin{equation}^M\end{equation}^[O \label{eq:}^[i

map! ;tabular \begin{tabular}[center]{}^M \hline^M\hline^M^H\end{tabular}^[3k$i

map! ;figure \begin{figure}[!hbp]^M\end{figure}^[O

map! ;table \begin{table}[!hbp]^M\end{table}^[O

map! ;verbatim \linespread{1}\begin{verbatim}^M\end{verbatim}\linespread{1.3}^[O

 

" 특수문자 입력을 간편하게 하기 위한 상용구

ab ;\ $\backslash$

ab ;~ \textasciitilde


4-3. vi 설정

vi의 설정 파일은 /etc/vimrc 파일과 홈 디렉토리의 .vimrc 파일이다. 만약 GUI 버전의 vi를 사용한다면 /etc/gvimrc 파일과 .gvimrc파일로 설정할 수 있다. 앞에서 이미 vi를 설정하는 명령을 배웠고 몇 가지 옵션들도 이미 살펴보았다. 아래에서 다른 몇 가지 옵션들을 필자의 .vimrc 파일을 예로 들어 설명하겠다.


set autoindent      " 자동으로 들여쓰기를 한다.

set cindent         " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.

set smartindent     " 좀더 똑똑한 들여쓰기를 위한 옵션이다.

set textwidth=79    " 만약 79번째 글자를 넘어가면 \

set wrap            " 자동으로 <CR>를 삽입하여 다음 줄로 넘어간다.

set nowrapscan      " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.

set nobackup        " 백업 파일을 만들지 않는다.

set visualbell      " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.

set ruler           " 화면 우측 하단에 현재 커서의 위치(,)를 보여준다.

set tabstop=4       " Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.

set shiftwidth=4    " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.

 

" 아래는 한글을 제대로 처리하기 위해 필요하다.

if $LANG[0] == `k' && $LANG[1] == `o'

  set fileencoding=korea

endif

 

"터미널이 xterm-debian 혹은 xterm-xfree86일 경우 컬러를 사용한다.

if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"

  set t_Co=16

  set t_Sf=^[[3%dm

  set t_Sb=^[[4%dm

  set t_kb=^H

  fixdel

endif

 

"문법 강조 기능을 사용한다.

if has("syntax")

  syntax on           " Default to no syntax highlightning

endif


4-4. vim의 특별한 기능

vi의 클론인 vim에는 원래의 vi에는 없지만 편리하게 사용할 수 있는 많은 기능들이 있다. 문법 강조 기능도 원래의 vi에는 없는 기능이다. vim의 기능 중 `Visual Selection' 이라는 기능이 있다. 명령 모드에서 v를 누른 후 커서를 움직여 보자. 아래아 한글의 `블럭'처럼 역상으로 움직인 범위에 있는 글들이 선택될 것이다. 이 상태에서 y, c, d 키를 눌러 선택된 범위의 글들을 복사, 교체 또는 삭제할 수 있다.

프로그래밍에 편리하게 사용할 수 있는 기능으로 탭을 끼워넣거나 취소하는 기능이 있다. 만약 커서가 있는 줄에서부터 5줄에 탭을 끼워넣으려면 다음과 같이 타이프한다.

5>>

이를 취소하려면 다시 다음을 타이프한다. 물론 그냥 u를 입력해도 된다. 그러나 여기서는 어떻게 동작하는지 보자는 것이므로 `5<<'를 입력한다.

5<<

Visual Selection 기능과 결합해서 사용하면 좀더 편리하게 사용할 수 있다. v를 눌러 들여쓰기할 범위를 선택한 다음 >를 타이프하면 선택된 범위가 들여쓰기 될 것이다.

4-5. 정규식(Regular Expression)

vi의 검색 및 교체 기능에서 `정규식(Regular Expression)'이라는 특별한 표현을 사용할 수 있는데 이를 사용하면 보다 효과적인 검색/교체를 할 수 있다. 정규식은 vi 뿐만 아니라 다른 명령어에서도 많이 쓰이므로 알아두면 편리하다. 그러나 정규식에 대한 내용만으로도 1시간 강의는 충분히 할 수 있다. 여기서는 간단한 사용법만을 이야기하고 넘어가겠다.

우선 정규식에서 많이 쓰이는 기호는 다음과 같다.

^

줄의 처음을 나타낸다.

$

줄의 끝을 나타낸다.

.

아무 글자나 한 글자를 나타낸다.

[...]

[] 사이에 있는 글자 중 하나

*

* 앞의 내용이 0번 이상 반복됨

\{min,max\}

min 이상 max 이하의 횟수만큼 반복됨

예를 들어 줄의 맨 처음에 나오는 `linux'만 검색하고 싶다면 다음과 같이 입력한다.

/^linux<CR>

만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.

/[0123456789]\{3,5\}<CR> 혹은 /[0-9]\{3,5\}<CR>

만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.

:%s/ab[a-z]*//g<CR>

5. 맺음말

vi의 고수가 되기 위해서 위의 내용을 무조건 외우려고 하지 말라. j 키가 무슨 역할을 하느냐고 필자에게 물어본다 해도 곧바로 대답할 수 없을 것이다. 머리로 외우려고 하지 말고 감으로 익혀야 한다. 한꺼번에 모든것을 익히려 하지 말고 일단 어떤 어떤 기능이 있다는 것 정도만 알아두라. 그리고 직접 문서를 편집하면서 그때그때 사용 방법을 찾아보자. 처음에는 좀 귀찮겠지만, 그러는 사이 실력이 늘 것이다. 열심히 연습하면 얼마 지나지 않아 윈도우용 vi를 찾아다니게 될 것이다. 그러면 성공이다! vi의 고수가 되자!

SolBox 2008. 5. 14. 22:41 by solstyle
계층별로 이해할수있게 비교해서 설명을 드리겠습니다.
네트워킹을 공부하다보면 자주 등장하는말이 OSI 7 단계인데
너무 추상적이고 개념적이라서 와닿지 않는 부분이 많으실것입니다.
실제통신과 여러가지 프로토콜들을 관련해서 나름대로의 설명을 드리겠습니다.
내용이 길어지는 관계로 시리즈 식으로 해서 내용을 나누겠습니다.

OSI 7 Layer 는 통신의 과정을 각각의 특성상에 기준을 두고
그것들을 7단계로 구분한것을 말합니다.
이것이 무슨말인고 하면,
사용자가 어떤 메일 프로그램을 통해서 통신을 할때
그것은 그냥 사용자가 전달하고자하는 메일의 내용이 케이블을 타고 나가서
상대방 사용자에게 전달 되는 것이 아니라, 메일의 내용을 쓰기위한
어떤 프로그램도 필요하고, 그 메일의 내용을 컴퓨터가 알아들을수 있게
변환하는 과정, 그리고 상대방 컴퓨터가 어디에 있는지를 알아내는 과정

또 실질적으로 그 정보가 0101001 등의 비트프레임이 되어 네트워크
케이블로 흘러가는 과정 등여러가지 과정이 있겠죠??
이것을 연속적으로 생각하기보다 특징이 분명화되는 부분을 계층으로 나누어서 관리하면
오류처리나 전체적 관리에 효율적일것으로 생각되어 표준을 정한것입니다.

예로, 사용자 계층인 저는
오디오를 듣고자 할때 나는 play 라고 되어있는 버튼을 누르면
노래가 나온다는것만 알고있으면 되지, 그것을 눌렀을때 내부적으로
어떻게 동작이 되어 스피커로 음악이 나온다는것은 알필요가 없듯이.
각각의 연결된 상위, 또는 하위 계층이 어떠한 동작을 하건에 상관없이
자신의 계층에서 맞는 처리를 해주고 올바를 결과를 전달만 해주면
나머지는 나머지 계층이 알아서 하게되는것입니다. 객체 지향적인것이죠.
이것에 대한 효과는 결국 자신의 계층만 신경을 쓰면 되니깐
더욱 전문화되고, 어떤 문제점이 발생했을때 그것을 찾아내는데 더욱
유연하게 됩니다.

그리고 실제적으로 전달하고자 하는 DATA는 각 계층을 거치면서
여러가지 계층에 맞는 작업들을 거치게되고 그 계층들은 작업의
결과를 전달하기위해서 DATA위에 Header라는 부가정보를 추가합니다.
계층이 여러개인만큼 DATA는 그 계층들을 거치면서 추가적인
많은 정보(통신을 위한것들이겠죠?) 들을 가지게됩니다.

그럼 좀더 자세하게 알아보겠습니다.
또다시 제가 어떤 메일을 친구에게 전송하려고 합니다.
그 메일의 내용은 당연히 기계어가 아닌 인간의 언어가 되겠죠?
"도란스야 안녕?" 이런 내용을 보낸다고 쳤을때

-----------------------------------------------------------------------------------
일단은 저의 NIC(네트워크 카드)를 통해서 나가는 과정보다는,
받는 입장에서보고 거꾸로 설명하도록 하겠습니다.
-----------------------------------------------------------------------------------

내가 전달하고자 하는 내용은 "도란스야 안녕?" 이 되지만
그것은 결국 케이블을 통해서 흘러나갈 때에는 디지털 신호화 됩니다.
컴퓨터만이 알아들을수 있고 같은 프로토콜이어야지만 호환이 됩니다.
역시 가장 하위계층부터 보자고 했으니깐, 물리계층의 케이블이 호환이 되는것이
첫번째 문제겠죠. 한쪽은 구멍이 2개인데 반대쪽은 구멍이 6개라면 어떨까요?
시작부터 꼬이는것입니다.
하지만 구멍이 맞다고 한다면 물리적 계층에서는
그 구멍을 통해서 나가는 DATA가 무엇인지는 알필요가 없는거고 그저
어디 잃어버리지 않고 전달을 해주면 되는것입니다. 계층적이니깐요.
물리적 계층에서는 프로토콜이라는 말을 잘 사용하지 않습니다.
하지만 여기서 구멍의 갯수를 맞춘다는것은, 다르게 본다면
역시 서로간의 물리적계층 프로토콜이 맞느냐? 하는것과 같은 말이 되는것입니다.


그렇다면 한번 생각해보세요.
Physical layer의 프로토콜은 바로 어떤것일까요??
네. 바로 케이블입니다. 서로 호환이되는 케이블이다(프로토콜이 같다.)
이런것이죠. 그리고 케이블이 꽃히게 되는 NIC도 당연히
케이블에 따라 종류가 달라지기 때문에 그것도 프로토콜에 포함시키게 됩니다.
그리고 종류가 다른 케이블들을 아무데나 막 쓸수는 없겠죠??
각각의 특징이 있으니깐 그것을 나누었을겁니다.

"그러한 특정 상황에 대한 특정 속도의 케이블, 또 거기에 맞는 NIC 등을
모아놓은 표준 프로토콜들" 이 바로

100baseT, Ethernet, IEEE 802.3, Token Ring .....등등 입니다.
(이것은 LAN 구간에서 프로토콜이고 WAN 구간에서는
X.25, F/R, PPP, HDLC, SDLC 등이 있습니다.)

-----------------------------------------------------------------------------------LAN프로토콜은 좁은지역에 더 효율적인 물리계층의 구성들일테고
WAN 프로토콜들은 넓은지역에 더 효율적이게 되는
물리 장비들의 구성이겠죠?? (프로토콜이란 말의 의미를 잘 잡으세요)
일단 LAN 기준으로 설명하겠습니다.
-----------------------------------------------------------------------------------

대충 이해가 가시죠?? 일단 여기까지의 개념을 잡으시고
다음으로 넘어가겠습니다.

하지만 아쉽게도 이 프로토콜들은 바로
OSI 7 Layer로 본다면 Physical 계층을 뛰어넘는 프로토콜입니다.
정리가 되는듯 하다가 약간 헷갈리시죠??
괜찮습니다. 일단 먼저 결론부터 말할께요.
Ethernet 프로토콜은 physical layer 을 통해 datalink layer까지를 포함하는
프로토콜 이고 나머지 100baseT 니, IEEE 802.3, Token Ring 하는것들은
datalink layer 속에 MAC 계층 까지를 포함하는 프로토콜입니다.
(datalink layer 는 MAC와 LLC 두개로 나누어집니다.)

갑자기 이상한 말들이 나와도 걱정 마세요 하나씩 설명하겠습니다.
먼저 datalink layer에서 두부분으로 나뉘는 단계부터 말씀드려야 겠군요.
MAC 계층은 물리적 계층에서 담당하는 부분으로 MAC 어드레스에 관련한
부분입니다. IP 주소 이외에 호스트에 연결하기 위해서 MAC 주소가 필요합니다.
(이부분은 다 아시리라 생각합니다. 일단 넘어가는데 모르시는분 있으시면
리플하세요, 리플에 간단하게 정리해서 적겠습니다.)
그리고 LLC 는 무엇인고 하니 상위 계층과의 정확한 연결을 위해서 몇개의 비트를
할당해서 지금 가진 data가 어떤 protocol로 연결된것인지를 알려주는 역할을
하는 계층입니다.

자.. 여기서 바로 프로토콜의 본질이 나오는군요.   잘보세요.
아까 physical 계층과 datalink 계층의 프로토콜에서
Ethernet physical 계층과 datalink 계층(MAC+LLC)을 모두
포함하는 프로토콜이라고 했고
나머지 100baseT, IEEE 802.3, Token Ring이니 하는것들은
physical 계층과 datalink 계층중에서 MAC까지만을 포함한다고 말씀드렸습니다.
그렇다면 100baseT, IEEE 802.3, Token Ring 같은 프로토콜들은
위에서 말한바와같이 물리케이블이 다르기때문에 물리계층이 서로 나뉜것은
알겠지만 MAC계층까지 나누어진다는 말은 무슨 말일까요??
(서로 다른 프로토콜이 MAC계층까지 포함해서 다르다는 말이니 MAC 계층이
서로 구분되는 프로토콜들이라는 말입니다.)
여러분도 아시겠지만 MAC계층은 MAC 주소를 이용해서 상대방 위치를 알아내는
프로토콜입니다. 같은동작인데 나누어놓았습니다.


정답은 바로 프레임의 해석방식의 차이입니다.
같은 동작이기는 하지만 프로토콜마다 비트를 읽어들이는 고유의 방식이 있다는 것입니다.

좀더 자세히 말하면
통신은 궁극적으로 케이블을 통해서 이진수값(01010010.....처럼) 으로 이루어집니다.
일련의 비트들의 연속이라고 생각하시면 됩니다.
"Ethernet 프로토콜에서 생성된 프레임은
첫번째 비트부터 8번째 비트까지는 PREMBLE 비트이며 그다음 비트부터 어디까지는
목적지 MAC 주소, 또 어디까지는 출발지 MAC 주소.....이런식으로 쭈욱 나가는 반면
IEEE 802.3 프로토콜의 프레임은
첫번째 비트부터 7번째 비트까지가 PREMBLE 비트이고 그다음의 1비트는 SOF 비트...."
이렇게 되는것이죠. 즉 서로다른 비트 해석방식(해석이 다르니 생성방식또한 다릅니다.)
을 가지고 있기때문에 프로토콜이 맞지 않으면 통신이 되지 않는것이고,
따라서 지금 내가 가진 DATA가 어떤 프로토콜을 사용해야 하는지를 상위 계층에게
알려주어야 합니다. 그 부분을 datalink 계층에서는 LLC필드가 담당하는것이죠.
(위의 LLC 계층의 하는일을 다시 한번 읽어보시기 바랍니다. 일부러 굵게 표시했습니다)
이것은 단지 datalink 계층에서만 그런것이 아닙니다. 모든 계층은 각각 사용되는
프로토콜이 있고, 상위 계층에서 DATA가 인캡슐레이션되어 내려올때 자신이 어떠한
프로토콜을 사용하였는지의 정보를 포함하여 헤더를 붙여서 내립니다.(물론 헤더의 정보가 이것뿐이지는 않죠)

반대로 수신측에서는 헤더를 해석하면서 어떤 프로토콜이라고 상위계층에게 말해줄수 있게 되는것입니다.
이것은 마지막 단계인 application 계층에서도 역시 나타나는데
port 라는말 자주 들어보셨죠??
이것역시어떤 프로토콜을 사용했는지를 알려주는 필드입니다.
application은 그저 프로그램인데 무슨 프로토콜??  하시겠지만
제가 만약 telnet프로그램으로 세션을 열어 상대방 host에 접근했을때
어떤 명령어를 입력하고 그것이 여러 과정을 통해서 상대방 컴퓨터로
전달이 되었을때 마지막 과정에서 port 필드를 잘못 해석하여 FTP프로그램으로
data를 넘겼다면 정상적인 통신이 될까요??
application에서의 프로토콜이란 프로그램 정도로 이해되는 것입니다.
자 일단은 여기까지로 일단락인데 어느정도 이해가 되셨는지 모르겠습니다.
OSI의 단계에 의해서 data는 header라는 부가적인 정보를 하나씩 달면서
마지막 단계까지 내려오게 되고 이 헤더들은 각각의 의미있는 필드들로
구성되어있습니다. 각 단계별로 이러한 포멧들의 필드들을 해석해보면
전체적으로 어떻게 data들이 핸들링 되는가를 좀더 자세히 알수있을듯 합니다.
출처: 네이버지식인
SolBox 2008. 4. 14. 18:27 by solstyle

1억 만들기 경험담


[입사 첫 달(8월)]

- 내 성향이 위험회피형으로 펀드쪽 보다는 은행권상품을 이용하기로 정함

- 저축은행이 주변에 없었기에, 새마을금고 출자금에 월 160만원씩 불입.

  (새마을금고 출자금 : 각 지점마다 1년 수익에 대한 배당을 해줌(실적배당상품, 원금보장형). 당시 연7%정도였음)

  (새마을금고 정기적금 : 2천만원까지 세금우대(농특세만 부담) 상품가입. 당시 연5%정도였음)

- 부모님과 세대분리 함.

- 청약예금 3백만원 가입 (=> 청약저축으로 했어야 했는데 나중에 알고 무지 후회함)

- 장기주택마련저축 가입

  (당시 씨티은행으로 했으나, 수협으로 추가 가입 했음 => 수협이 이율 높고 인터넷가입시 금리 우대함)

- 수협종신공제 1억 (종신보험) 가입: 보험료 15만원으로 만기 환급형

  ( 미래의 가족들을 위해 남자라면 가입해두는 것은 필수 / But, 만기환급형 보다는 소멸형이 훨씬 좋을 듯 하고, 월 불입액도 불입기간을 늘려 10만원 밑으로 하는 것이 좋을 듯 합니다. (소득공제액이 년 1백만원 밖에 안됩니다.)


* 저축은행이 주위에 없어 새마을금고와 수협을 이용했으나, 새마을금고 출자금은 저축은행 예금 수익률보다 높았음.


[입사후 6개월]

- 월 소득 및 지출 내역을 월말에 한눈에 볼 수 있게 간단한 엑셀파일 만듬.

  ( 총수입 XX원, 총잔액 XX원, 차액은 총지출액이 됨. )


(소득공제 방법)

- 동생 대학교 학비를 내 이름으로 납입한 것으로 하여 소득공제 받음.

- 각 은행 마다 내 명의의 통장과 체크카드를 3개 개설 후, 동생 및 부모님 사용 카드 대신 쓰게 하여 카드 소득공제액 늘렸음.

- 장마 불입액과 종신보험 납입액으로 소득공제받음


[입사후 1년]

- 새마을금고 출자금 2천만원 됨.

- 출자금 2천만원을 새마을금고 정기저축(1년)에 넣고, 다시 매월 170만원씩 출자금에 불입.


[입사후 2년]

- 만기가 된 새마을금고 출자금 2천만원을 회사 신용협동조합 출자금(연6~7%)에 넣음

- 새마을금고 정기적금 만기된 2천만원중 1천만원은 남겨두고, 1천만원은 생애 최초 주식 직접투자

- 매월 150만원씩 회사 신용협동조합 출자금 납입함.  (잉여액 50~60만원씩 있을때도, 수시 추가 납입)


[입사후 2년6개월]

- 주식직접투자 수익액 약 9백만원 달성 후 매도

   (1종목  운이 좋았었음, 주식직접투자는 추천하고 싶지가 않음. 신경이 너무 많이 쓰여 회사일 의욕저하 크게 됨)

- 대출끼고 전세끼고 집안의 지원도 함께 해서 뉴타운 재개발 구역의 단독주택 매입 (주택구입 노하우는 다음기회에~^^)


[입사후 3년]

- 재개발 구역 이주비(아파트 지을 동안 다른 곳에 살다 오라고 전세금조로 나옴) 받아 대출 및 전세금 상환

- 매월 잉여액 신용협동조합에 납입

   (우리 회사 신용협동조합은 수시입출금이 가능하고 CMA보다 수익률도 높음)

   (아파트 중도금 들어가야 되므로 단기상품으로 모든 포트폴리오 조정함)


[입사후 3년6개월]

- 순자산 1억 돌파!!

  (주택구입시 집안의 도움받은 돈은 나중에 상환해야 하므로 자산에서 제외

   나의 실투자금액 4천만원은 포함. 주택의 시가상승분 반영안함)


* 쓰다보니 길어졌군요~ 자세하게 쓸려니 너무 길어져서~

  사이사이의 노하우는 정모에서 저랑 얘기하시면 아는 한도에서 가르쳐 드리겠습니다. ^^

  물론 저도 여러분들의 가르침이 많이 필요합니다. ^^

  그럼 재독카페 여러분들 모두~ 부자~~~되셔요~~ ^^


출처 :재테크 독하게 하는 방법 원문보기 글쓴이 : 파랑파랑
SolBox 2008. 4. 14. 18:03 by solstyle

펀드를 선택할때는 내가 이 돈을 앞으로 어떻게 사용해야 하는지가 중요합니다...
목적 없이 그냥 남는돈이고, 그냥 목돈을 운용하기 위해서라면 이머징마켓이나 고수익펀드,
하이일드 펀드, 주식형, 등등이 좋을것입니다..
하지만 정확히  1년 후몇년 내 주택마련, 학비 보조금 등의 어떤 뚜렷한 목적이 있다면
els를 해야할지, 인덱스를 해야할지, 채권형, 안정성장형, 혼합형, 유럽시장 등등
어떤 지역, 어떤 유형인지등을 우선 파악해야합니다.  

 


과거의 경험이나, 선천적인 부분, 혹은 목적, 재무현황에 따라 위험에 따른 수용도는
모두가 다릅니다..연령에 따라 다르고, 직업에 따라, 연봉에 따라 모두가 다릅니다...
이는 결정적으로 어떤 유형의 펀드, 어느 지역의 펀드, 어느 종목의 펀드에 투자하게
될것인가를 결정하게 되며, 이에 따라서 투자시 나는 어느 정도의 수익을 본후 환매하겠다,
어느 정도의 손해를 보면 추가납입이나 환매를 하겠다 등의 구체적 결정을 할 수 있습니다..


투자에는 해야할 때와 하지 말아야 할 때가 있습니다...지나친 과열은 결국 주가 하락을
가져올 수 있으며, 지나친 침체는 주가 상승을 가져옵니다...종목 선정보다는 어느 때가 해야
할지 말아야 할지이며, 이는 시장마다 차이가 있습니다..
우선은 해외인지 국내인지가 중요할것입니다..이는 나중에 다룰 환헷지와 연관이 있으며,
국내 시장이 저조한경우는 해외를 해외시장이 저조한 경우는 국내를 투자하는 지극히 당연한
부분도 있기때문입니다..(또한 정보의 효율성도 이에 많은 차이를 보임)
고수익창출을 원한다면 개발도상국(과거엔 brics-브라질,러시아,인도,차이나, 최근엔 vista-베트남, 인도네시아, 남아공, 터키, 아르헨티나)의 주식형을, 조금은 안정적이며 약간의 수익을 원한다면 선진국을(프랑스, 독일, 이탈리아, 노르웨이, 스웨덴 등등) 등등의 선택을 해야 합니다...


 

주식형, 채권형, 인덱스형, els, etf, reits, abs, mbs, 재간접투자형, 뮤츄얼펀드, 파생상
품 등에 따라 수익률과 위험은 달라집니다...

 

주식형 - 60% 이상을 주식에 투자하는 펀드
채권형 - 60% 이상을 채권에 투자하는 펀드(주식은 0%)
주식혼합형 - 50-60%를 주식에 투자하는 펀드
채권혼합형 - 50% 이하를 주식에 투자하는 펀드
인덱스형 - 주식시장의 시장수익률만을 추종하는 펀드.(ex: kodex , kospi200, krx...)
               - 주가지수 연동형이라 하며 주식투자를 원하지만 종목선정이 어려운 경우
                  시장전체를 사들이는 효과와 동일함.
etf     - 상장지수형펀드. 인덱스펀드이지만 주식시장에 상장되어 일반 종목처럼 매매거래가
              가능한 펀드.
reits - 부동산에 투자를 하는 펀드로 투자자의 자본을 특정 부동산에 투자하고 이에 대한
             수익을 배당으로 받는 펀드.
abs - 각종 어음, 채권등을 spc, spv(자산유동화회사)에서 증권으로 재발행하여 자금을
          조달하고 이에 대해 배당을 지급하는 형태.(기초자산의 신용도가 중요)
mbs - abs의 일종으로 주택을 담보로 하는 형태.
재간접투자형펀드 - 이미 설정되어있는 펀드들로 이루어진 펀드.(타펀드에 50%이상투자)
                              일반펀드보다 좀 더 광범위한 투자를 할 수 있는 펀드라고 생각할수있음
                              (분산투자의 극대화)
뮤츄얼펀드 - 회사형펀드라고 하며, 어느 종목에 투자를 하는 펀드가 하나의 주식회사로써
                    상장을 하며, 이에 가입한 투자자는 주주로서 배당을 받게 된다. 통상 고수익
                    고위험의 펀드이며 피델리티 차이나 포커스가 뮤츄얼펀드에 해당된다.
파생상품 -  각종 선물 옵션 등을 이용하여 수익을 올릴 수 있으며, 선물 옵션은 리스크헷지
                  기능을 하는데 많이 사용된다. 통상 대부분의 펀드들은 일종의 리스크헷지
                  기능으로 파생상품에도 일부 투자하여 혼용하는 경우가 많다.
                  (파생상품에 10%이상 투자 = 파생상품펀드)
els - 대부분은 안전한 채권이나 어음 등에 투자를 하고 그 수익을 전부 주식이나, 파생상품

         등에 공격적으로 투자를 하여 원금보장을 추구하고, 수익률을 극대화하고자 하는 상품.

 

 

투자자의 투자자본을 누가 운용하느냐에 따라서 수익률과 위험은 매우 큰 차이를 보인다.
운용회사에 따라서 투자목적, 투자성향이 다르고 이는 펀드에 영향을 준다.
펀드운용의 노하우와 하락시의 방어능력, 주기적인 자산의 재분배, 종목의 선정, 바스켓구성
등이 운용회사에 따라 매우 큰 차이를 보이기 때문이다.

 

 

펀드 투자시 알아봐야 할 사항은 추가납입과 중도해지 등을 알아봐야합니다...

 

개방형 - 중도환매 가능(대부분의 펀드)
폐쇄형 - 중도환매 불가(일부 뮤츄얼펀드, 특수한 유형의 펀드)

 

추가형 - 추가납입이 가능
단위형 - 추가납입 불가능(일부펀드 : 설정총액이 정해져 있는 펀드들이 있음)

 

펀드 투자시 운용수수료는 간과할 사항이 아닙니다..
단기적인 고수익을 하는경우는 직접투자를 하면 되지만 펀드는 통상 장기적인 운용을
통한 수익을 전제로 하는 경우가 대부분이기 때문에 수수료의 중요도는 비중을 더해갑니다..

 

선취수수료 - 투자금액에 수수료 비율을 제하고 전액 펀드에 투자
후취수수료 - 투자금액과 운용수익금에서(원리금의 합계에서) 매년 일정 수수료비율을 제함

 

운용수수료 - 펀드 운용에 필요한 제반비용(수탁사, 운용사의 운용경비)
판매수수료 - 펀드 판매사에서 취하게 되는 수수료

 

선취수수료는 단기적으로 후취수수료보다 많은 금액을 제하게 되지만 장기적으론
후취수수료보다 제하는 금액이 적다고 할 수 있습니다...장기적인 경우 후취수수료는
원리금의 일정비율을 제하기 때문에 투자횟수와 수익률이 많을수록 원리금은 커지기
때문입니다...

 

 

해외 펀드 투자시 환차손은 반드시 고려해야할 사항입니다...
해외 펀드는 국내와 달리 <5영업일 기준 9영업일 환매> 이런식으로 상당히 환매하는데
소요되는 일수가 많이 걸립니다..결국엔 최고점에 환매를 한다고 하더라도 환매신청 후
5영업일 기준 9영업일 환매라면 환율의 변동으로 인해 손해를 보는 경우가 있기 때문입니다..
그래서 통상 펀드 계약시 선물환계약을 하는것이 유리합니다...선물환계약은 통상 1년단위로
이루어지며, 수수료를 부과해야합니다. 하지만 환차손을 피해갈 수 있다면 선물환계약을
선택하지 않아도 됩니다.

 

 

mmf의 경우는 당일 환매 당일 지급으로 되어있으나(법인용은 익일환매 익일지급) 대부분의
펀드는 그 환매기준일이 상이합니다...국내는 대부분 2영업일 기준 4영업일 환매이며
해외펀드는 5영업일 기준 9영업일 환매 등으로 국내보다 더 긴편입니다...
이는 환매 신청후 주가의 하락위험, 환차손, 기준가격의 변동, 목적자금의 운용에 영향을
줄 수 있으므로 정확히 알고 있어야 합니다...

 

 이외에도 펀드의 위험도, 유동자산의비율, 베타계수, 약관, 사업설명서, 운용총액의 규
모 등 많은 부분이 있습니다...

 

펀드의 유동자산비율은 지나치게 많은것이나 지나치게 적은것은 좋지 않으며,
이는 주기적으로 변할 수 있습니다..유동자산이 적정량 있어야 주가하락시 싸게 매수하여,
고가에 매도할 때 쓸 자산으로 운용할 수 있기 때문입니다...

 

베타계수는 펀드의 포트폴리오를 구성하는데 있어 1=시장의위험 이라고 하는데,
해당펀드가 주가지수의 변화에 따라 얼마나 민감하게 움직이는 지를 나타냅니다...
안정성이 있는것은 0에 가까울 것입니다...하지만 이는 수익률이 매우 저조할 것입니다..
하지만 1에 가깝다는것은 주가의 변화에 따라 바로바로 변하기 때문에 고수익 고위험을
나타내기도 합니다...1이상인것은 외부의 자금을 차입했다는것을 의미합니다..

 

사업설명서에는 어떤 종목에 어느 규모를 투자하며, 펀드운용의 목적은 무엇인지, 펀드를 운용하는 펀드매니져는 누구인지, 재분배, 수수료 등이 나와있으므로 한번쯤은 참고를 해보아야할 사항입니다...

SolBox 2008. 4. 14. 18:01 by solstyle

[ 재테크 마인드 세우기 ]

1. 자신의 성향을 파악하고 방향을 잡아라. (위험선호형인지, 중립형인지, 위험기피형인지)

2. 최소 10년의 인생계획(결혼,출산,주택마련 등등)을 세워 그에 맞게 포트폴리오를 구성하자.

3. 항상 재테크정보에 귀를 열어두어라.

4. 재테크 정보에 밝은 친구를 두어라.

5. 쓸 곳에는 쓰고, 불필요한 곳에는 돈을 아껴라.


[ 2억만들기 일정 ]

* 편의상 자본은 주택시세차익만 미반영한 순자산의미

* 순자산은 부채를 뺀 주택시세차익 포함한 금액

 

[입사 첫 달 : 자본 0원]


- 내 성향이 위험회피형으로 펀드쪽 보다는 은행권상품을 이용하기로 정함

- 저축은행이 주변에 없어, 새마을금고 출자금에 월 160만원씩(실수령액의 70%) 불입.

  (새마을금고 출자금 : 각 지점마다 1년 수익에 대한 배당을 해줌(실적배당상품, 원금보장형). 당시 연7%정도였음)

  (새마을금고 정기적금 : 2천만원까지 세금우대(농특세만 부담) 상품가입. 당시 연5%정도였음)

- 월저축외에 분기에 40~50만원씩 불입하는 개인연금 가입

- 부모님과 세대분리 하고 청약예금 3백만원 가입

   (=> 청약저축으로 했어야 했는데 나중에 알고 무지 후회함)

- 장기주택마련저축 가입

  (=> 모네타등 각종 싸이트의 이자율 조회하고 가입하자)

- 수협종신공제 1억 (종신보험) 가입: 보험료 15만원으로 만기 환급형

  ( 미래의 가족들을 위해 남자라면 가입해두는 것은 필수 / But, 만기환급형 보다는 소멸형이 훨씬 좋을 듯 하고, 월 불입액도 불입기간을 늘려 10만원 밑으로 하는 것이 좋을 듯 합니다. (소득공제액이 년 1백만원 밖에 안됩니다.)


Tip : 1. 장마나 청약가입을 위해서는 세대분리 필수

      2. 쓸 곳 많은 입사 첫해 월급의 최소 50%이상은 강제로 정기적금에 가입하자

      3. 보험가입 어릴수록 좋다. (보험은 소멸형으로 월 불입기간 늘려서 가입하자)

      4. 출자금 가입시 호재가 있는 동네(재개발, 입주시점 아파트 밀집지역 등)의 지점에서 가입하자.(안정적이고 수익률이 더 좋다.)

      5. 비과세 상품, 소득공제 상품을 적극 활용하자.(청약,장마,보험,적금 등)

      6. 노후대비는 미리미리 개인연금 하나쯤은 가입하자. (소득공제도 된다)


[입사후 6개월 : 자본 1400만원]


- 월 소득 및 지출 내역을 월말에 한눈에 볼 수 있게 간단한 엑셀파일 만듬.

  ( 총수입 XX원, 총잔액 XX원, 차액은 총지출액이 됨. )


(소득공제 방법)

- 동생 대학교 학비도 소득공제 가능

- 집안 식구들 카드를 내이름으로 개설

- 장마 불입액과 종신보험 납입액으로 소득공제받음


Tip : 1. 매일쓰는 것이 귀찮다면 월말 결산 가계부라도 쓰자.

     2. 직장인에게 소득공제 노하우는 필수!! 미리미리 준비하자.


[입사후 1년 : 자본 2500만원]


- 새마을금고 출자금 2천만원 됨.

- 출자금 2천만원을 새마을금고 정기저축(1년)에 넣고, 다시 매월 170만원씩 출자금에 불입.


Tip : 1. 목돈생길 때 항상 쓸 곳도 생긴다. 흔들리지 말자.



[입사후 2년 : 자본 4800만원]


- 만기가 된 새마을금고 출자금 2천만원을 신용협동조합 출자금(실적배당, 약6~7%)에 넣음

- 새마을금고 정기적금 만기된 2천만원중 1천만원은 정기예금에 넣고, 1천만원 주식 직접투자

- 매월 150만원씩 신용협동조합 출자금 납입함. (잉여액 50~60만원씩 있을때도, 수시 추가 납입 : 월저축액 약 180만원 정도)


Tip : 1. 입사 2년차, 입사 첫해보다 연봉이 오른다. 임금 상승분 만큼 저축액도 늘리자.

     2. 적금의 묘미는 적금 만기시 총자산 그래프가 급증한다.

        (2천만원에 대한 1년이자(5%정도 가정시) 1백만원이다.)

     3. 회사마다 회사직원상대로 하는 신용협동조합이 있다. (없는 회사도 있지만..)

       회사 신협은 직원들 상대로 하기 때문에 회사가 망하지 않는 이상 안전하고 수익도 저축은행 이상 되는경우 많음.

[입사후 2년6개월 : 자본 6900만원]


- 주식직접투자 수익액 약 9 백만원 달성 후 매도

- 대출끼고 전세끼고 뉴타운 재개발 구역의 단독주택 매입


Tip : 1. 주식투자 노하우 : 주변 친구들이 다니는 회사를 사라. 회사 직원만큼 잘 아는 사람도 없다.

                          하지만 직접투자에 신경 쓰다 회사 짤릴 수도 있다는 거.. 조심..

      2. 내집 마련 노하우 : 아파트를 꼭 목돈이 있어야 산다는 생각을 버려라. 적은 돈으로도 살 수 있는 방법은 많다. (여러 노하우는 다른 수기에서 참조하세요~)


[입사후 3년 : 순자산 1억원 돌파 / 자본 8700만원]


- 재개발 구역 이주비(아파트 지을 동안 다른 곳에 살다 오라고 전세금조로 나옴) 받아 대출 및 전세금 상환

- 매월 2백만원으로 저축액 늘림

   (아파트 중도금 들어가야 되므로 단기상품으로 모든 포트폴리오 조정함)

- 주택시세 약 2천만원 상승.


Tip : 1. 재개발 예정 구역 주택 매입은 이주비가 나오기 때문에 적은 돈으로도 내집마련할 수 있음.

        단, 아파트 증축기간동안 거주할 수 없다는 것이 단점이나 분양가점제가 도입되어 당첨확률이 적은 젊은 연령층에게는 좋은 내집마련 방법임.


[입사후 3년 6개월 : 순자산 1억원+α 돌파 / 자본 1억1100만원]


- 아파트 중도금 5개월에 한번씩 불입 시작

- 매월 240만원 저축늘림.

- 주택시세 약 ??만원 상승. (투기구역으로 묶여 거래량 거의 없어 주택시세 상승 판단어려움)


Tip : 1. 집값 규제정책으로 실거주 목적 아닌 사람들의 뉴타운지역 주택매입 제한함.


[입사후 4년 6개월 : 순자산 2억원 돌파 / 자본 1억4800만원]


- 급여상승액 만큼 월 저축액 270만원으로 조정 (저축율을 실수령액 70%이상은 계속유지)

- 투기지역이라 주택거래는 파악 어려우나, 부동산 문의결과 최소 시세차익 6~7천만원은 예상됨.


# 1억 만드는데 3년걸렸는데, 1억에서 2억되는데는 1년반 걸렸네요..(진짜 돈이 돈을 버는듯)

   그 동안 연봉도 올라 저축액도 꾸준히 늘리고 주택시세차익도 있고 그래서 짧은시간안에 추가 1억을 모은 듯 합니다.

   (역시 최고의 재테크는 몸값 올리기인듯.. ^^)

   1억만들기의 업그레이드 버전으로 재독여러분께 조금이나마 도움이 될까해서 올립니다. ^^

 

SolBox 2008. 3. 18. 21:42 by solstyle
SW 개발자가 되는 것은「무거운 책임이자 특권」
UML과 래쇼날 로즈 개발자 그래디 부치 인터뷰
김창준 ( 마이크로소프트웨어 )   2002/11/14
좋은 소프트웨어를 빨리 만들기 위해서는 오늘날 무엇이 필요한가요?
사실 그 질문보다도 문제는 더욱 복잡합니다. 품질과 시간에 대한 압력을 조율하는 것은 프로젝트에 주어지는 여러 가지 공학적인 영향(engineering forces) 중 두 가지를 조절하는 것에 불과합니다. 비용, 일정, 기능, 호환성, 성능, 확장성(scalability), 효율(throughput), 신뢰성, 실패 안전/결함 허용(fail safe/fault tolerance), 복원력(resilience) 등이 모두 프로젝트의 비즈니스적이고 경제적인 맥락 전반에서 균형을 맞추어야 할 것들입니다.

이 모두를 고려해 반복 가능하고 예상할 수 있는 방식으로 조율하는 것은 본질적으로 어렵습니다. 이런 것들을 극복하기 위해서는 무엇이 필요할까요? 배리 보엠(Barry Boehm)은 소프트웨어 경제학에 대한 자신의 작업에서, 프로젝트를 위한 리소스 요구에 영향을 미치는 네 가지 주요 요소가 복잡성, 프로세스, 팀, 도구라고 말합니다. 그렇기 때문에 무엇이든지 간에 복잡성을 관리할 수 있게 하고, 계획된 프로세스를 제공하며, 팀에게 자신감과 힘을 주고, 도구를 통해 작업을 자동화하는 것들이 큰 도움이 될 것입니다.

왜 여전히 ‘소프트웨어 위기(crisis)’가 있을까요? 최근의 통계(예컨대 스탠디쉬 그룹 보고서 같은)에 따르자면, IT 프로젝트의 상당수가 실패하거나 혹은 그럴 위험이 있다고 합니다. 실질적인 문제가 무엇이라고 보십니까?
내재적인 문제는 아마도 품질이 좋은 소프트웨어를 만들어 내는 것은 투자자와 개발자로 이루어진 한 팀의 집합적인 노력을 필요로 하는, 매우 어려운 지적 작업이라는 것이지 않을까요. 복잡도는 점점 증가하고 있고 거기서 문제는 더욱 악화됩니다.

궁극적으로 소프트웨어 개발은 인간 활동(human activity)입니다. 이 말은 근본 문제는 결국 인간에 관련된 것이지 기술에 관한 것이 아니라는 말이 됩니다. 하지만 기술적 요소들이 우리 문제 속 깊이 포함되어 있다는 사실 때문에 작업이 복잡해집니다. 프레드 브룩스(Fred Brooks)가 말했듯이 소프트웨어에는 본질적으로 도무지 피할 수 없는 복잡성이 있습니다.

컴포넌트 기반 개발, UML, AOP(Aspect-Oriented Programming), 애자일, 웹서비스, 닷넷 혹은 최근 시장의 주목을 받고 있는 그 무엇이 이런 문제를 해결하는 데 도움이 될 것이라고 생각하십니까? 그렇다면 어떤 면에서 그렇게 생각을 하시나요?
그것들은 모두 어떤 해법의 요소가 될 수 있는 것들입니다. 제가 보기에는 우리가 소프트웨어를 개발하는 방식에 어떠한 혁명이 있었다고 생각지 않으며, 장래에 그러한 혁명이 있을 것이라 기대하지도 않습니다. 진보는 다른 의미있는 공학적 활동과 마찬가지로 과거의 기반 위에서 진화의 방식으로 이루어집니다. 말씀하신 것의 대부분은 본질적으로 추상화나 프로세스와 상관이 있습니다.

인간은 복잡성을 추상화를 통해 다스립니다. 실제로 소프트웨어 공학의 전체 역사는 우리의 언어나 메쏘드, 프로세스 등에서 보듯이 추상화 레벨을 증가시키는 것이었습니다. CBD (Component Based Development), UML, AOP, 웹 서비스, 닷넷, J2EE 모두가 추상화 레벨을 올려주는 예입니다. 애자일 메쏘드들과 RUP(Rational Unified Process)는 모두 프로세스를 관리하는 요소입니다. 거듭 말하지만 개발은 인간 활동이며 우리가 효과적인 베스트 프랙티스(예컨대, ‘테스트 우선’과 아키텍처를 성장시켜 나가는 것 등)를 발견할 수 있는 한 소프트웨어 개발을 어렵게 만드는 마찰점 몇 군데를 공격할 수 있지 않을까 합니다
[출처] ZDnet
SolBox 2008. 3. 18. 21:42 by solstyle
SW 개발자가 되는 것은「무거운 책임이자 특권」
UML과 래쇼날 로즈 개발자 그래디 부치 인터뷰
김창준 ( 마이크로소프트웨어 )   2002/11/14
좋은 소프트웨어를 빨리 만들기 위해서는 오늘날 무엇이 필요한가요?
사실 그 질문보다도 문제는 더욱 복잡합니다. 품질과 시간에 대한 압력을 조율하는 것은 프로젝트에 주어지는 여러 가지 공학적인 영향(engineering forces) 중 두 가지를 조절하는 것에 불과합니다. 비용, 일정, 기능, 호환성, 성능, 확장성(scalability), 효율(throughput), 신뢰성, 실패 안전/결함 허용(fail safe/fault tolerance), 복원력(resilience) 등이 모두 프로젝트의 비즈니스적이고 경제적인 맥락 전반에서 균형을 맞추어야 할 것들입니다.

이 모두를 고려해 반복 가능하고 예상할 수 있는 방식으로 조율하는 것은 본질적으로 어렵습니다. 이런 것들을 극복하기 위해서는 무엇이 필요할까요? 배리 보엠(Barry Boehm)은 소프트웨어 경제학에 대한 자신의 작업에서, 프로젝트를 위한 리소스 요구에 영향을 미치는 네 가지 주요 요소가 복잡성, 프로세스, 팀, 도구라고 말합니다. 그렇기 때문에 무엇이든지 간에 복잡성을 관리할 수 있게 하고, 계획된 프로세스를 제공하며, 팀에게 자신감과 힘을 주고, 도구를 통해 작업을 자동화하는 것들이 큰 도움이 될 것입니다.

왜 여전히 ‘소프트웨어 위기(crisis)’가 있을까요? 최근의 통계(예컨대 스탠디쉬 그룹 보고서 같은)에 따르자면, IT 프로젝트의 상당수가 실패하거나 혹은 그럴 위험이 있다고 합니다. 실질적인 문제가 무엇이라고 보십니까?
내재적인 문제는 아마도 품질이 좋은 소프트웨어를 만들어 내는 것은 투자자와 개발자로 이루어진 한 팀의 집합적인 노력을 필요로 하는, 매우 어려운 지적 작업이라는 것이지 않을까요. 복잡도는 점점 증가하고 있고 거기서 문제는 더욱 악화됩니다.

궁극적으로 소프트웨어 개발은 인간 활동(human activity)입니다. 이 말은 근본 문제는 결국 인간에 관련된 것이지 기술에 관한 것이 아니라는 말이 됩니다. 하지만 기술적 요소들이 우리 문제 속 깊이 포함되어 있다는 사실 때문에 작업이 복잡해집니다. 프레드 브룩스(Fred Brooks)가 말했듯이 소프트웨어에는 본질적으로 도무지 피할 수 없는 복잡성이 있습니다.

컴포넌트 기반 개발, UML, AOP(Aspect-Oriented Programming), 애자일, 웹서비스, 닷넷 혹은 최근 시장의 주목을 받고 있는 그 무엇이 이런 문제를 해결하는 데 도움이 될 것이라고 생각하십니까? 그렇다면 어떤 면에서 그렇게 생각을 하시나요?
그것들은 모두 어떤 해법의 요소가 될 수 있는 것들입니다. 제가 보기에는 우리가 소프트웨어를 개발하는 방식에 어떠한 혁명이 있었다고 생각지 않으며, 장래에 그러한 혁명이 있을 것이라 기대하지도 않습니다. 진보는 다른 의미있는 공학적 활동과 마찬가지로 과거의 기반 위에서 진화의 방식으로 이루어집니다. 말씀하신 것의 대부분은 본질적으로 추상화나 프로세스와 상관이 있습니다.

인간은 복잡성을 추상화를 통해 다스립니다. 실제로 소프트웨어 공학의 전체 역사는 우리의 언어나 메쏘드, 프로세스 등에서 보듯이 추상화 레벨을 증가시키는 것이었습니다. CBD (Component Based Development), UML, AOP, 웹 서비스, 닷넷, J2EE 모두가 추상화 레벨을 올려주는 예입니다. 애자일 메쏘드들과 RUP(Rational Unified Process)는 모두 프로세스를 관리하는 요소입니다. 거듭 말하지만 개발은 인간 활동이며 우리가 효과적인 베스트 프랙티스(예컨대, ‘테스트 우선’과 아키텍처를 성장시켜 나가는 것 등)를 발견할 수 있는 한 소프트웨어 개발을 어렵게 만드는 마찰점 몇 군데를 공격할 수 있지 않을까 합니다
[출처] ZDnet
1 2 3 4 5 6 
BLOG main image
solstyle
From the Depth of My Drawer
by solstyle

카테고리

분류 전체보기 (56)
SolStorys (27)
temp (3)
SolBox (25)

태그목록

달력

«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
tistory!get rss Tistory Tistory 가입하기!

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백