청약통장에는 청약저축, 청약예금 그리고 청약부금이 있다.
이들 간의 차이점은 어떤 것들이 있을까?
1. 가입 조건이 다르다.
청약예금과 청약부금은 만 20세 이상이면, 모든 은행에서, 1계좌 개설이 가능하다.
하지만, 청약저축은 무주택 세대주만 가입이 가능하며 국민은행, 우리은행, 농협 등에서만 개설이 가능하다.
2. 청약 가능한 종류와 평수가 다르다.
청약저축은 전용 25.7평 이하의 국민주택을 분양/임대 받기 위해 사용할 수 있다.
국민 주택이라 함은, 국민주택기금의 지원을 받아 짓는 민영아파트, 주택공사, 도시개발공사가 공급하는 주택을 말한다.
청약예금은 민간 건설 업체가 짓는 민영주택을 분양 받기 위해 사용할 수 있고, 2년마다 한번씩 청약 가능한 평형을 바꿀 수 있다.
청약부금은 전영 25.7평 이하 민영주택과 중형 국민주택(18~25.7평)을 분양 받기 위해 사용할 수 있다.
청약부금으로는 25.7평을 초과하는 주택을 분양 받을 수 없기 때문에, 큰 평수를 분양 받기 위해서는 청약부금에 가입한 뒤, 2년이 지난 후 청약예금으로 전환해야 한다.
3. 이자 및 소득공제
청약저축에 불입한 금액에 대하여 소득 공제를 받을 수 있다.
청약예금이나 청약부금은 소독 공제 혜택은 없고, 불입한 금액에 대한 이자를 받을 수 있다.
이자를 받으려면, 해당 은행에 이자 금액과 수령 방법을 문의하면 된다.
- 2011/05/13 13:22
- ihacker.egloos.com/1476842
- 덧글수 : 0
- 2011/02/18 13:01
- ihacker.egloos.com/1382680
- 덧글수 : 0
[Foreign Language][English][OPIc] see, watch and look
오늘은 세 단어 see, look 그리고 watch에 대해서 생각해봅시다. ^^
세 단어 모두 "보다/지켜보다" 라는 의미를 가진 단어들이죠?
이 세 단어 외에도 비슷한 의미를 담은 단어들이 많이 있을텐데요. 왜 이렇게 여러가지 단어들이 있는 걸까요?
그것은 want, hope and wish 편에서도 말씀드렸던 것처럼, 각 단어들이 쓰이는 상황이나 용도가 아주 조금씩 다르기 때문이지요.
see, look 그리고 watch에도 조금씩 다른 의미가 있는데요~ 그 의미가 무엇인지 살펴보도록 합시다~
- see
"보다" 라는 뜻을 가지고 있는 건, 누구나 다 알고 있겠죠? see는 의미 그대로, 보이는 것을 보는 것을 말해요.
애써 찾아 보는 것도 아닌, 그냥 눈에 보이는 것을 볼 때 see를 사용하면 됩니다.
I saw him at the library yesterday. 나 I can see both of them. 과 같이 그냥 보이는 것을 이야기 할 때 쓰여요.
- watch
watch는 어떤 뜻으로 알고 있나요? "보다" 라는 의미도 있지만, "지켜보다"라는 의미가 좀 더 정확한 것 같네요.
지켜본 다는 것은 어떤 의미일까요? 관심을 가지고, 집중해서 보는 것을 "지켜보다" 라고 하지요.
네. 그렇습니다. watch는 이처럼 관심을 가지고 찾아서, 집중해서 보는 것을 의미합니다.
I watched the match yesterday. 또는 She watched him playing the piano. 와 같이 이야기 할 수 있겠죠?
- look
look도 보는 것이겠죠? see와는 달리 관심을 가지고 볼 때 look을 쓸 수 있어요.
watch하고 비슷하다구요? 네~ 비슷합니다. 하지만 다른 점이 있어요.
look은 관심을 가지고 보긴 하지만, watch처럼 집중해서 지켜보는 것이 아닌 잠깐 동안 흘끗 보는 것을 뜻해요.
Let's take a look. 혹은 He look at me. 와 같이 쓰일 수 있겠네요.
watch와 비슷한 의미로 쓰려면, "look carefully" 처럼 수식어구를 붙여주셔도 됩니다.
오늘은 세 단어 see, look 그리고 watch에 대해서 생각해봅시다. ^^
세 단어 모두 "보다/지켜보다" 라는 의미를 가진 단어들이죠?
이 세 단어 외에도 비슷한 의미를 담은 단어들이 많이 있을텐데요. 왜 이렇게 여러가지 단어들이 있는 걸까요?
그것은 want, hope and wish 편에서도 말씀드렸던 것처럼, 각 단어들이 쓰이는 상황이나 용도가 아주 조금씩 다르기 때문이지요.
see, look 그리고 watch에도 조금씩 다른 의미가 있는데요~ 그 의미가 무엇인지 살펴보도록 합시다~
- see
"보다" 라는 뜻을 가지고 있는 건, 누구나 다 알고 있겠죠? see는 의미 그대로, 보이는 것을 보는 것을 말해요.
애써 찾아 보는 것도 아닌, 그냥 눈에 보이는 것을 볼 때 see를 사용하면 됩니다.
I saw him at the library yesterday. 나 I can see both of them. 과 같이 그냥 보이는 것을 이야기 할 때 쓰여요.
- watch
watch는 어떤 뜻으로 알고 있나요? "보다" 라는 의미도 있지만, "지켜보다"라는 의미가 좀 더 정확한 것 같네요.
지켜본 다는 것은 어떤 의미일까요? 관심을 가지고, 집중해서 보는 것을 "지켜보다" 라고 하지요.
네. 그렇습니다. watch는 이처럼 관심을 가지고 찾아서, 집중해서 보는 것을 의미합니다.
I watched the match yesterday. 또는 She watched him playing the piano. 와 같이 이야기 할 수 있겠죠?
- look
look도 보는 것이겠죠? see와는 달리 관심을 가지고 볼 때 look을 쓸 수 있어요.
watch하고 비슷하다구요? 네~ 비슷합니다. 하지만 다른 점이 있어요.
look은 관심을 가지고 보긴 하지만, watch처럼 집중해서 지켜보는 것이 아닌 잠깐 동안 흘끗 보는 것을 뜻해요.
Let's take a look. 혹은 He look at me. 와 같이 쓰일 수 있겠네요.
watch와 비슷한 의미로 쓰려면, "look carefully" 처럼 수식어구를 붙여주셔도 됩니다.
- 2011/02/17 13:14
- ihacker.egloos.com/1381109
- 덧글수 : 0
[Foreign Language][English][OPIc] want, hope and wish
오늘은 "~을 원하다/희망하다/바라다"의 뜻을 가진 세 단어에 대해서 알아봅시다.
세 단어는, 이미 제목에서 보셨겠지만, 바로 want, hope 그리고 wish입니다.
종합해 보면, 모두 "원하다"라는 뜻을 가졌다고 요약할 수 있는데요.
그럼 왜 같은 의미를 지닌 단어들이 여러가지가 존재할까요?
그것은 바로, 시간/상황에 따라 쓰여야 하는 단어가 다르기 때문입니다.
(사실 "시간/상황에 따라 쓰이면 좋을 단어들이 따로 있다"는 표현이 맞겠죠? 살짝 틀렸다고 잡아가지는 않아요.ㅋ
다만, 우리는 OPIc Test를 통해 검증을 받아야 하니, 살짝 그들의 조건을 맞춰주어야겠죠? ^^)
- want
want는 우리가 가장 쉽게, 가장 많이 쓰고 있는 단어일 것 같은데요~
I want to go shopping. 이나 I want to go to a movie. 와 같이 쓰일 수 있겠죠?
want는 이와 같이 당장/현재에 현실적으로 원하는 것을 표현할 때 사용해요.
go shopping하거나 go to a movie하는 것이 비현실 적인 것은 아니죠?
다들 매일 쇼핑가서 명품 bag하나 사고, 영화 한편 정도는 볼 수 있잖아요? 안그럼 삶이 고단한 거잖아요. 그쵸?
- hope
hope도 want 못지 않게 일반적으로 많이 쓰는 단어죠?
그런데 보통 hope는 당장/현재 하고 싶은 일 보다는 미래에 하고 싶은/바라는 일을 이야기 할 때 사용해요.
미래에 바라는 일 중, 비교적 현실적인 내용을 이야기 할 때 사용할 수 있어요.
I hope (that) we can arrive around two hours. (이)나 I hope I can see you soon. 과 같이 쓸 수 있겠죠?
미래에 하고 싶은 일이긴 하지만, 비현실 적인 내용은 아니죠? 이런 경우에 hope를 사용하시면 됩니다.
- wish
자, 마지막으로 wish라는 단어도 잘 아시죠? I wish I were a king of a country. 처럼 쓰일 수 있겠죠?
wish는 미래에 바라는/하고싶은 일을 이야기할 때 사용할 수 있습니다. 하지만, hope보다는 좀 먼 미래?
약간은 비 현실적인 것을 이야기 할 때 사용해요. 그래서 영문법을 보시면 가정법이 있고, 그 중 제일 많이 들어본
예문이 I wish I were ... 와 같은 식의 문장일 거예요.
I wish I were married to Angelina Jolie. 저라고 안젤리나 졸리와 결혼하지 말란 법 있습니까? 네? 있다고요? ㅡㅡ;
네, 그렇습니다. 완전 불가능 하다고 하긴 어렵지만, 약간 비현실 적이죠?
이런 경우에 wish라는 단어를 쓰시면 참 좋을 것 같네요.
그리고 우리가 가지고 싶지만, 현실적으로 어렵거나 가지지 못한 것을 "wish list"라고 하는 것도 일맥 상통한다고 할 수 있겠네요.
아! We wish you a merry christmas ! 이 노래 많이 들어보셨죠? 이건 충분히 가능한 일인데...
이렇게 쓰는 경우도 있네요.ㅋ
오늘 배운 세 가지 단어를 상황에 맞게 적절히 사용하시면 좋을 것 같네요. ^^
오늘은 "~을 원하다/희망하다/바라다"의 뜻을 가진 세 단어에 대해서 알아봅시다.
세 단어는, 이미 제목에서 보셨겠지만, 바로 want, hope 그리고 wish입니다.
종합해 보면, 모두 "원하다"라는 뜻을 가졌다고 요약할 수 있는데요.
그럼 왜 같은 의미를 지닌 단어들이 여러가지가 존재할까요?
그것은 바로, 시간/상황에 따라 쓰여야 하는 단어가 다르기 때문입니다.
(사실 "시간/상황에 따라 쓰이면 좋을 단어들이 따로 있다"는 표현이 맞겠죠? 살짝 틀렸다고 잡아가지는 않아요.ㅋ
다만, 우리는 OPIc Test를 통해 검증을 받아야 하니, 살짝 그들의 조건을 맞춰주어야겠죠? ^^)
- want
want는 우리가 가장 쉽게, 가장 많이 쓰고 있는 단어일 것 같은데요~
I want to go shopping. 이나 I want to go to a movie. 와 같이 쓰일 수 있겠죠?
want는 이와 같이 당장/현재에 현실적으로 원하는 것을 표현할 때 사용해요.
go shopping하거나 go to a movie하는 것이 비현실 적인 것은 아니죠?
다들 매일 쇼핑가서 명품 bag하나 사고, 영화 한편 정도는 볼 수 있잖아요? 안그럼 삶이 고단한 거잖아요. 그쵸?
- hope
hope도 want 못지 않게 일반적으로 많이 쓰는 단어죠?
그런데 보통 hope는 당장/현재 하고 싶은 일 보다는 미래에 하고 싶은/바라는 일을 이야기 할 때 사용해요.
미래에 바라는 일 중, 비교적 현실적인 내용을 이야기 할 때 사용할 수 있어요.
I hope (that) we can arrive around two hours. (이)나 I hope I can see you soon. 과 같이 쓸 수 있겠죠?
미래에 하고 싶은 일이긴 하지만, 비현실 적인 내용은 아니죠? 이런 경우에 hope를 사용하시면 됩니다.
- wish
자, 마지막으로 wish라는 단어도 잘 아시죠? I wish I were a king of a country. 처럼 쓰일 수 있겠죠?
wish는 미래에 바라는/하고싶은 일을 이야기할 때 사용할 수 있습니다. 하지만, hope보다는 좀 먼 미래?
약간은 비 현실적인 것을 이야기 할 때 사용해요. 그래서 영문법을 보시면 가정법이 있고, 그 중 제일 많이 들어본
예문이 I wish I were ... 와 같은 식의 문장일 거예요.
I wish I were married to Angelina Jolie. 저라고 안젤리나 졸리와 결혼하지 말란 법 있습니까? 네? 있다고요? ㅡㅡ;
네, 그렇습니다. 완전 불가능 하다고 하긴 어렵지만, 약간 비현실 적이죠?
이런 경우에 wish라는 단어를 쓰시면 참 좋을 것 같네요.
그리고 우리가 가지고 싶지만, 현실적으로 어렵거나 가지지 못한 것을 "wish list"라고 하는 것도 일맥 상통한다고 할 수 있겠네요.
아! We wish you a merry christmas ! 이 노래 많이 들어보셨죠? 이건 충분히 가능한 일인데...
이렇게 쓰는 경우도 있네요.ㅋ
오늘 배운 세 가지 단어를 상황에 맞게 적절히 사용하시면 좋을 것 같네요. ^^
- 2011/02/14 21:02
- ihacker.egloos.com/1374409
- 덧글수 : 0
[Linux Tips][Programming] Programming을 시작하기 전에...
* 참고로, 이 글은 누구에게 자랑스럽게 보여주려고 쓴 글은 아니다.
Linux 상에서 프로그래밍을 하면서, 여러가지 문제에 부딫히고 해결했음에도 불구하고,
또 다시 그런 문제들에 봉착하고 다시 시간을 소비하여 해결하는 내 자신에 대한 반성의 글이기도 하며,
언젠가 머지 않은 미래에 또 다시 이런 실수를 범하면 한번 다시 살펴보려는 의도에서 적은 글이다.
Linux에서 programming을 하고, 컴파일을 하고, 만들어진 실행파일을 돌려보다 보면,
생각보다 잘 돌아갈 때도 있고, (물론 이런 경우는 극히 드물고, 의도하지 않아서 잘 돌 때가 더 많다.)
생각만큼 잘 돌아갈 때도 있고, (말장난 하자는 건 아닙니다. ㅋ)
생각보다 잘 돌아가지 않을 때도 있고, 심지어는 돌아가다가 꽥(?!) 하고 비명횡사 하는 경우도 많이 있다.
1. 생각보다 잘 돌아가지 않을 때라면, 여지 없이 코드를 보라.
Linus Torvals도 "Talk is cheap. Show me the code." 라고 한 것을 보아도, 코드를 보는 것은 참 중요하다고 할 수 있다.
코드를 적을 때, 혹은 코드를 읽고 받아들일 때, 사람마다 너무나 다르기 때문이다.
더구나 받아들인 코드를 말로 설명할 때는 더더욱 그 본질을 잃기 쉽다.
따라서, 코드를 보는 것이 참 중요하다 할 수 있다.
다만 문제가 되는 부분에만 너무 집착하지 말기를 권하고 싶다.
문제가 되는 부분을 해결하기는 쉽다. 하지만, 문제가 되는 부분에만 집착하여 문제를 분석하고 해결하는 경우,
그 전에는 문제를 발생시키지 않았던 부분에서 다른 문제가 발생할 수 있다.
"이 부분만 해결하면 완벽하게 돌아갈꺼야!" 라고 생각하며 빨리 끝내고자 하지만,
대부분의 경우는 프로그램의 전반적인 흐름을 코드로 읽고나서 고치는 시간에 비해
훨씬 많은 시간을 소비하게 된다.
2. 코드로 보기 어려운 경우, debugging tool과 kernel 의 도움을 받으라.
Linux에서는 gdb나 strace, ltrace 같은 훌륭한 tool과 kernel information이 제공된다.
- gdb는 훌륭한 runtime debugger이며, 수많은 오픈 소스 개발자들이 가장 많이 사용하는 tool이다.
ddd나 insight와 같은 gdb graphic frontend들도 많고, 사용법도 쉽게 익힐 수 있다는 장점이 있다.
- strace는 application에서 사용하는 system call을 보여주는 tool이다.
system call을 부르는 것은 코드에도 있는데, 무엇하러 사용하냐고 반문할 수도 있다.
하지만 strace를 이용하면, 해당 process가 어떤 system call을 부르고 죽었는지
어느 system call에서 block되어 있는지, 어느 call들에서 반복되고 있는 지 등을 run time에 확인할 수 있다.
strace를 통해 얻은 정보를 바탕으로 gdb를 열거나, /proc 에서 추가정인 정보를 얻어 debugging을 수행한다.
- ltrace는 application에서 사용하는 library call을 보여주는 tool이다.
system call을 보는 것만으로 충분치 않은 경우에, ltrace를 통해 call과 인자, 그리고 결과를 함께 볼 수 있다.
- kernel /proc file system
Linux kernel은 /proc이라는 특별한 file system을 제공한다.
run time에 kernel과 user application process, device, memory등에 대한 각종 정보들을 제공한다.
예를 들어, pid(process id)가 1005인 녀석의 현재 상태를 알고 싶다면,
cat /proc/1005/wchan 이라는 명령을 통해 wait하고 상태를 알 수 있고,
pid 1009인 process가 열고 있는 fd (file descriptor)의 정보를 알고 싶다면,
ls -al /proc/1009/fd 라는 명령을 통해 각 fd에 대한 정보를 얻을 수 있다.
단순한 정보라고 생각할 지 모르나, runtime시에는 엄청난 위력을 발휘할 수 있는 수 많은 정보들이
/proc 및 /proc/해당pid/ 아래에 존재한다.
- ps, pstree, top 명령
ps명령은 process의 list와 status등을 알 수 있다.
특히, ps -auxw 명령을 통해, 각 process의 pid, 상태, cpu 소모시간 등을 알 수 있기 때문에
application이 정상적으로 돌아가고 있는지 멈추어있는지 등을 쉽게 알 수 있다.
ps -eLfw 라는 명령을 통해 프로세스와 스레드 정보를 함께 얻을 수도 있다.
pstree 명령은 말 그대로 process tree를 보여준다.
특히 pstree -pan 명령을 통해 각 process의 hierarchy를 쉽게 알 수 있다는 장점이 있다.
top 명령은 process들의 CPU 점유율을 run time에 보여주는 tool 이다.
예를 들어, 시스템이 갑작스럽게 느려지거나 하는 경우에 top 명령을 이용하면
어느 process때문에 느려지는지 감을 잡는데 큰 도움을 얻을 수 있다.
위에 언급한 tool 외에도 수많은 유용한 tool이 있다.
각 tool이 제공하는 기능은 미약하지만, 그것들이 함께 사용되어 지면 엄청난 위력을 낼 수 있다.
그것이 Linux tool들의 매력이 아닐까 생각한다.
* 참고로, 이 글은 누구에게 자랑스럽게 보여주려고 쓴 글은 아니다.
Linux 상에서 프로그래밍을 하면서, 여러가지 문제에 부딫히고 해결했음에도 불구하고,
또 다시 그런 문제들에 봉착하고 다시 시간을 소비하여 해결하는 내 자신에 대한 반성의 글이기도 하며,
언젠가 머지 않은 미래에 또 다시 이런 실수를 범하면 한번 다시 살펴보려는 의도에서 적은 글이다.
Linux에서 programming을 하고, 컴파일을 하고, 만들어진 실행파일을 돌려보다 보면,
생각보다 잘 돌아갈 때도 있고, (물론 이런 경우는 극히 드물고, 의도하지 않아서 잘 돌 때가 더 많다.)
생각만큼 잘 돌아갈 때도 있고, (말장난 하자는 건 아닙니다. ㅋ)
생각보다 잘 돌아가지 않을 때도 있고, 심지어는 돌아가다가 꽥(?!) 하고 비명횡사 하는 경우도 많이 있다.
1. 생각보다 잘 돌아가지 않을 때라면, 여지 없이 코드를 보라.
Linus Torvals도 "Talk is cheap. Show me the code." 라고 한 것을 보아도, 코드를 보는 것은 참 중요하다고 할 수 있다.
코드를 적을 때, 혹은 코드를 읽고 받아들일 때, 사람마다 너무나 다르기 때문이다.
더구나 받아들인 코드를 말로 설명할 때는 더더욱 그 본질을 잃기 쉽다.
따라서, 코드를 보는 것이 참 중요하다 할 수 있다.
다만 문제가 되는 부분에만 너무 집착하지 말기를 권하고 싶다.
문제가 되는 부분을 해결하기는 쉽다. 하지만, 문제가 되는 부분에만 집착하여 문제를 분석하고 해결하는 경우,
그 전에는 문제를 발생시키지 않았던 부분에서 다른 문제가 발생할 수 있다.
"이 부분만 해결하면 완벽하게 돌아갈꺼야!" 라고 생각하며 빨리 끝내고자 하지만,
대부분의 경우는 프로그램의 전반적인 흐름을 코드로 읽고나서 고치는 시간에 비해
훨씬 많은 시간을 소비하게 된다.
2. 코드로 보기 어려운 경우, debugging tool과 kernel 의 도움을 받으라.
Linux에서는 gdb나 strace, ltrace 같은 훌륭한 tool과 kernel information이 제공된다.
- gdb는 훌륭한 runtime debugger이며, 수많은 오픈 소스 개발자들이 가장 많이 사용하는 tool이다.
ddd나 insight와 같은 gdb graphic frontend들도 많고, 사용법도 쉽게 익힐 수 있다는 장점이 있다.
- strace는 application에서 사용하는 system call을 보여주는 tool이다.
system call을 부르는 것은 코드에도 있는데, 무엇하러 사용하냐고 반문할 수도 있다.
하지만 strace를 이용하면, 해당 process가 어떤 system call을 부르고 죽었는지
어느 system call에서 block되어 있는지, 어느 call들에서 반복되고 있는 지 등을 run time에 확인할 수 있다.
strace를 통해 얻은 정보를 바탕으로 gdb를 열거나, /proc 에서 추가정인 정보를 얻어 debugging을 수행한다.
- ltrace는 application에서 사용하는 library call을 보여주는 tool이다.
system call을 보는 것만으로 충분치 않은 경우에, ltrace를 통해 call과 인자, 그리고 결과를 함께 볼 수 있다.
- kernel /proc file system
Linux kernel은 /proc이라는 특별한 file system을 제공한다.
run time에 kernel과 user application process, device, memory등에 대한 각종 정보들을 제공한다.
예를 들어, pid(process id)가 1005인 녀석의 현재 상태를 알고 싶다면,
cat /proc/1005/wchan 이라는 명령을 통해 wait하고 상태를 알 수 있고,
pid 1009인 process가 열고 있는 fd (file descriptor)의 정보를 알고 싶다면,
ls -al /proc/1009/fd 라는 명령을 통해 각 fd에 대한 정보를 얻을 수 있다.
단순한 정보라고 생각할 지 모르나, runtime시에는 엄청난 위력을 발휘할 수 있는 수 많은 정보들이
/proc 및 /proc/해당pid/ 아래에 존재한다.
- ps, pstree, top 명령
ps명령은 process의 list와 status등을 알 수 있다.
특히, ps -auxw 명령을 통해, 각 process의 pid, 상태, cpu 소모시간 등을 알 수 있기 때문에
application이 정상적으로 돌아가고 있는지 멈추어있는지 등을 쉽게 알 수 있다.
ps -eLfw 라는 명령을 통해 프로세스와 스레드 정보를 함께 얻을 수도 있다.
pstree 명령은 말 그대로 process tree를 보여준다.
특히 pstree -pan 명령을 통해 각 process의 hierarchy를 쉽게 알 수 있다는 장점이 있다.
top 명령은 process들의 CPU 점유율을 run time에 보여주는 tool 이다.
예를 들어, 시스템이 갑작스럽게 느려지거나 하는 경우에 top 명령을 이용하면
어느 process때문에 느려지는지 감을 잡는데 큰 도움을 얻을 수 있다.
위에 언급한 tool 외에도 수많은 유용한 tool이 있다.
각 tool이 제공하는 기능은 미약하지만, 그것들이 함께 사용되어 지면 엄청난 위력을 낼 수 있다.
그것이 Linux tool들의 매력이 아닐까 생각한다.
- 2011/02/12 15:59
- ihacker.egloos.com/1368249
- 덧글수 : 0
[Linux Tips][File System] NFS(Network File System) 이용하기
Host 간 file을 공유하는 방법은 여러가지가 있다.
같은 OS라면 더 방법이 많겠고, 서로 다른 OS라도 이미 많은 표준들 덕분에 나온 좋은 방법들이 있겠다.
- TCP/IP protocol을 이용한 파일 전송 방법도 있겠고,
- 서로 다른 OS를 사용하고 있는 경우, Samba server/client를 이용하여 공유 하는 방법도 있고,
- NFS를 이용하는 방법도 있겠다.
수 많은 방법들이 있겠지만, 여기에서는 Linux host간 파일 공유 방법,
그 중에서도 NFS (Network File System)을 이용하는 방법에 대해 간략히 소개한다.
NFS를 사용하려면, 하나의 host가 server가 되어야 하고, 다른 host는 client가 되어야 한다.
당연한 이야기지만, server로 동작할 host에는 nfs server관련 package가 설치되어야 하고,
client에는 server에 접속하기 위한 package가 설치되어야 한다.
하지만 걱정할 필요는 없다. 대부분의 linux 배포판들은 그 나름의 패키지 시스템을 가지고 있어서,
nfs관련된 패키지를 검색할 수 있고, 설치할 수 있다. 그리고 연관된 패키지들도 함께 설치되도록 도와준다.
간단히 우분투의 예를들면, 아래 1~3번 명령을 통해 nfs server와 client를 설치할 수 있다.
1. $ sudo apt-get update
(root 권한이 필요하므로, sudo 명령을 사용하여 root권한을 일시적으로 획득한다.)
2. $ sudo apt-get cache search nfs
(nfs라는 키워드로 관련 package들을 검색)
3. $ sudo apt-get install nfs-common nfs-kernel-sever
(nfs server 및 client 설치. nfs-common은 server와 client에 필요한 common part 이다.)
패키지가 정상적으로 설치되었다고 가정하자.
이제 nfs server에서는 client에서 접속할 수 있도록, 세팅 작업을 해두어야 하고,
nfs client에서는 mount -t nfs {host}:{absolute_path_of_shared_directory} 와 같은 명령으로 nfs server에 접속하면 된다.
먼저 nfs server의 세팅은 아래와 같이 하면 된다.
실제 원하는 configuration에 따라 내용이 달라지므로, 자세한 내용은 검색을 통해 해결하길 바란다.
1. /etc/exports 파일에 아래와 같이 세팅한다. (파란색 부분)
========================================================================
/etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/opt/my_share 192.168.129.3 (rw,sync,no_root_squash,insecure)
/opt/my_share 10.10.123.1 (rw,sync,no_root_squash,insecure)
========================================================================
2. server의 세팅 값을 반영하기 위해, nfs server를 재시작한다.
$ sudo mkdir /opt/my_share
$ echo "test" > /opt/my_share/test.txt
$ sudo /etc/init.d/nfs-kernel-server restart
3. nfs server에 정상적으로 접속이 되는지, nfs server내에서 확인한다.
$ mkdir temp_nfs
$ mount -t nfs 10.10.123.1:/opt/my_share ./temp_nfs
4. mount된 temp_nfs 디렉토리에 파일이 있는 지 확인
이제 nfs client host에서 nfs server를 mount해서 사용해보자.
1. temp_dir을 만들어서, nfs server의 /opt/my_share를 mount 해본다.
$ mkdir temp_dir
$ mount -t nfs 10.10.123.1:/opt/my_share ./temp_dir
2. mount된 temp_dir에 파일이 있는 지 확인한다.
Host 간 file을 공유하는 방법은 여러가지가 있다.
같은 OS라면 더 방법이 많겠고, 서로 다른 OS라도 이미 많은 표준들 덕분에 나온 좋은 방법들이 있겠다.
- TCP/IP protocol을 이용한 파일 전송 방법도 있겠고,
- 서로 다른 OS를 사용하고 있는 경우, Samba server/client를 이용하여 공유 하는 방법도 있고,
- NFS를 이용하는 방법도 있겠다.
수 많은 방법들이 있겠지만, 여기에서는 Linux host간 파일 공유 방법,
그 중에서도 NFS (Network File System)을 이용하는 방법에 대해 간략히 소개한다.
NFS를 사용하려면, 하나의 host가 server가 되어야 하고, 다른 host는 client가 되어야 한다.
당연한 이야기지만, server로 동작할 host에는 nfs server관련 package가 설치되어야 하고,
client에는 server에 접속하기 위한 package가 설치되어야 한다.
하지만 걱정할 필요는 없다. 대부분의 linux 배포판들은 그 나름의 패키지 시스템을 가지고 있어서,
nfs관련된 패키지를 검색할 수 있고, 설치할 수 있다. 그리고 연관된 패키지들도 함께 설치되도록 도와준다.
간단히 우분투의 예를들면, 아래 1~3번 명령을 통해 nfs server와 client를 설치할 수 있다.
1. $ sudo apt-get update
(root 권한이 필요하므로, sudo 명령을 사용하여 root권한을 일시적으로 획득한다.)
2. $ sudo apt-get cache search nfs
(nfs라는 키워드로 관련 package들을 검색)
3. $ sudo apt-get install nfs-common nfs-kernel-sever
(nfs server 및 client 설치. nfs-common은 server와 client에 필요한 common part 이다.)
패키지가 정상적으로 설치되었다고 가정하자.
이제 nfs server에서는 client에서 접속할 수 있도록, 세팅 작업을 해두어야 하고,
nfs client에서는 mount -t nfs {host}:{absolute_path_of_shared_directory} 와 같은 명령으로 nfs server에 접속하면 된다.
먼저 nfs server의 세팅은 아래와 같이 하면 된다.
실제 원하는 configuration에 따라 내용이 달라지므로, 자세한 내용은 검색을 통해 해결하길 바란다.
1. /etc/exports 파일에 아래와 같이 세팅한다. (파란색 부분)
========================================================================
/etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/opt/my_share 192.168.129.3 (rw,sync,no_root_squash,insecure)
/opt/my_share 10.10.123.1 (rw,sync,no_root_squash,insecure)
========================================================================
2. server의 세팅 값을 반영하기 위해, nfs server를 재시작한다.
$ sudo mkdir /opt/my_share
$ echo "test" > /opt/my_share/test.txt
$ sudo /etc/init.d/nfs-kernel-server restart
3. nfs server에 정상적으로 접속이 되는지, nfs server내에서 확인한다.
$ mkdir temp_nfs
$ mount -t nfs 10.10.123.1:/opt/my_share ./temp_nfs
4. mount된 temp_nfs 디렉토리에 파일이 있는 지 확인
이제 nfs client host에서 nfs server를 mount해서 사용해보자.
1. temp_dir을 만들어서, nfs server의 /opt/my_share를 mount 해본다.
$ mkdir temp_dir
$ mount -t nfs 10.10.123.1:/opt/my_share ./temp_dir
2. mount된 temp_dir에 파일이 있는 지 확인한다.



최근 덧글