에 1시간만 정복하라

 

 

목수의 아들로 태어나 증기기관을 발명한 와트는 기계공 시절에 화학과 기계학을 독학하면서 염색업자로부터 독일어를 배웠다.

 

스티븐슨은 야간 근무를 하는 동안 수학과 측량학을 독학으로 공부했고 낮에는 짬을 이용해서 석탄 운반차 측면에 분필 쪼가리로 계산을 하곤 했다.

 

끈기만 있다면 자투리 시간을 활용하여 큰 성과를 얻어낼 수 있다.

 

무가치한 일에서 하루 1시간씩만 떼어 유익한 일에 활용한다면, 평범한 능력을 가진 사람도 과학의 한 분야쯤에는 정통할 수 있다.

 

한시라도 무엇인가 가치 있는 것을 배우고 원리를 깨우치며 좋은 습관을 몸에 익히는 시간으로 써야 한다.

 

시간을 정복하는 자가 진정한 열정가라 할수 있다

이 글은 스프링노트에서 작성되었습니다.

'It's think(Thought become things)' 카테고리의 다른 글

99와 1의 차이  (0) 2008.10.06
인맥을 확실하게 넓히는 법  (0) 2008.10.06
삶은 부메랑이다  (0) 2008.10.02
  (0) 2008.09.05
바램이 클수록 실망도 커진다  (0) 2008.09.05

삶은 부메랑이다


플로랑스 스코벨 쉰이라는 사람이 이런 말을 했습니다.
"자신에게 준 것은 언제나 되돌려 받는다. 삶은 부메랑이다.
우리들의 생각, 말, 행동은 언제가 될지는 모르나 틀림없이 되돌려

받는다.
그리고 그것들은 희한하게도 우리 자신을 명중시킨다."
불평의 말이건 감사의 말이건
언제가는 메아리가 되어 우리 자신의 삶에 스며들게 마련입니다.

자신에게 주어진 것에 불평만을 내뱉는 사람은
불평만한 값어치의 사람이 되고,
자신에게 주어진 것에 감사를 연발하는 사람은
감사만큼의 값어치가 있는 사람이 된는 것이 인생의 법칙입니다.


* 오늘의 명언 - 스드니 쥬라드
대부분의 즐거움은 다른 사람들과의 행복한 관계에서 생겨난다.
반면 문제가 발생하는 대부분의 경우는 그들과의 불행한 관계에서
오는 것이다.
따라서 삶에 대한 문제의 대부분은 결국 사람문제다.

 

이 글은 스프링노트에서 작성되었습니다.

'It's think(Thought become things)' 카테고리의 다른 글

99와 1의 차이  (0) 2008.10.06
인맥을 확실하게 넓히는 법  (0) 2008.10.06
하루 한 시간만 정복하라  (0) 2008.10.02
  (0) 2008.09.05
바램이 클수록 실망도 커진다  (0) 2008.09.05

Body {font-size:9pt; font-family: 굴림} P, TR, TD, DIV, SPAN {font-size:9pt; font-family: 굴림;} P{line-height:160%; margin-top:0; margin-bottom:0;}

물질적, 정신적 모두 건강해 지시길^^

-------------------------------------------------------------------------------------------------------

돈의 일곱 가지 법칙

 

http://club.joinsland.com/bear/312507   

 

:

1970년대 초 [돈의 일곱 가지 법칙]이 팜플렛 형태로 나왔을 때, 기업의 경영자와 재무 담당자들은 앞 다투어 복사본

을 만들어 비밀리에 서로 돌려보았다.

 

이 글을 쓴 마이클 필립스는, 돈이 돌고 도는 과정에는 일정한 원리가 작용하며, 그 원리를 알지 못하는 한, 사람들은

돈에 휘둘린다고 한다. 돈을 움직일 수 있는 일곱 가지 법칙을 들어본다. 그는 1968년 약관 30세에 캘리포니아 은행

부행장이 되어 마스터카드 개발사업을 총지휘 하였다. 그 후 포인트 재단의 이사장을 역임 하였으며, 미국유럽·일본

등 세계 유수 기업들의 경영 자문에 응하고 있다.

:

 

1. 올바른 일을 하고 있으면 돈은 저절로 생긴다.

 

하고 싶은 일이 있으면 당장 시작하라. 그리고 돈에 대해서는 걱정하지 마라.

제1회 샌프란시스코 국제 도서전을 추진할 때의 일이다. 당시 우리는 관람료를 얼마나 받아야 전시장 사용료와 기타

부대비용을 충당할 수 있을까 하는 문제에 걸려서 첫 번째 모임에서 부터 진퇴양난에 빠져 있었다.

 

실력이 쟁쟁한 사람들이 뛰어난 아이디어와 엄청난 열성을 갖고 함께 일하는 상황이었음에도, 자금계획 문제만 나오면

그 순간부터 한숨만 나올 뿐 꼼짝 못하고 말았던 것이다.

 

그래서 나는 다짜고짜 “앞으로 돈 걱정은 내가 할 테니 다른 사람들은 더 이상 신경쓰지 마소!” 하고 말해버렸다.

결국 행사 전이나 기간 중이나 할 것 없이 돈이 문제가 된 경우는 전혀 없었다. 오히려 모든 경비를 지불하고도 돈이

남았다.

 

샐리 라스베리가 자유학교 일을 시작하려고 할 때, 자문을 해준 적이 있다. 그 때 내가 지적한 것은, 첫 회의에서부터

참석자들이, 교사 채용에는 얼마의 비용이 들고, 학교 건물을 짓는 데에 또 얼마의 비용이 든다는 등 돈 문제를 논하

게 되면 그 사업은 시작도 하기 전에 운을 다할 것이라는 점이었다.

 

일단 ‘시작해 놓고 보라’는 것이고, 그러면 돈이 저절로 따라오게 되어 있다고 귀뜸해 주었다.

돈 걱정을 피하는 방법은, 따로 한 사람 또는 한 팀을 정하여 돈 문제에 전념하게 함으로써, 다른 사람들의 힘까지 흩

어지는 일을 방지하는 데 있다.

 

만일 우리가 어떤 일에 대해 열과 성을 다하고 실제로 우리 내부에서 정열이 용솟음치고 있다면, 우리는 하고 싶은 일

을 하면서 생계를 유지할 수 있는 거의 무한대의 방법을 찾아내게 될 것이다.

 

 2. 돈과 관련하여 발생하는 어떤 일도 그냥 넘어가지 마라

 

모든 지출은 기록을 해야 하고, 영수증을 받는 경우에는 이를 보관 해야 한다. 어느 정도 상세하게 기록을 남겨야 하

는가 하는 문제에 관해서는 하한선을 설정할 수도 있을 것이다.

 

가령 아주 가난하다면, 50센트가 넘는 지출은 모두 기록해야 한다. 만일 두 달쯤 지났을 때 기록 유지에 혼선이 생겨

계산이 맞지 않아 더 이상 기록하기가 어렵게 된다면, 기록을 멈추고 거슬러 올라가서 앞뒤가 정확하게 맞을 때까지

차근차근 정리해야 한다. 이렇게 하는 것은 돈의 흐름을 놓치지 않기 위해서다.

 

즉 지금 갖고 있는 돈은 얼마나 되고, 쓰는 돈은 얼마나 되며, 들어오는 돈은 얼마나 되는가 하는 돈의 흐름에 대한

전반적인 방향을 대강 파악하기 위해서이다.

그래야 돈을 쓰는 데 대한 적절한 제동장치를 가질 수 있는 것이다.

 

 3. 돈은 꿈이다

 

돈이란 다분히 마음의 상태이다. 환상 그 자체, 순전히 꿈인 것이다.

돈을 현실이라 보고 잡을 수 있는 것이라 좇는 사람들, 다시 말해 수십만 달러를 벌기 위해 노심초사하는 사람들은 인

생의 방향을 그것에 맞추고, 그 목적을 이룰 수만 있다면 어떠한 것도 감수한다. 그들 자신이 목적의 일부가 되는 것

이다. 그렇지만 그 목적은 꿈 (신기루)이기 때문에 도중에 그들은 처음 출발한 때와는 사뭇 다른 사람이 되어 버린다.

 

돈을 상대적인 가격 체계의 일부라는 측면으로 생각한다면, 환상적인 요소가 두드러진다. 이론적으로 말해서 이 세상

모든 물건의 가격은 그 물건의 수요와 희소성에 비례하여 결정된다.

 

돈이란 전 세계적으로 그 물건에 가해지는 수요와 공급의 압력을 기록하는 의사소통이다. 실체하는 것이 아닌, 환상인

것이다.

이런 점을 인식하지 못하고 돈을 찾아 나선 사람들은, 현실을 망각 하고 우왕좌왕하게 되어 주변과 충돌을 거듭하다가

마침내는 스스로 환상의 일부가 되고 마는 것이다.

 

나의 절친한 친구 중 멜리사는 일급 화가였으며, 화랑도 가지고 있다. 그녀는 명석하고 따뜻한 성품으로 많은 사람들

의 사랑을 받았으며,지인들과의 사교 모임에서 언제나 주인공이었다.

 

그런데 화랑사업에 익숙해지면서, 자신이 판매와 영업의 귀재라는 사실에 눈을 떴다. 사업은 계속 번창했으며, 근사한

화랑을 운영 하는 데 필요한 돈만 벌면 만족하겠다던 그녀의 소박한 희망은 사업을 더 크게 키워보겠다는 열정으로 변

했다.

 

사업은 커졌고, 그녀는 많은 돈을 벌었다. 그렇지만 그녀는 완전히 딴 사람이 되었다. 더 이상 그녀 곁에서는 어떤 편

안함을 느낄 수가 없다.

그녀에게서 친구들은 떨어져 나갔으며, 그녀의 관심은 편협해져 버렸다. 그리고 그녀는 고독한 사람이 되었으며, 직원

들에게 강압적인 사람이 되어 버렸다.

:

 

 4. 돈은 악몽이다  

 

범죄의 약 90%는 돈 때문에 일어나며, 교도소에 수감되어 있는 죄수의 약 80%도 돈과 관련된 범죄 때문에 징역을 살고

있다.

요컨대 돈은 사람들이 감옥살이를 하는 극히 중요한 원인이 되고 있다.어쩌면 사람마다 돈에 대한 열망과는 달리 돈을

버는 능력에는 극단적으로 차이가 나기 때문에 죄를 짓기까지 하는 것이라고 말할 수도 있겠다.

 

죄를 범하는 사람들은 돈이라면 물불을 가리지 못하는 상태가 되어, 대다수의 보통 사람들보다 더 큰 위험을 기꺼이

감수하려는 경우가 흔하다.

내가 보기에는 은행이나 식품점에서 돈을 훔치다가 잡히는 사람들은 돈이면 무엇이든지 다 할 수 있다는 환상에 사로

잡혀 있는 듯하다. 단순히 배가 고프다는 이유로 어떻게 은행이나 식품점을 털려고 할 수 있는지 이해하기 어렵다.

 

한편, 많은 돈을 물려받은 사람들의 관점에서 볼 때도 돈은 악몽이다. 내가 아는 이 중에 젊고 매력적인 데비라는 이

가 있다. 그녀는 젊은 나이에 막대한 재산을 상속받았으나, 그것이 그를 불행케 하는 요인이 되었다.

 

데비는 자신의 인생에서 무엇을 해야 할 것인가 하는 데 대해 명확한 생각을 갖고 있지 못하다.

인생의 의미 내지는 자신의 존재 이유를 발견할 기회를 갖기도 전에 그 많은 돈을 상속받게 된 것이다.

그녀는 좋은 학교를 다니고 훌륭한 교육을 받았으나, 보람 있는 일자리를 구하지 못하고 있는 처지이다.

또 많은 사람들을 만나지만, 자기에게 돈이 있다는 사실을 알면 이용하려 들 것이라는 공포 속에 늘 전전긍긍하고 있

다.

 

돈의 악몽에서 벗어나려면, 우선 우리 인생에서 추구하는 가치가, 돈과는 별개로 존재하는 강력하고도 구체적인 가치

가 되어야 한다는 사실을 자각해야 한다.

그리고 우리 자신과 주변 세계간에는 불가분의 관계가 존재한다는 사실을 깨달아야 한다.

 

이러한 관계는 장부를 기록하는 일에서부터, 우리가 돈에 대해 갖고 있는 생각에 대해 스스로에게 솔직해지는 일에 이

르기까지, 우리가 돈을 다루는 행동에 반영된다.

또한 가능하면 유머감각을 갖고,돈이 꿈이며 전적으로 환상이라는 사실을 인식해야 한다.

 

우리가 돈을 인생에 있어서 더욱 중요한 일을 위한 동기부여 요인이 아닌 목적으로 생각하기 시작한다면 우리의 인생

은 고통으로 끝나게 된다.

 

 5. 돈을 거저 주는 법은 절대로 없다

 

나는 돈을 정적이기도 하고 동적이기도 한 흐름으로 파악하기를 선호하는 편이다.

동적인 측면에서 돈은 어떤 관계를 표시한다. 그 관계는 차입자와 대출자의 관계일 수도 있고, 판매자와 구입자의 관

계일 수도 있으며 또 부모와 자식의 관계가 될 수도 있다.

 

시간을 두고 관찰해 보면, 마치 전선을 통해 전기가 흐르듯이 돈은 일정한 경로를 통해 흐른다.

양쪽이 연결된 전선 때문에 관계는 한정되고, 그 사이의 흐름은 의미있는 관찰 대상이 된다.

 

포인트 재단의 이사로 있을 때, 수십만 달러의 자금을 지원했다.

내가 지원한 보조금이 좋게 쓰인 경우도 있고 나쁘게 쓰인 경우도 있다고 생각되는데, 나쁘게 쓰인 경우는, 이성적으

로 들어맞기는 하지만 왠지 감정적으로 끌리지는 않은 사람이나 사업에게 자금을 제공한 경우였다.

 

이런 경우는 흐름이 한 방향으로만 정해져 있는, 즉 자금이 상환 되지 않는, 일방적으로 주기만 하는 상황이었다. 설

령 상환이 된다고 하더라도 감정적인 만족도 아울러 충족되어야 할 것임은 물론이다.

 

내가 성사시킨 최선의 보조금 지원사업 중 하나는 경제우선순위 협의회의 앨리스 테퍼 마를린에게 나간 보조금이었다.

앨리스의 훌륭한 자질, 그리고 그녀와의 긴밀한 유대관계 덕분에 다수의 우량 사업이 우리와의 협력 위에 실현되었다.

이처럼 유능한 개인과의 관계를 기초로 제공되는 보조금은 효과가 크고 강렬할 뿐만 아니라 우리 모두에게 유익하다.

앨리스는 보조금의 만기가 지난 후까지도, 제공된 보조금을 아직 다 사용하지 않고 있었다.

 

 6. 돈을 공짜로 받게 되는 법은 없다.

 

돈은 차입 또는 대출되거나 투자된다. 이러한 개념이 배제된 채로 돈을 주고 받는 일은 있을 수 없다. 돈을 주는 행위

내지 주기로 한 행위는 어떤 [관계]의 형성을 전제로 하고 있다는 것이다. 즉 그것은 일시적인 불균형이다. 돈을 준다

는 것에는 필연적으로 반대급부가 따른다. 반대급부가 따르지 않는다면, 돈의 악몽적인 요소가 침투하게 되는 것이다.

 

재단들은 훌륭한 제안서를 작성하여 자금을 신청하는 이들이,막상 자금을 받고 나서는 아무 것도 못하는 사람들 임을

알고 있다. 모르긴 몰라도 그들이 부담 없이 돈을 신청하는 까닭은, 돈과 함께 부과되는 것, 즉 그에 상응하는 책임에

대한 이해가 자신들에게 없기 때문일 것이다.

 

나는 오랜 기간에 걸쳐 각양각색의 사람들로부터 수많은 기금 제안서를 받아 보았다. 나는 그 대부분의 사람들이 스스

로를 반성해 보아야 한다고 생각한다. 그들은 제안서를 작성하고 보조금을 받는 과정에서 다분히 파괴적이 될 수도 있

다.

 

얼마 전에 넓은 토지를 구입하려는 한 단체가 나를 찾아왔다. 나는 “당신들이 필요한 것은 돈이 아니고 후원자로군요

. 가서 후원자들을 찾으세요. 그리고 그분들에게 헌금을 요청해보세요. 하지만 당신들이 진정으로 추구하는 바를 잊어

서는 안 됩니다. 돈이 아니라 바로 후원자라는 것을”이라고 말해주었다.

 

그들은 많은 사람들을 찾아다녔고, 소액의 헌금을 요청했다. 그리고 그 과정에서 소액의 헌금이 바로 후원의 약속임을

깨닫게 되었다. 그 단체는 나날이 성장하고 있는 중이다. 만일 그 단체가 처음부터 기부를 받았다면 십중팔구 전 장래

를 망쳐 버렸을 것이다.

단체의 저력은 어디에서 나오겠는가? 후원자와 친구들인가, 아니면 2~3년만 지나면 고갈되는 기부금인가?

 

 7. 돈이 없는 세상도 있다.

 

돈이 없이도 살 수 있는 세상이 있다는 사실을 염두에 두고 살아가는 일이 중요하다고 생각한다. 단적으로, 우리가 잠

을 자며 꿈을 꾸고 있을 때가 돈이 없는 세상이 아닌가. 이 우주에는 전혀 딴 세상이 있을 수 도 있으며, 돈이 없어도

되는, 지금과는 개념이 다른 삶의 형태가 있을지도 모른다. 그러나 이 마지막 법칙, 제 7법칙은 우리가 깨어 있을 때

하는 일 모두가 돈과 관련되어 있다는 사실을 한시라도 잊기 어렵게 만든다.

 

가령 포로수용소를 생각해보자. 포로들로부터 돈을 몰수 할 수는 있다. 그러나 곧 담배가 돈이 된다. 사람들이 깨어

있어 상호 교류하는 한, 돈은 존재한다. 그럼에도 불구하고 제 7법칙은 돈이 없는 세계도 있다는 사실을 말해준다. 그

세계는 미술과 시, 음악, 무용, 성(性)의 세계로 인간 삶의 본질이 구현되는 세계이다.

그러므로 제 7법칙은 우리를 인도하는 별과 같은 존재가 되어야 한다.

 

별은 물리적으로 우리 삶의 일부가 될 수 없지만, 방향을 정하는 데에는 도움이 된다. 우리는 그 별에 도달할 수도,

도달할 필요도 없지만, 우리를 인도하는 그 별 없이는 목적지에 도달할 수 없다.

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

머리보다 손이 먼저 움직이는
메모의 기술
제1장 메모를 위한 기본 조건
제2장 메모의 7가지 기술
제3장 일과 메모
제4장 일상과 메모
제5장 자기관리와 메모
◆메모를 하는 이유
  ① 잊지않기 위해 메모하기보다 잊기 위해 메모한다.
  ② 순간 떠오르는 느낌과 발상을 기억하기 위해 자기 지시를 내린다.
  ③ 일상생활과 업무의 진행을 도와준다.
      실적을 높이기 위해
      일 처리의 효율성을 위해
      능력을 향상시키기 위해
      새로운 일을 기획하기 위해
      비망록으로 사용하기 위해


◆메모를 습관화하는 방법
  ① 언제 어디서든 메모한다.
  ② 수첩에 자신이 좋아하는 사진을 붙여두고 수시로 들여다본다.
  ③ 잘 쓰려고 하지 마라. 메모는 자신을 위해서 하는 것이다.
◆업무에 메모를 활용하는 방법
  ① '처리할 일', '기억할 일' 식으로 리스트를 작성한다.
  ② 중요도, 우선순위에 따라 순서를 정한 후 끝나면 리스트를 하나씩 지우면서 확인한다.
  ③ 일이 끝난 후의 성취감을 만끽한다.
  ④ 메모한 내용은 나중에 다시 읽어보고 활용한다.
◆메모하기 위한 환경 조성
  ① 메모에 필요한 도구부터 준비한다.
  ② 디지털보다 아날로그 방식의 메모 도구를 고른다.
  ③ 수첩은 크기를 통일하고 일련번호를 매겨 정리한다.
  ④ 메모하는 기술보다 시간과 장소 등 환경을 먼저 조성한다.
  ⑤ 자신만의 시간을 가질 수 있는 공간이나 책상을 마련한다.
◆메모 도구 고르기의 핵심
  ① 메모 도구를 선택할 때는 편리함도 중요하지만 자신의 취향에 맞는 것을 고른다.
  ② 자신에게 맞는 수첩을 찾았다면 거기에 자신을 맞추며 가능한 바꾸지 않는 게 좋다.
  ③ 마음에 드는 수첩은 넉넉하게 준비하고, 1년에 한두 번은 자료의 백업 작업을 한다.
◆수첩의 올바른 사용법
  ① 모든 메모는 일단 적은 후에 정리한다.
  ② 수첩은 여러 권을 사용하지 않는다.
  ③ 스프링 노트를 사용하여 핵심 부분만 남긴다.
  ④ 손이 닿는 곳에 메모판을 걸어두고 생각나는 대로 적는다.
◆유형별 메모의 방법
  ① 꼼꼼한 타입
       항상 휴대할 수 있는 작은 수첩, 처리할 일의 목록, 달력 등을 활용한다.
  ② 감성적인 타입
       수첩을 휴대하고 다니며 갑자기 떠오른 생각을 적어두었다가 나중에 주제별로 정리한다.
  ③ 지성적인 타입
       노트 한 권에 메모도 하고 사진도 붙이며 감성을 발달시킨다.
  ④ 변덕스런 타입
       별로 메모하지 않는 사람이므로, 먼저 메모에 필요한 도구를 준비하고 메모하는 습관을
       기른다.
◆메모의 기술
  1. 언제 어디서든 메모하라.
     ① 목욕할 때, 산책할 때, 잠들기 전 등 언제 어디서든 메모한다.
     ② 늘 지니고 다니는 것, 늘 보이는 곳에 메모한다.
  2.. 주위 사람들을 관찰하라.
     ① 일을 잘하는 사람을 관찰하고 따라한다.
     ② 일을 잘하는 사람과 자신을 비교할 수 있는 일람표를 만들어본다.
     ③ 회의 내용이 지루하면 다른 사람들을 관찰한다.
  3. 기호와 암호를 사용하라.
  4. 중요사항은 한눈에 띄게 하라.
     ① 중요한 사항에는 밑줄을 긋는다.
     ② 좀더 중요한 사항은 동그라미로 표시한다.
     ③ 삼색 볼펜을 사용해 내용과 중요도를 구분하다.
     ④ 중요한 내용은 별도로 요약한다.
  5. 메모하는 시간을 따로 마련하라.
     ① 메모만을 목적으로 하는 시간을 갖는다.
     ② 일부러 커피숍을 찾거나 생각을 정리해 주는 여행을 떠난다.
     ③ 하루에 한 번이라도 수첩과 펜을 든다.
  6. 메모를 데이터베이스로 구축하라.
     ① 메모는 어떤 형태로든 남겨둔다.
     ② 메모를 모아 책 한 권으로 만든다.
     ③ 메모와 자료를 주제별로 문서 보관 상자에 넣어 데이터베이스화한다.
  7. 메모를 재활용하라.
     ① 예전의 메모를 다시 읽어보는 습관부터 기른다.
     ② 메모한 것들은 날짜별 혹은 주제별로 정리한다.
     ③ 정리된 메모를 문서 보관 상자에 보관한다.
     ④ 다시 읽을 때는 느낀 점이나 아이디어를 다른 색 펜으로 적어둔다.
◆업무를 시작하기 전 머릿속을 정리하는 메모
     ① 자신의 기분이나 심적 상태를 적는다.
     ② 처리할 일의 리스트를 작성한다.
     ③ 일의 우선순위를 정한다.
     ④ 스케줄이 변경될 때를 대비하여 계획을 세운다.
◆회의할 때의 메모 요령
     ① 커다란 대학노트를 준비하여 참가자별로 페이지를 등분한다.
     ② 각자 발표한 의견과 반론을 발언자 난에 순서대로 메모한다.
     ③ 나중에 다시 읽으며 중요한 발언에 표시한다.
◆협상할 때의 메모
     ① 말한 사람은 알파벳으로 표시한다.
     ② 이야기한 내용은 모두 적지 말고 중요한 단어만 표기한다.
     ③ 그림으로 그려도 좋다.
◆세미나에 참가한 결과를 보고서로 작성하기 위한 메모
     ① 세미나의 핵심 내용을 파악한다.
     ② 목적과 성과를 알 수 있도록 작성한다.
     ③ 별도의 수첩에 기록하지 말고 주최 측이 배포한 자료에 직접 쓴다.
     ④ 수첩에 메모할 때는 미리 목적과 성과를 생각하여 메모한다.
     ⑤ 핵심만 기록한 보고서는 핵심만을 요약, 정리한 메모에서 비롯된다.
◆음성 메모의 순서
     ① 메모하는 것이 부담된다면 머릿속의 생각을 먼저 정리한다.
     ② 녹음은 편하게 말할 수 있는 것부터 시작한다.
     ③ 녹음하고 난 후 제목을 붙여둔다.
     ④ 녹음 후에는 반드시 한 번은 제대로 들어본다.
     ⑤ 듣고 정리하면서 문장을 쓰는 능력을 기른다.
◆상사를 대할 때의 메모
     ① 지시한 내용은 그대로 받아 적는다.
     ② 일을 진행하면서 의문 사항이나 아이디어도 함께 적어나간다.
     ③ 말이 자주 바뀌는 상사를 대할 때는 상사가 지시하면 바로 그 앞에서 받아 적는다.
◆상사로서 부하 직원을 대할 때
     ① 부하 직원의 행동 유형이나 성격 등 기본 사항을 파악한다.
     ② 부하 직원에게 명령할 때는 때때로 구체적으로 지시한다.
     ③ 한꺼번에 대여섯 가지의 명령을 내려 메모할 수 밖에 없는 환경을 만든다.
◆편지나 비즈니스 문서를 작성할 때의 메모
     ① 무슨 내용을 어떤 식으로 전달하고 싶은지 항목별로 메모한다.
     ② 상대방에게 반드시 전해야 할 사항을 빠짐없이 쓴다.
     ③ 다 쓴 후에는 소리내어 읽어본다.
     ④ 훌륭한 문장을 만들려고 너무 애쓸 필요는 없다.
◆업무를 끝낼 때의 메모
     ① A4 용지에 하루 동안 한 일을 항목별로 적고, 완전히 끝난 일은 사인펜으로 지운다.
     ② 매일 메모지에 이런 방식으로 메모를 하고 내일의 할 일을 적어둔 곳에 붙인다.
     ③ 이렇게 모아둔 메모지들은 업무의 흐름을 알 수 있게 해준다.
◆전화를 걸거나 받을 때의 메모
     ① 바쁜 와중에도 전화를 받았을 때는 상대방의 말을 빠짐없이 메모해 둔다.
     ② 전화 통화할 때 숫자와 고유명사는 반드시 기록한다.
     ③ 메모지는 큰 종이를 준비하고 나중에 따로 요점만 정리한다.
     ④ 자신이 전화를 할 때는 상대방에게 이야기 할 내용을 미리 적어본다.
◆정보 스크랩의 포인트
     ① 일정한 크기로 파일에 철하거나 붙여서 책으로 만든다.
     ② 복사하여 정리할 때는 기사의 여백에 느낀 점을 간단하게 메모한다.
     ③ 일정한 크기로 복사하여 철해 둘 시간마저 없다면, 우선 파일 상자에 넣어두고 나중에
         다시 읽어보면서 정리한다.
◆강연회나 세미나에서 하는 메모
     ① 일반적으로 메모를 자주 하지 않는 사람은 글씨체가 예쁘지 않아 읽기에 불편하다.
     ② 나중에 다시 읽을 때 무슨 내용인지만 알아볼 수 있으면 되므로 너무 잘 쓰려고 애쓸
         필요는 없다.
     ③ 제목은 제일 위에 큼지막하게 쓴다. 누가 무엇에 대해 어떤 말을 했는지 알 수 있도록 쓴다.
     ④ 주제별로 페이지를 구분한다. 한 가지 주제가 끝나면 페이지를 바꾸어 기록한다.
     ⑤ 글씨는 읽기 좋은 크기로 쓴다. 글씨가 너무 작으면 나중에 다시 읽을 때 눈이 피로해서
         읽을 마음이 사라진다.
     ⑥ 중요한 부분에는 빨간색 펜이나 형광펜으로 표시한다.
◆인맥 관리를 위한 메모
     ① 사람을 만난 후에는 반드시 간략하게라도 상대방의 정보를 기록해 둔다.
     ② 명함을 교환하면 만난 날짜, 장소, 그 사람의 특징 등을 명함에 메모한다.
     ③ 상대방의 개성이나 특징을 표현할 수 있는 단어나 그림을 명함에 그려 넣는다.
     ④ 명함은 명함 지갑에는 물론 수첩과 가방 등 여러 곳에 분산해서 넣어다닌다.
     ⑤ 명함이 없을 때에는 인물 정보를 기입할 수 있는 카드를 활용한다.
◆생각을 정리할 때의 메모
     ① 차량의 통행이 적은 산책길이나 공원을 걸으며 생각을 정리한다.
     ② 문자화할 도구가 없을 때, 쓰기 싫거나 쓰는 일에 자신이 없으면 일단 녹음한 후
         나중에 문장으로 다듬는다.
     ③ 비상시에는 휴대전화나 자동응답기를 활용한다.
◆독서할 때의 메모
     ① 책을 읽을 때는 메모지를 책갈피로 사용한다.
     ② 끼워둔 메모지에 작가의 의도, 핵심 내용, 감상 등을 적는다.
     ③ 지저분해져도 상관없다면 책에 직접 쓴다.
◆아이디어가 떠올랐을 때의 메모
     ① 시공간을 가리지 않고 떠오르는 아이디어는 시공간을 가리지 않고 메모한다.
     ② 회의나 협상 중에도 아이디어가 생각나면 TPO(time, place, occasion)의 요령에 따라
         메모한다.
     ③ 주위 사람들에게 들은 기억할 만한 말과 그때의 느낌을 메모한다.
◆스트레스를 해소하기 위한 메모
     ① 커다란 종이에 화나는 이유나 스트레스의 원인을 나열해 본다.
     ② 쇼핑백에 큰 글씨로 '바보'라고 쓰고, 그것을 양손으로 찢는다.
     ③ 사직서를 쓰고 자신이 정말 하고 싶은 일을 작성해 본다.
◆메모를 위한 일기
     ① 일기는 메모하는 습관을 기르기 위한 첫걸음이다.
     ② 일기에 쓸 일이 없을 때에도 '오늘은 아무것도 하지 않았다'라고 쓴다.
     ③ 신문 기사를 쓰더라도 매일 노트를 펼치는 습관을 들인다.
1년 동안 메모한 수첩을 보관하면 1년 동안 자신이 살아온 기록을 간직하게 되는 것이다.
활용하지 않는 메모는 낙서에 불과하다.
생각나는 대로 메모했다가 다시 읽는 과정에서 새로운 아이디어가 떠오르기도 한다.
메모는 속도가 생명이다. 머뭇거리고 꾸물거리는 동안 순간적인 발상은 사라져버린다.
하루를 정리하며 메모할 수 있는 자신만의 공간, 자신만의 시간을 마련하는 것이
메모를 위한 첫걸음이다.
수첩에 자신을 맞추는 것도 메모를 지속하기 위한 방법이다.
메모하는 단계에서 공사를 구분하면 반드시 실패한다.
스프링 노트나 메모판 등 새로운 메모 도구를 활용하여 메모를 지속시킨다.
머릿속에 떠오른 생각은 그 자리에서 기록하는 것이 메모의 법칙이다.
사람들을 관찰하고 적어둔 메모는 그들을 상대하거나 함께 일할 때 많은 도움이 된다.
메모하는 방법에는 정답이 없다. 자기에게 가장 편한 방법을 사용하면 된다.
생각하기에 따라 출퇴근 시간도 머릿속을 정리할 수 있는 작은 여행이 된다.
한눈에 상황을 파악할 수 있도록 자신만의 메모 방법을 터득하라.
회의에 참석할 때는 핵심 사항, 회의의 흐름 그리고 무엇을 위한 회의인지를 상사의
입장이 되어 관찰해 보는 것이 필요하다.
떠오른 생각을 녹음하고 듣고 정리하다 보면 메모도 잘하게 된다.
편지나 비즈니스 문서에서 중요한 것은 '전달하려는 내용'을 빠짐없이 적는 것이다.
전화를 걸기 전에 전달할 내용을 메모해 보면 자신의 의사를 더욱 정확하게 전달할 수 있다.
신문 기사를 스크랩할 때는 여백에 느낀 점을 간단하게 메모한다.
강연회나 세미나에서는 이야기의 내용을 일일이 메모하지 않는다.
자신의 업무나 생활 양식에 관련된 일, 관심 있는 일만 메모한다.
강한 인상을 주기 위해서 명함은 개성 있는 것이 좋다.
명함은 매우 중요한 인맥 자료라는 점을 잊지 말자.
인물 정보 기입용 카드는 명함이 없을 때 요긴하게 쓸 수 있다.
메모든 녹음이든 중요한 것은 때와 장소에 맞춰 적절하게 사용하는 것이다.
단순히 쓰는 것만이 아니라 어떻게 사용할지가 떠오르는 메모가 좋은 메모다.
메모하는 습관을 갖는 것은 빠르게 변화하는 사회에서 살아남을 수 있는 강력한 무기를 갖는 셈이다.
아무렇지 않게 주고받던 이야기도 상황에 따라 다른 의미로 다가온다.
말의 의미를 이해하는 정도에 따라 그 사람의 미래나 인생 자체가 결정된다.
해결되지 않은 일은 메모해 두고 잠시 동안이라도 잊어버리자.
일기란, 자신을 생각하고 돌아보기 위해 혼자만의 시간을 갖는 것이다.

이 글은 스프링노트에서 작성되었습니다.

며칠 전 인맥 관리 전문가인 양광모 휴먼네트워크연구소장이 출판한 ‘100장의 명함이 100명의 인맥을 만든다’ 를 읽었습니다.
제목이 풍기는 인상처럼 양 소장은 이 책에서 "인맥은 숫자가 중요하다"는 점을 강조를 하고 있습니다.
책 의 내용을 한마디로 요약하면 인맥의 질 못지 않게 양이 중요하다는 것입니다. 명함을 많이 교환하고, 많은 모임에 나가고, 인터넷을 통해 광범위한 인맥을 구축하면서 자기를 알리는 것이 인맥쌓기의 기본이라는 것입니다. 그러면서 가장 쓸만한 인터넷 인맥 구축 도구로 링크나우를 상세히 소개해 주셨습니다.
양 소장은 링크나우의 헤비 유저입니다. 양 소장이 지난 열달 동안 인맥 구축 사이트인 링크나우(www.linknow.kr) 를 통해 맺은 인맥은 691명에 이르고 있습니다. 양 소장은 많은 CEO, 임원, 정부관리, 언론인 등과 꾸준히 1촌을 맺고, 이들을 초청해 각계인사 교류모임을 정기적으로 갖습니다. 1촌 뉴스를 통해 교류 모임이 열린다는 사실을 알리고, 모임에서 자연스럽게 상대를 소개해주는 것입니다. 저도 이 행사에 나가 만나게 된 분과 비즈니스 관계로까지 이어진 경험이 있습니다.
다 시 본론으로 돌아와 보죠. 양 소장 같은 전문가들이 인맥 쌓기에서 질만큼이나 중요한 것이 숫자라고 말하는 데는 이유가 있습니다. 이는 미국의 유명한 사회학자가 밝혀낸 ‘약한 고리의 강한 힘’이란 이론에 바탕을 두고 있습니다. 약한 유대관계가 강한 힘을 낸다는 뜻입니다.
스탠포드대 사회학과 마크 그라노베터(Mark Granovetter) 교수는 1973년 ‘The Strength of Weak Ties’ 란 논문을 발표했습니다. 그는 수백 명의 전문직 종사자와 엔지니어들의 취업 과정을 인터뷰했습니다. 그 결과 56%가 개인적인 연고, 19%가 스카우트를 통해, 20% 정도가 취직 시험을 통해 직장에 들어왔다고 대답했습니다.
중 요한 사실은 개인적인 연고로 직장을 구한 사람들 가운데 83%가 자신에게 직장을 소개해 준 사람이 친한 친구가 아니라 약한 유대 관계를 맺고 있는 사람이었다고 응답했다는 점입니다. 어쩌다 인사를 나누었거나, 모임에서 간혹 만난 사람이 도움을 준 것입니다.
사실 저만 해도 사업이나 취업을 하면서 가까운 관계에서 도움을 받는 경우는 별로 없었던 것 같습니다. 가까울수록 더 도움을 줄 것 같은데 그렇지 못한 이유는 아는 사람을 추천하는데 따른 심리적인 압박과 책임감 때문이라고 합니다.
이런 ‘약한 고리의 강한 힘’ 현상은 취업 뿐 아니라 영업, 중매 등 모든 인간사에서 나타나고 있습니다. 링크나우 같은 소셜 네트워킹 서비스(SNS=Social Networking Service)를 통해 구축하는 '디지털 인맥'은 대표적인 약한 고리입니다. 약한 대신에 광범위한 인맥을 순식간에 구축할 수 있습니다. 프로필을 인상 깊게 쓴 뒤 1촌을 연결하면 상대에게 매우 강한 이미지를 심어주고, 결국 이것이 기억 속에 남아 비즈니스로 이어질 가능성이 높은 것입니다.
진정한 만남은 오프라인이고, 온라인은 모자라는 것이라는 도식도 무너져 가고 있습니다. 온라인이 잘 되지 않는 동문회나 동호회는 오프라인에서도 잘 안됩니다. 그리고 온라인을 통해 관계가 더욱 더 친밀해지는 경향이 나타나고 있습니다. 그리고 대인관계를 넓히는 수단으로 링크나우나 싸이월드를 사용하는 층도 점차 늘어나고 있습니다.
온라인 비즈니스 인맥은 약한 연결망을 확장시켜주려는 시도라고 볼 수 있습니다. 하지만 약한 연결망을 통해 더 중요한 정보가 흘러 다닌다는 점을 잊어서는 안됩니다. 링크나우만 보더라도 전혀 몰랐던 회원들이 서로 연결해 투자를 유치하고, 수주를 하고, 일자리를 얻고, 스카우트를 하는 일이 빈번해지고 있습니다. 온라인은 느슨하고 약해 보이지만 오히려 느슨하고 약하기 때문에 오프라인보다 더 많은 것을 가져다 줄 수 있다는 점을 간과해서는 안됩니다.

by 링크나우 대표 신동호
공개프로필 http://dongho.linknow.kr

 

All About: File I/O in C++

By Ilia Yordanov, loobian@cpp-home.com

www.cpp-home.com ; C++ Resources

 

This tutorial may not be republished without a written permission from the author!

 

Introduction


This tutorial will start with the very basis of File I/O (Input/Output) in C++. After that, I will look into aspects that are more advanced, showing you some tricks, and describing useful functions.

You need to have good understanding of C++, otherwise this tutorial will be unfamiliar and not useful to you!

 

 

Your Very First Program

 

I will first write the code, and after that, I will explain it line by line.

The first program, will create a file, and put some text into it.

 

#include <fstream>

using namespace std;

 

int main()

{

ofstream SaveFile("cpp-home.txt");

SaveFile << "Hello World, from www.cpp-home.com and Loobian!";

SaveFile.close();

return 0;

}

 

Only that? Yes! This program will create the file cpp-home.txt in the directory from where you are executing it, and will put “Hello World, from www.cpp-home.com and Loobian!” into it.

Here is what every line means:

#include <fstream> - You need to include this file in order to use C++’s functions for File I/O.

In this file, are declared several classes, including ifstream, ofstream and fstream, which are all derived from istream and ostream.

 

ofstream SaveFile(“cpp-home.txt”);

1)ofstream means “output file stream”. It creates a handle for a stream to write in a file.

2)SaveFile – that’s the name of the handle. You can pick whatever you want!

3)(“cpp-home.txt”); - opens the file cpp-home.txt, which should be placed in the directory from where you execute the program. If such a file does not exists, it will be created for you, so you don’t need to worry about that!

Now, let’s look a bit deeper. First, I’d like to mention that ofstream is a class. So, ofstream SaveFile(“cpp-home.txt”); creates an object from this class. What we pass in the brackets, as parameter, is actually what we pass to the constructor. It is the name of the file. So, to summarize: we create an object from class ofstream, and we pass the name of the file we want to create, as an argument to the class’ constructor. There are other things, too, that we can pass, but I will look into that, later.

 

SaveFile << “Hello World, from www.cpp-home.com and Loobian!”; - “<<” looks familiar? Yes, you’ve seen it in cout <<. This (“<<”) is a predefined operator. Anyway, what this line makes, is to put the text above in the file. As mentioned before, SaveFile is a handle to the opened file stream. So, we write the handle name, << and after it we write the text in inverted commas. If we want to pass variables instead of text in inverted commas, just pass it as a regular use of the cout <<. This way:

SaveFile << variablename;

That’s it!

 

SaveFile.close(); - As we have opened the stream, when we finish using it, we have to close it. SaveFile is an object from class ofstream, and this class (ofstream) has a function that closes the stream. That is the close() function. So, we just write the name of the handle, dot and close(), in order to close the file stream!
Notice: Once you have closed the file, you can’t access it anymore, until you open it again.

 

That’s the simplest program, to write in a file. It’s really easy! But as you will see later in this tutorial, there are more things to learn!

 

Reading A File

You saw how to write into a file. Now, when we have cpp-home.txt, we will read it, and display it on the screen.
First, I’d like to mention, that there are several ways to read a file. I will tell you about all of them (all I know) later. For now, I will show you the best way (in my mind).

As you are used already- I will first write the code, and after that, I will comment it in details.

#include <fstream.h>

 

void main() //the program starts here

{

ifstream OpenFile("cpp-home.txt");

 

char ch;

while(!OpenFile.eof())

{

OpenFile.get(ch);

cout << ch;

}

OpenFile.close();

}

 

You should already know what the first line is. So, let me explain you the rest.

 

ifstream OpenFile(“cpp-home.txt”) – I suppose this seems a bit more familiar to you, already! ifstream means “input file stream”. In the previous program, it was ofstream, which means “output file stream”. The previous program is to write a file, that’s why it was “output”. But this program is to read from a file, that’s why it is “input”. The rest of the code on this line, should be familiar to you. OpenFile is the object from class ifstream, which will handle the input file stream. And in the inverted commas, is the name of the file to open.

Notice that that there is no check whether the file exists! I will show you how to check that, later!

 

char ch;- Declares an array of type char. Just to remind you- such arrays can hold just one sign from the ASCII table.

 

while(!OpenFile.eof()) – The function eof() returns a nonzero value if the end of the file has been reached. So, we make a while loop, that will loop until we reach the end of the file. So, we will get through the whole file, so that we can read it!

 

OpenFile.get(ch); - OpenFile is the object from class ifstream. This class declares a function called get(). So, we can use this function, as long as we have an object. The get()function extracts a single character from the stream and returns it. In this example, the get() function takes just one parameter- the variable name, where to put the read character. So, after calling OpenFile.get(ch) it will read one character from the stream OpenFile, and will put this character into the variable ch.

Notice: If you call this function for a second time, it will read the next character, but not the same one! You will learn why this happens, later.

That’s why, we loop until we reach the end of the file! And every time we loop, we read one character and put it into ch.

 

cout <<ch; - Display ch, which has the read character.

 

File.close(); - As we have opened the file stream, we need to close it. Use the close() function, to close it! Just as in the previous program!

Notice: Once you have closed the file, you can’t access it anymore, until you open it again.


That’s all! I hope you understood my comments! When you compile and run this program, it should output:

“Hello World, from www.cpp-home.com and Loobian!”

 

 

Managing I/O streamsIn this chapter, I will mention about some useful functions. I will also show you how to open file to read and write in the same time. I will show you, also, other ways to open a file; how to check if opening was successful or not. So- read on!

 

So far, I have showed to you, just one way to open a file, either for reading, either for writing. But it can be opened another way, too! So far, you should be aware of this method:

 

ifstream OpenFile(“cpp-home.txt”);

 

Well, this is not the only way! As mentioned before, the above code creates an object from class ifstream, and passes the name of the file to be opened to its constructor. But in fact, there are several overloaded constructors, which can take more than one parameter.Also, there is function open() that can do the same job. Here is an example of the above code, but using the open() function:

 

ifstream OpenFile;

OpenFile.open(“cpp-home.txt”);

 

What is the difference you ask? Well, I made several tests, and found no difference! Just if you want to create a file handle, but don’t want to specify the file name immediately, you can specify it later with the function open(). And by the way, other use of open() is for example if you open a file, then close it, and using the same file handle open another file. This way, you will need the open() function.
Consider the following code example:

 

#include <fstream.h>

 

void read(ifstream &T) //pass the file stream to the function

{

//the method to read a file, that I showed you before

char ch;

 

while(!T.eof())

{

T.get(ch);

cout << ch;

}

 

cout << endl << "--------" << endl;

}

 

void main()

{

ifstream T("file1.txt");

read(T);

T.close();

 

T.open("file2.txt");

read(T);

T.close();

}

 

So, as long as file1.txt and file2.txt exists and has some text into, you will see it!

Now, it’s time to show you that the file name is not the only parameter that you can pass to the
open()function or the constructor (it’s the same). Here is a prototype:

 

ifstream OpenFile(char *filename, int open_mode);

 

You should know that filename is the name of the file (a string). The new here is the open mode. The value of open_mode defines how to be opened the file. Here is a table of the open modes:

 

Name

Description

ios::in

Open file to read

ios::out

Open file to write

ios::app

All the date you write, is put at the end of the file. It calls ios::out

ios::ate

All the date you write, is put at the end of the file. It does not call ios::out

ios::trunc

Deletes all previous content in the file. (empties the file)

ios::nocreate

If the file does not exists, opening it with the open() function gets impossible.

ios::noreplace

If the file exists, trying to open it with the open() function, returns an error.

ios::binary

Opens the file in binary mode.

In fact, all these values are intconstants from an enumerated type. But for making your life easier, you can use them as you see them in the table.
Here is an example on how to use the open modes:
#include <fstream.h>

 

void main()

{

ofstream SaveFile("file1.txt", ios::ate);

 

SaveFile << "That's new!\n";

 

SaveFile.close();

}

 

As you see in the table, using ios::ate will write at the end of the file. If I didn’t use it, the file will be overwritten, but as I use it, I just add text to it. So, if file1.txt has this text:

 

Hi! This is test from www.cpp-home.com!


Running the above code, will add “
That’s new!” to it, so it will look this way:

 

Hi! This is test from www.cpp-home.com!That’s new!

 

If you want to set more than one open mode, just use the OR operator- |. This way:

 

ios::ate | ios::binary

 

I hope you now understand what open modes are!

Now, it’s time to show you something really useful! I bet you didn’t know that you could create a file stream handle, which you can use to read/write file, in the same time! Here is how it works:

 

fstream File(“cpp-home.txt”,ios::in | ios::out);

In fact, that is only the declaration. I will show you a code example, just several lines bellow. But I first want to mention some things you should know.
The code line above, creates a file stream handle, named “
File”. As you know, this is an object from class fstream. When using fstream, you should specify ios::in and ios::out as open modes. This way, you can read from the file, and write in it, in the same time, without creating new file handles. Well, of course, you can only read or write. Then you should use either ios::ineither ios::out, but if you are going to do it this way, why don’t you do it either with ifstream, either with ofstream?
Here is the code example:

 

#include <fstream.h>

 

void main()
{

fstream File("test.txt",ios::in | ios::out);

 

File << "Hi!"; //put “Hi!” in the file

 

static char str[10]; //when using static, the array is automatically

//initialized, and very cell NULLed

File.seekg(ios::beg); //get back to the beginning of the file

//this function is explained a bit later

File >> str;

cout << str << endl;

 

File.close();
}

 

Okay, there are some new things here, so I will explain line by line:

 

fstream File(“test.txt”, ios::in | ios::out); - This line, creates an object from class fstream. At the time of execution, the program opens the file test.txt in read/write mode. This means, that you can read from the file, and put data into it, at the same time.

 

File << “Hi!”; - I beg you know what this is!

static char str[10]; - This makes a char array with 10 cells. I suppose static may be unfamiliar to you. If so- ignore it. It just initializes the array when at the time of creation.

 

File.seekg(ios::beg); - Okay, I want you to understand what this really do, so I will start with something a bit off-topic, but important.
Remember that? :

while(!OpenFile.eof())

{

OpenFile.get(ch);

cout << ch;

}

Did you ever wonder what really happens there? Yes or no, I will explain you. This is a while loop, that will loop until you reach the end of the file. But how do the loop know if the end of the file is reached? Well, when you read the file, there is something like an inside-pointer, that shows where you are up to, with the reading (and writing, too). It is like the cursor in Notepad. And every time you call OpenFile.get(ch) it returns the current character to the ch variable, and moves the inside-pointer one character after that, so that the next time this function is called, it will return the next character. And this repeats, until you reach the end of the file.

So, let’s get back to the code line. The function seekg()will put the inside-pointer to a specific place (specified by you). You can use:

ios::beg– to put it in the beginning of the file

ios::end- to put it at the end of the file

Or you can also set the number of characters to go back or after. For example, if you want to go 5 characters back, you should write:

 

File.seekg(-5);

 

If you want to go 40 character after, just write:

 

File.seekg(40);I also have to mention, that the seekg()function is overloaded, and it can take two parameters, too. The other version is this one:

 

File.seekg(-5,ios::end);

 

In this example, you will be able to read the last 4 characters of the text, because:

1)You go to the end (ios::end)

2)You go 5 characters before the end (-5)

Why you will read 4 but not 5 characters? Well, just assume that one is lost, because the last thing in the file is not a character nor white space.It is just position.

You now may be wondering why did I use this function? Well, after I put “Hi!” in the file, the inside-pointer was set after it… at the end of the file. And as I want to read the file, I have nothing to read after the end, so I have to put the inside-pointer at the beginning. And that is exactly what this function does.

 

File >> str; - That’s new, too! Well, I believe this line reminds you of cin >> . I fact, it has much to do with it. This line reads one word from the file, and puts it into the specified array.
For example, if the file has this text:

 

Hi! Do you know me?

Using File >> str, will put just “Hi!” to the str array. You should have noticed, that it actually reads until it meets a white space.

And as what I put in the file was “Hi!” I don’t need to do a while loop, that takes more time to code. That’s why I used this way. By the way, in the while loop for reading, that I used so far, the program reads the file, char by char. But you can read it word by word, this way:

 

char str[30]; //the word can’t be more than 30 characters long

while(!OpenFile.eof())

{

OpenFile >> str;

cout << str;

}

You can also read it line by line, this way:

 

char line[100]; //a whole line will be stored here
while(!OpenFile.eof())
{

OpenFile.getline(line,100); //where 100 is the size of the array

cout << line << endl;
}

 

You now might be wondering which way to use? Well, I’d recommend you to use the line-by-line one, or the first that I mentioned- the one which reads char-by-char. The one that reads word-by-word is not good idea, because it won’t read the new line. So if you have new line in the file, it will not display it as a new line, but will append the text to the existing one. But using getline() or get()will show you the file, just as it is!

 


Now, I will show you how to check if the file opening was successful or not. In fact, there are few good ways to check for that, and I will mention them. Notice that where there is X, it can be either “o”, either “i” either nothing (it will then be fstream object).


Example 1: The most usual way

Xfstream File(“cpp-home.txt”);

if (!File)
{

cout << “Error opening the file! Aborting…\n”;

exit(1);
}

 

Example 2: If the file is created, return an error

 

ofstream File("unexisting.txt", ios::nocreate);

 

if(!File)

{

cout << “Error opening the file! Aborting…\n”;

exit(1);

}


Example 3: Using the fail() function
ofstream File("filer.txt", ios::nocreate);

 

if(File.fail())

{

cout << “Error opening the file! Aborting…\n”;

exit(1);

}

The new in
Example 3, is the fail() function. It returns a nonzero value if any I/O error (not end of file) has occurred.

 

I would also like to mention about something , that I find to be very useful! For example, if you have created a file stream, but you haven’t opened a file. This way:

 

ifstream File; //it could also be ofstream


This way, we have a handle, but we still have not opened the file. If you want to open it later, it can be done with the
open() function, which I already covered in this tutorial. But if anywhere in your program, you need to know if currently there is an opened file, you can check it with the function is_open(). It retunrs 0 (false) if a file is not opened, and 1(true) if there is an opened file. For example:

 

ofstream File1;

File1.open("file1.txt");

cout << File1.is_open() << endl;

The code above, will return 1, as we open a file (on line 2). But the code bellow will return 0, because we don’t open a file, but just create a file stream handle:

 

ofstream File1;

cout << File1.is_open() << endl;


Okay, enough on this topic.

 

Checking the I/O status- Flags

 

I won’t be explaining what flags are. But even if you don’t know about them, reading this chapter to the end may give you some idea, and I believe you will understand the theory. Even so, if you don’t know about the flags in C++, I recommend you to find some reading on this subject.
Okay, let’s start!


The Input/Outputsystem in C++, holds information about the result of every I/O operation. The current status is kept in an object from type
io_state, which is an enumerated type (just like open_mode)that has the following values:

godbit

No errors.

eofbit

End of file has been reached

failbit

Non-fatal I/O error

badbit

Fatal I/O error

 

There are two ways, to receive information about the I/O status. One of them is by calling the function rdstate(). It returns the current status of the error-flags (the above mentioned). For example, the rdstate() function will return goodbit if there were no errors.

The other way to check the I/O status is by using any of the following function:

 

bool bad();

bool eof(); //remember this one? “Read until the end of the file has been reached!”

bool fail(); //and this one, too… Check if the file opening was successfull

bool good();

 

The function bad()returns true, if the badbitflag is up. The fail()function returns trueif the failbitflag is up. The good()function returns trueif there were no errors (the goodbit flag is up). And the eof() function returns true if the end of the file has been reached (the eofbit flag is up).

If an error occurred, you will have to clear it if you want your program to continue properly. To do so, use the clear() function, which takes one parameter. The parameter should be the flag you want to put to be the current status. If you want your program to continue “on clear”, just put ios::goodbit as parameter. But notice that the clear() function can take any flag as parameter. You will see that in the code examples bellow.

I will now show you some example code that will confirm your knowledge.


Example 1: Simple status check

 

//Replace FileStream with the name of the file stream handle

if(FileStream.rdstate() == ios::eofbit)

cout << "End of file!\n";

if(FileStream.rdstate() == ios::badbit)

cout << "Fatal I/O error!\n";

if(FileStream.rdstate() == ios::failbit)

cout << "Non-fatal I/O error!\n";

if(FileStream.rdstate() == ios::goodbit)

cout << "No errors!\n";


Example 2: The clear() function

 

#include <fstream.h>

 

void main()

{

ofstream File1("file2.txt"); //create file2.txt

File1.close();

 

//this bellow, will return error, because I use the ios::noreplace

//open_mode, which returns error if the file already exists.

ofstream Test("file2.txt",ios::noreplace);

 

//The error that the last line returned is ios::failbit, so let’s show it

if(Test.rdstate() == ios::failbit)

cout << "Error...!\n";

 

Test.clear(ios::goodbit); //set the current status to ios::goodbit

 

if(Test.rdstate() == ios::goodbit) //check if it was set correctly

cout << "Fine!\n";

 

Test.clear(ios::eofbit); //set it to ios::eofbit. Useless.

 

if(Test.rdstate() == ios::eofbit) //and check again if it is this flag indeed

cout << "EOF!\n";

 

Test.close();

 

}

 

Instead using flags, you can use a function that actually does the same- checks if specific flag is up. The functions were mentioned before, so I won’t mention them again. If you are not sure how to use them, just check out the place of the tutorial, where I showed few ways to check if file opening was successful or not. There, I used the fail() function.

 

Dealing with Binary files

 

Although, the files with formatted text (all that I talked about so far) are very useful, sometimes you may need to work with unformatted files- binary files. They have the same look as your program itself, and it is much different from what comes after using the <<and >>operators. The functions that give you the possibility to write/read unformatted files are get()and put(). To read a byte, you can use get() and to write a byte, use put().You should remember of get()… I have already used it before. You wonder why even using it, the file looks formatted? Well, it is because I used the << and >>operators, I suppose.get() and put() both take one parameter- a char variable or character.
If you want to read/write whole blocks of data, then you can use the
read() and write() functions. Their prototypes are:

 

istream &read(char *buf, streamsize num);

ostream &write(const char *buf, streamsize num);


For the
read()function, bufshould be an array of chars, where the read block of data will be put. For the write() function, buf is an array of chars, where is the data you want to save in the file. For the both functions, num is a number, that defines the amount of data (in symbols) to be read/written.

If you reach the end of the file, before you have read “
num” symbols, you can see how many symbols were read by calling the function gcount(). This function returns the number of read symbols for the last unformatted input operation.
And before going to the code examples, I have to add, that if you want to open a file for binary read/write, you should pass
ios::binary as an open mode.

Now, let me give you some code examples, so that you can see how stuff works.


Example 1: Using get() and put()

 

#include <fstream.h>

 

void main()

{

fstream File("test_file.txt",ios::out | ios::in | ios::binary);

 

char ch;

ch='o';

 

File.put(ch); //put the content of ch to the file

 

File.seekg(ios::beg); //go to the beginning of the file

 

File.get(ch); //read one character

 

cout << ch << endl; //display it

 

File.close();

}

 

Example 2: Using read() and write()

 

#include <fstream.h>

#include <string.h>

 

void main()

{

fstream File("test_file.txt",ios::out | ios::in | ios::binary);

 

char arr[13];

strcpy(arr,"Hello World!"); //put Hello World! into the array

 

File.write(arr,5); //put the first 5 symbols into the file- "Hello"

 

File.seekg(ios::beg); //go to the beginning of the file

 

static char read_array[10]; //I will put the read data, here

 

File.read(read_array,3); //read the first 3 symbols- "Hel"

 

cout << read_array << endl; //display them

 

File.close();

}

 

 

Some useful functions

 

tellg() – Retunrs an int type, that shows the current position of the inside-pointer. This one works only when you read a file. Example:

 

#include <fstream.h>

 

void main()

{

//if we have "Hello" in test_file.txt

ifstream File("test_file.txt");

 

char arr[10];

 

File.read(arr,10);

 

//this should return 5, as Hello is 5 characters long

cout << File.tellg() << endl;

 

File.close();

}

 

tellp() – The same as tellg() but used when we write in a file. To summarize: when we read a file, and we want to get the current position of the inside-pointer, we should use tellg(). When we write in a file, and we want to get the current position of the inside-pointer, we should use tellp(). I won’t show a code example for tellp() as it works absolutely the same way as tellg().

 

seekp() – Remember seekg()? I used it, when I was reading a file, and I wanted to go to specified position. seekp() is the same, but it is used when you write in a file. For example, if I read a file, and I want to get 3 characters back from the current position, I should call FileHandle.seekg(-3). But if I write in a file, and for example, I want to overwrite the last 5 characters, I have to go back 5 characters. Then, I should use FileHandle.seekp(-5).

 

ignore() – Used when reading a file. If you want to ignore certain amount of characters, just use this function. In fact, you can use seekg() instead, but the ignore() function has one advantage- you can specify a delimiter rule, where the ignore()function will stop. The prototype is:

 

istream& ignore( int nCount, delimiter );

 

Where nCount is the amount of characters to be ignored and delimiter is what its name says. It can be EOF if you want to stop at the end of the file. This way, this function is the same as seekg(). But it can also be ‘\n’ for example, which will stop on the first new line. Here is example:

 

#include <fstream.h>

 

void main()

{

//if we have "Hello World" in test_file.txt

ifstream File("test_file.txt");

 

static char arr[10];

 

//stop on the 6th symbol, if you don't meet "l"

//in case you meet "l"- stop there

File.ignore(6,'l');

 

File.read(arr,10);

 

cout << arr << endl; //it should display "lo World!"

 

File.close();

 

}

 

getline() – I have already mentioned about this one. But there is something I didn’t tell you about. This function can be used to read line-by-line, but it can be set to stop reading if it met a certain symbol. Here is how you should pass the parameters to it:

 

getline(array,array_size,delim);


And here is a code example:

 

#include <fstream.h>

 

void main()

{

//if we have "Hello World" in test_file.txt

ifstream File("test_file.txt");

 

static char arr[10];

 

/*read, until one of these happens:

1) You have read 10

2) You met the letter "o"

3) There is new line

*/

File.getline(arr,10,'o');

 

cout << arr << endl; //it should display "Hell"

File.close();

}

 

peek() This function will return the next character from an input file stream, but it won’t move the inside-pointer. I hope you remember, that get() for example, returns the next character in the stream, and after that, it moves the inside-pointer, so that the next time you call the get() function, it will return the next character, but not the same one. Well, using peek()will return a character, but it won’t move the cursor. So, if you call the peek() function, two times in succession, it will return a same character. Consider the following code example:

 

#include <fstream.h>

 

void main()

{

//if we have "Hello World" in test_file.txt

ifstream File("test_file.txt");

 

char ch;

 

File.get(ch);

cout << ch << endl; //should display "H"

 

cout <<char(File.peek()) << endl; //should display "e"

cout <<char(File.peek()) << endl; //should display "e" again

 

File.get(ch);

cout << ch << endl; //should display "e" again

File.close();

 

}

 

And by the way, I forgot to mention- the peek() function actually returns the ASCII code of the char, but not the char itself. So, if you want to see the character itself, you have to call it the way I did, in the example.

 


_unlink() – Deletes a file. Include
io.h in your program, if you are going to use this function. Here is a code example:

 

#include <fstream.h>

#include <io.h>

 

void main()

{

ofstream File;

 

File.open("delete_test.txt"); //creates the file

File.close();

 

_unlink("delete_test.txt"); //deletes the file

 

//tries to open the file, but if it does not exists

//the function will rreturn error ios::failbit

File.open("delete_test.txt",ios::nocreate);

 

//see if it returned it

if(File.rdstate() == ios::failbit)

cout << "Error...!\n"; //yup,it did


File.close();

 

}

 

putback() – This function will return the last read character, and will move the inside-pointer, one with –1 char. In other words, if you use get()to read a char, then use putback(), it will show you the same character, but it will set the inside-pointer with –1char, so the next time you call get() again, it will again show you the same character. Here is a code example:

 

#include <fstream.h>

 

void main()

{

//test_file.txt should have this text- "Hello World"

ifstream File("test_file.txt");

 

char ch;

 

File.get(ch);

 

cout << ch << endl; //it will display "H"

 

File.putback(ch);

cout << ch << endl; //it will again display "H"

 

File.get(ch);

cout << ch << endl; //it will display "H" again

 

File.close();

}

 

flush() – When dealing with the output file stream, the date you save in the file, is not actually immediately saved in it. There is a buffer, where it is kept, and when the buffer gets filled, then the data is put in the real file (on your disk). Then the buffer is emptied, and so on.
But if you want to save the data from the buffer, even if the buffer is still not full, use the
flush()function. Just call it this way- FileHandle.flush(). And the data from the buffer will be put in the physical file, and the buffer will be emptied.
And something in addition (advanced)- The
flush() function calls the sync() function of the associated streambuf. (The last sentence is from MSDN).


Conslusion

 

Well, I hope you can now do your File I/O programs! I covered everything I remembered of! I think it is more than enough for most of you! Even so, there are things I didn’t cover… but things I think you will never need. So, if you need even more advanced information on specific topic, search the web. Try google.com for example! But don’t ask me! I won’t answer any e-mails, asking me how to do certain program or else.


If you liked this tutorial, or not, I would be very happy to see your comments, so feel free to drop me a line at loobian@cpp-home.com

For more C++ tutorials, visit www.cpp-home.com

 

This tutorial may not be republished without a written permission from the author!

 

3 April 2002,

Ilia Yordanov

 

이 글은 스프링노트에서 작성되었습니다.

'It's Code' 카테고리의 다른 글

Cygwin+MinGW32 참고  (0) 2009.06.26
리눅스 커널 소스 디렉토리  (0) 2007.08.17
리눅스 커널 소스 (The Linux Kernel Sources)  (0) 2007.08.17
Java classpath 관리하기  (0) 2007.08.16
JAVAScript TIP  (0) 2007.08.10

    베네수엘라(Venejulea)

    베네수엘라는 두드러진 자연미와 극적인 대비를 갖춘 나라이다 - 이러한 대비로 서쪽 안데스산맥의 덮인 정상과 남쪽의 찌는 듯한 아마존 정글이 있는가 하면, 동쪽으로 넋을 잃을 정도로 아름다운 그란 사바나(Gran Sabana)고원에는 정상이 편평한 색다른 산들이 놓여있는 반면 카리브해안에는 코코넛 야자수로 수놓아진 3000km 하얀 백사장이 이어져 있다. 남미에서 가장 호수인 마라카이보(Maracaibo)호수와 번째로 강인 오리노코(Orinoco)강도 이곳에 있으며 또한 베네수엘라는 세계에서 가장 높은 폭포인 앙헬(Angel)폭포를 자랑한다. 베네수엘라의 다른 자랑거리는 무척 다양한 이국적인 식물과 동물들로 재규어, 스라소니, , 아르마딜로, 개미핥기, 그리고 세계에서 가장 뱀인 아나콘다 등을 포함하고 있다.


    베네수엘라지도(9K)


    통계 자료

    국명 : 베네수엘라 공화국

    면적 : 912,050 sq km

    인구 : 21,051,000 (인구 증가율 2.4%)

    수도 : 카라카스 (인구 3,435,795)

    인종 : 67% 메스티조, 21% 유럽인 후손, 10% 아프리카인 후손, 2% 인디안. 또한 다양한 반 유목생활의 수렵 채집 사회 흔적이 남아있는 대략 20만 명의 아메리카 인디언이 있다.

    언어 : 스페인어가 공용어이지만 30여 아메리카 인디언의 언어가 아직까지 남아있으며 주로 아라왁(Arawak), 카리반(Cariban), 칩챠(Chibcha) 민족언어학 부류에 속한다. 종교 : 96% 카톨릭, 2% 개신교

    정체 : 민주주의

    대통령 : 우고 챠베스(Hugo Chavez)

    지리 및 기후

    베네수엘라는 남미의 북쪽 연안에 자리잡고 있으며 브라질 북쪽, 콜롬비아와 기아나의 사이에 있다. 국토의 남동쪽은 기아나(Guayana) 고원이, 중앙에는 국토의 30% 넘는 광대한 초원인 대평원(Llanos) 차지하고 있는데 지역은 남미에서 번째로 오리노코강이 흘러간다. 남미 대륙의 가장 내륙 호수인 마라카이보 호수는 비옥한 늪지인 저지대에 둘러싸인 북동부에 자리잡고 있다. 호수 남쪽은 이곳에서 코르디이예라 로스 안데스(Cordillera de Los Andes) 알려진 안데스산맥 북단으로 오르기 시작하여 피코 볼리바르(Pico Bolar)까지 5,007m 솟아있다. 늪지가 많은 안데스산맥의 고원 목초지는 파라모스로 알려져 있는데 베네수엘라에서 가장 놀랄만한 식물 종들이 자라고 있는 곳이다. 역시 다양한 동물군도 베네수엘라의 남동쪽, 특히 로라이마(Roraima) 테푸이스(꼭대기가 평편한 거대한 산들)에서 있다.

    베네수엘라의 기후는 주로 해안을 따라 이어진 따뜻한 지대와 함께 열대성 기후이다. 온도는 겨우 몇도 이상 변하지 않아(카라카스 18-20 , 마라카이보 27-29 ) 기후대는 온도차보다는 강우량에 따라 변한다고 있다. 북부 연안의 저지대는 비교적 건조하지만 쟈노스(Llanos) 기아나 고원에서는 강우량이 증가하여 평균 기록이 지역 모두 150cm 까지 이른다. 건기(베라노) 12월에서 4월까지이고 우기(인비에르노) 연중 나머지 시기를 차지한다. 아마존 지역은 특별히 건기가 없어서 연중 내내 200cm 넘는 강우량을 기록하며 거의 균등하게 내린다. 여행에 있어서는 건기가 좀더 즐거우며 특히 하이킹을 계획할 경우에는 더욱 그러하다.

    역사

    베네수엘라에 스페인인이 들어올 즈음 지역에는 500,000여명의 개의 주요한 민족 언어학적 그룹으로 분류되는  토착 원주민이 거주하고 있었다 - 카리반, 아라왁, 칩챠가 그것이다. 콜럼부스는 현재의 베네수엘라에 최초로 발을 들여놓은 유럽인이며 나라는 뒤에 탐험가 알론소 데오헤다(Alonso de Ojeda) 의해 작은 베네치아란 뜻의 베네수엘라라는 이름을 얻게 되었다. 이땅에 최초로 거주민이 들어온 것은 1521 쿠마냐가 건설되고부터이다.  

    토착민 부족들은 공상적인 엘도라도(El Dorado) 찾아 나서면서 지나간 곳마다 죽음과 파괴의 행렬을 남기고 다닌 스페인과 독일의 식민지 약탈에 거세게 반발하였다. 그럼에도 불구하고 그들의 저항은 많은 부족사회가 유럽인이 몰고 천연두의 희생물이 되면서 종지부를 찍게 되었고 병으로 인해 카라카스(Caracas) 계곡 만해도 인구 2/3 죽음을 당했다.

    알려지지 않은 이야기

    그러나 약탈할 만한 부가 없었던 탓에 베네수엘라는 식민지로서 소홀히 다루어져 대륙에서 태어난 스페인인 엘리트들 사이에서 차례로 불만과 분노를 자극하였다. 스페인의 지배자들은 결국 해방자(El Liberatador) 현지에서 알려지게 젊은 시몬 볼리바르(Sim Bolar) 의해 내몰려졌다. 그는 1821 영국 용병과 로스 쟈노스로부터 기병대의 도움을 받아 발렌시아(Valencia) 근처의 캄뽀 카라보보(Campo Carabobo)에서 결정적인 승리를 거두고 스페인으로부터 베네수엘라를 장악하였다. 볼리바르는 벌써부터 콜롬비아를 독립시킨 있었으며 계속해서 그의 부관 안토니오 호세 수크레(Antonio Jos  de Sucre) 함께 에쿠아도르, 페루, 볼리비아를 해방시켰다. 그러나 그의 꿈인 콜롬비아, 베네수엘라, 에쿠아도르를 함께 묶는 그란 콜롬비아(Gran Colombia) 합중국 건설은 베네수엘라가 헌법을 선포하며 완전한 독립을 쟁취하던 1830 그가 죽음으로써 이루어지지 못했다.

    독립 이후는 1910년대 마라카이보 유역에서 거대한 석유 보유고가 발견되어 베네수엘라에 어느 정도 번영을 안겨다 때까지 계속되는 군부 독재와 정치 쿠데타, 그리고 경제적인 불안정으로 점철되었다. 1920 후반까지 베네수엘라는 세계 1 석유 수출국이 되었지만 일반 민중에게는 이러한 부가 제대로 분배되지 못했다. 빈곤이 번지고 교육과 보건 시설이 비참할 정도에 이르자 민중 봉기가 일어나 1947 베네수엘라 최초의 민주 선거로까지 이어졌다.

    최근의 정치적인 안정에도 불구하고 베네수엘라의 정치 상황은 줄곧 부패 의혹과 군부 쿠데타의 위협으로 손상되고 있다. 나라의 경제는 1988 세계 석유가 하락으로 크게 위축되었고 아직까지 불안한 상태이다. 당시 대통령으로 재임하고 있던 칼데라가 1994  경제 투기와 시민의 자유를 위헌적으로 단속함으로써 시민 자유주의자들을 격노시켰지만 1996 초반이 돼서야 그에 대한 대중적인 반대 분위기가 형성되었다. 정부는 급등하는 인플레이션과 통화 위기를 바로 잡기 위해 과격한 대책을 세웠지만 비대해진 공공 서비스 분야는 필요 없는 살을 빼기 위한 이러한 정책에 반대하여왔다. 베네수엘라의 뿌리깊은 시대착오적 경제 관행이 조금씩 새롭고 용기 있는 변화를 받아들일지는 두고 보아야 것이다. 1998 12 베네수엘라 국민은 대통령선거에서 지난 40 동안 가장 표차로 격렬한 민중주의자 우고 챠베스를 선출함으로써 정부의 무기력에 대해 이상 참을 없음을 표시하였다. 바로 6 챠베스는 정부에 대해 쿠데타를 시도하여 대가로 2 동안 감옥에 갇혀 있었다.

    경제

    GDP: US$59 billion

    1인당 GDP: US$2,900

    연 성장률 : -1%

    인플레이션 : 66%

    주요 산업 : 석유, 철광석, 곡물, 과일, 설탕, 커피

    주요 교역국 : 미국, 독일, 일본

    문화

    카톨릭이 베네수엘라에서는 가장 주된 종교이며 여러 토착 원주민들 사이에서도 신봉되고 있다 - 오직 외딴 지역에서 사는 원주민만이 옛날의 부족 신앙을 지키고 있다. 개신교 교회도 상당수 존재하며 최근에는 몇몇 지역에서 카톨릭 신자들 사이에서 교세를 확장하고 있다. 마리아 리온사로 알려진 보기 드물고 불분명한 범신론적 종파는 북서부에서 믿어지며 고대 원주민의 신념이나 아프리카 부두, 기독교의 종교적인 의례 등이 혼합되어있다.

    스페인어는 거의 모든 베네수엘라인들에 의해 쓰이지만 25개의 토착민 언어도 고립된 부족들 사이에서 쓰인다. 영어는 도시 중심부에서 몇몇 사람들이 안다.시각 예술이나 수공예품은 베네수엘라에서 일반적이지만 나라의 가장 독특한 문화적 분출구는 아마 유럽과 아프리카 그리고 토착민의 리듬을 절충해 혼합한 음악일 것이다. 극장도 인기를 얻어가고 있으며 특히 젊은이들 사이에서 활발한 문학적 무대가 펼쳐지고 있다.

    베네수엘라의 간단한 요리나 음식(꼬미다 끄리오이야로 말하는) 주로 팬케이크와 , 돼지고기, 쇠고기, 수프, 스튜 등으로 구성된다. 여행자들은 수프와 메인코스로 구성되는 아주 세트 요리인 메누 디아(men  del d) 파는 식당을 찾아보는 것이 좋다. 현지의 특산 요리로는 엠빠나다스(옥수수가루로 만들어 접은 전안에 잘게 고기와 치즈, , 또는 어린 상어를 넣어 충분히 튀긴 ) 빠베이욘 끄리오이요(pabell criollo, 잘게 쇠고기, , 검은 , 치즈, 튀긴 바나나 등으로 구성된 베네수엘라의 대표적 음식) 등이 있다.

    축제 및 행사

    베네수엘라의 가장 크고 화려한 축제는 카르나발로 재의 수요일에 뒤이은 , 화요일에 열린다. 음악, , 행진과 가장 무도회 등이 특징인 행사는 지역마다 다소 특색이 달라진다. 카루빠노(Caano)마을은 정성들여 계획되는 카르나발로 전국적인 명성을 얻고 있다. 베네수엘라의 강한 카톨릭 영향 때문에 대부분의 휴일은 기독교의 행사와 관련되어 있다. 부활절이나 크리스마스, 성체 축일 등은 매우 열심히 지켜지며 다른 때에도 여러 성인의 날들이 있다.

    여행자 정보

    비자 : 미국, 캐나다, 호주, 뉴질랜드, 영국, 그리고 대부분의 서유럽국가나 스칸디나비아 국가들은베네수엘라로 직접 비행기를 타고 들어갈 경우 비자가 필요 없다. 육로로는 모든 외국인이 비자를받아야한다. 남미로 출발하기 전에 비자를 받아두는 것이 좋다.

    보건 위생 : 콜레라, 뎅구열, 간염, 말라리아, 황열병

    시간 : 한국보다 13시간 느리다

    전압 : 110V, 60 Hz

    도량형 : 미터법 (도량형 환산표 참조)

    주의 사항

    콜롬비아 국경을 따라 술리아(Zulia), 타치라(Tachira), 아푸레(Apure), 아마소나스(Amazonas) 주와 같은 오지에서는 폭력 사고가 보고되고 있다. 이곳으로 여행하려면 안전 위험에 대해 대사관에 확인하도록 하자.

    경비 및 환전

    통화 : 볼리바르(bol仰ar, Bs)

    일반 경비 :

    저렴한 숙소 : US$6-15

    중급 호텔 : US$15-30

    고급 호텔 : US$30 이상

    저렴한 식당 : around $US2-5

    중급 식당 : US$5-10

    고급 식당 : US$10 이상

    베네수엘라는 고정 환율제를 시행할 당시에는 미국 달러를 가지고 암시장에서 환전하면 여행하기 무척 나라였다. 통화가 자유롭게 환전되면서 물건이나 서비스 가격이 크게 올랐다. 그러나 여행자가 검소하게 생활한다면 하루 US$20 정도로 쉽게 생활할 있으며 좀더 편안한 여행을 원한다면 US$40 이상을 들여야 한다.미국 달러나 아메리칸 엑스프레스 여행자 수표가 가장 일반적으로 통용되므로 이들로 환전해 가는 것이 좋다. 비자나 마스터카드 신용카드가 현금 선금 서비스나 고급 호텔, 식당, 상점 등에서 가장 광범위하게 이용된다. 환전은 은행이나 카사 캄비오(허가받은 환전소)에서 가능하다. 은행은 현금과 여행자 수표 모두를 받아주지만 환전소는 오직 현금만받아준다.

    여행 시기

    베네수엘라의 여행 시기는 일년 내내 지속되므로 이론적으로는 어느 때 가건 상관없다. 그러나 비록 몇몇 여행지(예를 들어 앙헬 폭포)는 우기에 훨씬 더 감동적이기는 하지만  여행에 있어서는 건기가 확실히 편안하다.

    또한 베네수엘라의 휴가철에 대해서도 생각해 필요가 있다. 베네수엘라인들은 크리스마스, 카르나발, 성주간(부활절 1주일전) 등에는 친구나 가족을 만나러 여행하는데 아주 열심이기 때문이다. 기에는 사전에 계획을 두고 숙소를 찾기 위해 좀더 품을 팔아야 것이다. 반면 시기는 축제 분위기 때문에 화려하고 생동감 있는 여행이 가능하다는 장점도 있다.

    주요 여행지

    카라카스(Caracas)

    북쪽 연안의 경치 좋은 계곡에 자리잡은 수도 카라카스는 거의 350 명이 사는 번화한 대도시이다. 빠르고 발전적이며 국제적인 도시는 현재 예전 식민지 풍의 특색이 거의 남아 있지 않은 매우 미국화 되어버렸다. 비록 남미에서 가장 인상적인 현대 건축물을 자랑하고 있지만 카라카스는 또한 넓게 퍼진 빈민가도 자리하고 있다 - 깡통 오두막이나 판자촌들은 전후에 무분별하게 급증한 이주의 부산물로 카라카스를 둘러싼 언덕을 잔뜩 덮고 있다.

    볼거리 중에는 17세기 성당이 자리잡은 볼리바르 광장이나 시몬 볼리바르의 생가가 있는 카사 나탈 볼리바르(Casa Natal de Bolar), 파리의 상뜨 샤펠레를 모델로 19세기 네오고딕 양식의 교회 산타 카피이야(Santa Capilla), 예전 지도자인 호아낀 크레스뽀(Joaqu Crespo) 기념비적인 미라플로레스 궁전(Palacio de Miraflores), 많은 저명한 베네수엘라인들이 묻힌 신성한 판테온 나씨오날(Pante Nacional), 역사적인 식민지 성격을 지니고 있는 페타레스(Petares) 구역, 그리고 현대적인 카라카스를 있는 현대적이고 활기넘치는 빠르께 센트랄(Parque Central) 등이 있다.

    대부분의 저렴한 숙소들은 별로 건강에 좋지 않은 교외에 위치해 있는데 특히 밤에는 그리 안전하지 않다. 가장 나은 곳은 아마 사바나 그란데(Sabana Grande) 것이다. 최근 동안 강도나사소한 절도 범죄가 빈번해지고 있기 때문에 항상 스스로 챙길 있도록 하는 것이 중요하다.  

    밤의 놀만한 곳들은 라스 메르세데스(Las Mercedes), 로살(El Rosal), 플로레스따(La Floresta), 카스테이야나(Castellana) 구역 근처로 모여있다. 그리니치 펍에서 맥주 한잔 들고 카라카스에서 드물게 진짜 재즈를 들을 있는 후안 세바스티안 바에서 재즈를 겨보도록 하자.

    오리노코 강(R癌 Orinoco)

    남미에서 세 번째로 긴 강인 오리노코는 강이 시작되는 남쪽 브라질 국경 근처에서부터 북동부 연안의 넓고 침수된 삼각주에서 끝나기까지 길이 2150km 뻗어있다. 삼각주를 구성하고 있는 숲으로 덮인 무수한 섬들은 와라오(Warao)인들의 고향으로 이들은 강둑 위에서 지상보다 높게 지은 집에 살며 카누를 타고 다니고 물고기를 잡아 생계를 꾸려간다. 오리노코 하류에는 씨우다드 볼리바르(Ciudad Bolar, 예전 안고스뚜라) 위치해 있는데 영광스러운 역사를 자랑하는 매력적인 도시는 아직도 많은 식민지 풍의 볼거리를 가지고 있다. 시몬 볼리바르가 독립 전쟁의 마지막 단계에서 그의 진영을 곳이 이곳이며 스페인으로부터 자유를 찾기 나라의 임시수도가 되기도 했다.

    씨우다드 볼리바르를 찾는 많은 방문객은 카라오(Carrao)강에서 일곱 개의 커다란 폭포가 이어진 아래 쪽에 있는 구경거리가 될만한 마을인 카나이마(Canaima) 가는 길에 들린다. 근처 지류에 있는 살또 앙헬(앙헬 폭포) 세계에서 가장 높은 폭포로 아무런 방해도 받지 않은 807m(나이아가라 폭포의 16) 되는 곳에서 떨어진다. 계속해서 남동쪽으로 가면 테푸이스와 시마스(가파른 절벽으로 둘러싸여 있으며 350m 너비까지 다다르는 정글의 '패인 구멍') 있는 그란 사바나의 매혹적인 경치를 있다.

    베네수엘라의 안데스산맥

    시에라 네바다 데 메리다(Sierra Nevada de Merida) 푸른 산맥은 안데스산맥 북단이 되며 베네수엘라의 북서쪽에 있다. 이곳에는 전통적인 생활방식을 고수하고 있는 원주민이 사는 작은 마을들이 점점이 흩어져 있으며 찾아오는 좀더 모험적이고 열정적인 여행자들에게 덮인 정상의 멋진 광경을 선사한다. 유쾌하고 친근한 메리다(Merida) 마을은 베네수엘라에서 가장 높은 정상인 볼리바르 봉에서 겨우 12km 떨어진 산들 사이에 자리잡고 있으며 베네수엘라에서 여행자들에게 가장 인기 있는 하나이다.

    카리브해(Caribbean Coast)

    북동부 연안은 스노크링이나 스쿠버 다이빙, 낚시, 요트 같은 야외 스포츠를 위해서, 또는 그저 근처에 누워 햇볕을 즐기기 위해 만한 곳이다. 베네수엘라의 해변 가장 목가적인 곳은 청록색 파도가 철썩거리며 밀려오는 하얀 백사장이 길게 이어져 있고 가장자리를 따라 코코넛 야자수가 장식처럼 서있다. 이슬라 마르가리따(Isla Margarita) 본토에서 40km 떨어져 있는데 해변을 좋아하는 사람들이 즐겨 찾고 베네수엘라인들의 휴가철 휴양지로도 인기 있는 곳이다. 쿠마냐(Cuman ) 푸에르토 크루스(Puerto La Cruz)에서 배를 타고 쉽게 있다.

    코로(Coro)

    페닌술라 데 파라과냐(Pensula de Paraguan) 아래쪽 카리브해에 위치한 코로는 쾌적하고 평화로우며 베네수엘라 최고의 식민지 시대 건축물 개가 세워진 문화적으로 발달된 곳이다. 1527년에 세워져 남미 대륙에서 가장 초기에 건설된 식민지 정착 지역 하나이지만 대부분의 흥미로운 건축물들은 콜로가  쿠라사우(Curao) 보나이레(Bonaire)섬과의 밀수품 교역의 중심지로 한참 번창할 때인 18세기 경에 세워진 것이다. 사적 구역은 1950년대에 국립 기념물로 선포되었으며 상당수의 건물들이 보수되어졌다. 자갈이 깔린 사모라(Zamora)거리는 위엄있는 낡은 저택들이 줄지어 있는 가장 아름다운 식민지 풍의 거리이다. 다른 볼거리로는 대성당과 코로 미술관을 있다.

    아마존 정글

    베네수엘라 남쪽의 아마존 지역은 열대 우림으로 빽빽한 곳이며 강들이 얼기설기 얽혀있고 많은 원주민 부족들이 고립되어 살고 있는 곳이다. 오리노코, 시빠뽀(Sipapo), 아우따나(Autana)강들로 올라가거나 베네수엘라 아마존으로 떠나는 투어는 덥지만 유쾌한 마을인 뿌에르또 아야쿠쵸(Puerto Ayacucho)에서 준비할 있다.

    잘 알려지지 않은 여행지

    콜로니아 또바르(Colonia Tovar)

    별난 산악 마을인 콜로니아 또바르는 카라카스에서 서쪽으로 60km 떨어진 완만한 기복을 이룬 코르디이예라 코스따(Cordillera de la Costa) 가운데 파묻혀 있다. 일단의 독일인에 의해 1843 세워진 도시는 사실상 세기 가까이 외부와의 접촉으로부터 떨어져 있었다. 도로의 부족으로 접근도 제한되었으며 엄격한 사회적 관습으로 인해 주민들은 스스로의 문화를 배타적으로 유지하게 되었다(예를 들어 결혼의 경우 같은 사회구성원이 아니면 금지되기까지 했다). 1940년대가 돼서야 스페인어가 소개되었고 다닐만한 도로가 건설된 것도 1963년의 일이다. 현재 콜로니아 또바르는 시장과 예술품이나 공예품을 생산해내는 예쁜 마을이며 아직까지도 확실히 독일풍이다. 원래의 독일식 건축물들도 상당수 남아 있으며 빵이나 소시지 같은 음식도 오래된 독일식 조리법을 따라 만들어지고 있다.

    로라이마 (Roraima)

    베네수엘라와 기아나, 브라질 국경에 걸쳐져 있는 280 sq km 고원은 로라이마라고 불리며 트레킹이나 식물학에 관심을 가지고 있는 여행자들에게 인기 있는 곳이 되어가고 있다. 트레킹을 왕복하는데는 5일이 걸리며 마지막 이틀에는 대부분 현지의 가이드를 고용하도록 요구된다. 트레킹 중에는 다소 불편한 정도로 비가 내리기도 하지만 등반 과정은 매우 환상적이며 꼭대기의 암석구가 제공하는 표면 같은 풍경은 검어진 바위나 분홍색 해변, 그리고 뭐가 뭔지 모를 식물들 모두 공상과학의 꿈같은 것들이다.

    살또 아퐁과오(Salto Aponguao)

    그란 사바나에서 가장 감동적이고 풍경이 아름다운 폭포 하나가 살또 아퐁과오이다. 그러나 이곳은 좀더 시간과 노력을 들이지 않고서는 찾아가기 어려운 점도 있다. 이곳에 이르는 한가지 방법은 고속도로를 벗어나서 40km 정도를 비포장 도로로 달린 뒤에 작은 원주민 촌락인 이보리보(Iboribo)까지 가는 것이다. 다음에는 원주민을 고용해서 쿠리아라(마상이 ) 아퐁과오 강을 건너 30 정도 폭포를 향해 트레킹을 해야한다. 다른 방법은 배로 곧바로 가서 때는 걸어서 되돌아오는 것이다. 어떤 방법을 쓰건 간에 105m 높이의 폭포는 장관임을 있을 것이다. 표시가 되어 있는 길이 폭포 아래까지 이어져 있고 이곳의 몇몇 자연적으로 생긴 웅덩이에서 수영이나 멱을 감을 있다. 그리고 주위에는 훌륭한 폭포나 주위 시골 풍경을 감상하기에 이상적인 곳의 캠프 장소들도 있다.

    레저스포츠

    베네수엘라의 40여 남짓의 국립 공원은 표시가 되어있는 소풍 같은 트레킹 길에서부터 벌채용 칼과 현지에 대한 지식이 없이는 없는 정글 길까지 다양한 트레킹 노선을 제공한다. 카라카스 위로 불쑥 모습을 드러낸 아빌라(El ila) 국립 공원은 아마 가장 쉽게 시작할 있는 공원일 것이다. 좀더 개발된 트레킹 코스로는 과또포(Guatopo), 떼레빠이마(Terepaima), 에스떼반(San Esteban) 등이 있다. 등산, 고원 트레킹, 암벽 등반 등을 위해 가장  좋은 곳은 시에라 네바다 메리다(Sierra Nevada de Mida)이며 가이드나 장비는 빌릴 있다. 메리다는 또한 행글라이딩이나 페러글라이딩을 위해서도 좋은 장소이다. 스노크링과 아름다운 해변을 원한다면 카리브해의 모든 해안이 적격이다. 뚜카카스(Tucacas) 다이빙으로 가장 좋은 곳이다. 동굴학자라면 베네수엘라의 여러 동굴들 중에서 가장 장대한 쿠에바 과챠로(Cueva del Guharo) 살펴볼 만할 것이다. 이곳은 쿠마냐에서 내륙으로 세시간 버스를 타고 들어가야 한다.

    베네수엘라로 가는 길

    아순시온은 Southern Cone 항공사의 편리한 교통 중심지이다. 국제선 출국세는 US$15이다. 육로로 국경을 통과할 있는 지점도 군데 있어서 아르헨티나에서부터 , 브라질에서부터 곳이 있으며, 볼리비아에서는 국경 통과가 다소 어렵다. 아순시온으로부터 여객선이 비정기적으로 파라과이 강을 운행하여 브라질 도시인 코룸     (Corumb&aacute;)까지 간다.

    국내 교통편

    카라카스행 비행기는 미국과 영국에서 언제든지 가능하다. 호주와 뉴질랜드는 세계일주 항공권이가장 싸고 유연한 방법이 것이다. 다른 중남미 국가에서 베네수엘라로 들어오는 비행기는 여러가지 문제를 안고 있고 비싸다. 어떤 방법으로 들어갈 지에 대해서 완벽하게 생각해 두는 것이 좋다.

    미국을 거쳐 배로 들어가는 것도 가능한데 미국에서 멕시코만 근처에 있는 몇몇 항구 하나에서 화물선을 잡아타고 가는 것이다. 다른 방법으로 안틸레스(Lesser Antilles)열도에서 배가 운행되지만 베네수엘라와 네덜란드 안틸레스를 오가는 항로는 이상 운행되지 않는다.로로는 콜롬비아와 브라질에서 연결되는 도로가 있지만 기아나로부터는 없다. 암빠로 아뿌레( Amparo de Apure) - 아라우카(Arauca) 위험한 국경 검문소나 뿌에르토 빠레스(Puerto Pz) - 뿌에르토 카레뇨(Puerto Carre) 건너 콜롬비아로 들어가려는 여행자들은 이곳의 안전 상황에 대해서 대사관에 확인해두는 것이 좋다. 콜롬비아 게릴라들이 이곳의 베네수엘라 군대 진영을 공격하여 1995 3월에 국경을 사이에 두고 군대가 대치 상황을 하고 있기 때문이다.

    추천 도서

    The Search for El Dorado by John Hemming offers a fascinating insight into the conquest of Venezuela.      

    Venezuela: A Century of Change by Judith Ewell provides a comprehensive 20th-century history.


    [출처] 베네수엘라(Venezuela)|작성자 세상풍경


    원본 위치 <http://blog.naver.com/PostView.nhn?blogId=jsbogota&logNo=40013489539&from=search>


'It's location' 카테고리의 다른 글

LA 정보  (0) 2008.02.25
그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다그래야 하기때문에 행하고 있을뿐이다

+ Recent posts