임시저장

온도와 관련된 문제들
열피로 
인체의 냉각 시스템 능력에 무리가 간것
증상 및 징후 - 심한 발한, 오심, 현기증, 허약감, 실신
체온은 거의 정상이며 피부가 차고 끈적끈적하다.
처치 - 일차평가 후 환자를 시원한 그늘로 옮긴다. 슈트를 벗도록 하고, 물을 마시게 한다. 30분동안 지켜 본 후, 호전되지 않으면 구급대를 부른다.
열사병
체온이 인체의 냉각 메커니즘 한계를 초과하여 올라갈 경우 발생
증상 및 징후 - 심부 온도가 상승하여 고열 상태가 되며, 조직을 파괴하고 영구적인 장애를 일으킬 수 있다.
피부가 뜨겁고 건조하며, 붉은 색을 띈다. 환자를 만져봤을 때 뜨거우나 땀을 흘리지는 않는다.
처치 - 일차 평가후 시원한 장소로 옮긴다. 슈트를 벗기고 몸을 차가운 물에 담근다. 라이프 라인을 모니터링 하면서 구급대에 연락을 취한다.

저체온증 - 인체가 적정한 내부온도를 유지하지 못하고 냉각되기 시작할 때 발생
징후 및 증상 - 오한과 손가락 및 입술과 발가락의 감각마비와 청색증으로 시작. 오한은 인체가 근육을 수축하고 내부적인 마찰을 일으켜 열을 생산하는 과정에서 발생. 감각마비와 청색증은 열을 많이 발산시키는 팔다리로 가는 혈액 순환을 줄이기 때문에 발생.
저체온증이 더욱 심해질 경우 행동 조화력을 잃고 힘이 빠지면서 착각상태가 됨. 인체시스템의 허탈로 오한이 멈추게 되고, 따뜻한 느낌을 받는다. 서서히 의식을 잃게 된다.
처치 - 일차평가와 함께 몸을 따뜻하게 하고 몸을 말린다. 머리를 덮어서 보온을 해주고, 목과 겨드랑이 사타구니 사이에 따뜻한 핫팩을 해준다.

폐의 과팽창 부상
다이버가 숨을 참고 상승을 하거나 혹은 상승을 하는 동안 생리학적인 문제 때문에 폐의 한부분에 공기가 갖혀서 발생.
공기색전증, 종격 기종, 피하기종 및 기흉을 일으킨다.
공기 색전증 - 동맥 공기 색전증(Arterial Gas Embolism, AGE)으로 불리기도 함. 팽창된 공기가 폐포를 통하여 폐 속의 모세혈관으로 터져 들어가기 때문에 발생. 이 기포들이 심창을 통해 동맥을 따라 퍼져 나가 인체 조직으로 가서 자리를 잡고 혈액 순환을 차단. 공기 색전증으로 가장 심각한 증상은 기포가 경동맥을 통하여 뇌로 퍼지는 결과로 기포가 혈류를 차단하여 뇌조직의 산소가 모자라게 되는 것이다. 이런 경우 증상은 갑자기(5분이내) 나타나며, 뇌졸증과 비슷한 증세가 나타난다. 시야가 흐려지고, 현기증을 느끼며, 갑작스러운 의식 상실과 신체를 제대로 움직이지 못하게 된다. 징후로는 입에서 피거품이 나오고, 호흡 정지, 기침, 성격의 변화, 호흡/심장마비등이 나타날 수 았다. 
종격 기종 - 팽창된 공기가 폐 사이에 있는 흉곽의 공간(종격동)으로 들어가 발생. 계속 상승할 시 공기는 팽창을 하여 심장과 폐를 압박. 증상 과 징후로는 흉골 밑의 통증, 숨이 차고 호흡 곤란, 실신, 쇼크 및 청색증
피하 기종 - 팽창된 공기가 목이나 쇄골 주변의 피부 아래에 모인 것. 증상과 징후는 목 부위가 부플어 오르고, 목소리가 변하며, 목의 부종, 침이나 음식물을 삼키기가 힘들고, 피부를 움직일 때마다 삐걱삐걱 하는 소리가 난다.
기흉 - 공기가 폐와 흉벽 사이의 공간으로 흘러들어가 폐가 완전히 혹은 부분적으로 찌그러지는 현상. 증상과 징우에는 가슴의 심한 통증, 호흡이 아주 힘들고, 맥박이 불규칙해진다.

감압병(DCS) - 신체 내에 질소가 과도하게 녹아 있으면 다이빙 후에 용액 밖으로 빠져 나와서 기포를 형성. 이기포는 공기 색전증과 아주 비슷하게 혈액 순환을 막음. 기포는 인체의 어느 곳에서나 욕액 밖으로 빠져 나올 수 있으므로 증상은 다양하다. 가장흔한 증상은 통증이며, 흔히 관절에 잘 온다. 좀더 심각한 경우에는 신경계에 발생하여 이상하게 피로하거나, 소변을 볼 수가 없고, 시야도 흐려지고, 현기증, 청각이나 발음의 장애, 마비, 감각의 상실 및 의식 상실이 올 수 있다. 폐의 정맥에서 기포가 발생시 호흡의 장애, 가슴의 통증 및 주체할 수 없는 기침이 생김. 공기 색전증보다 늦게 나타나며 대략 다이빙 후 1시간 30분 이후에 나타나며, 3시간 이내에 95% 정도 증상이 나타난다. 

by 정범정범 | 2011/12/16 12:58 | 트랙백 | 덧글(0)

흔히 발생하는 장비의 문제점들

마스크
  • 마스크속의 물
  1. 원인 - 스커트가 찢어짐, 제대로 맞지 않음, 퍼지밸브가 샌다, 후드, 머리카락 등이 스커트에 끼임.
  2. 파급 영향 - 다이버의 정신을 산만하게 만들고 스트레스의 원인이 된다. 시야가 가려짐.
  3. 예방법 - 육안 검사, 다이빙 전에 숨을 쉬어 테스트를 해봄
  • 마스크의 분실
  1. 원인 - 스트랩이 끊어짐, 벗겨짐, 떨어뜨림
  2. 파급 영향 - 수중에서 효율적으로 볼 수가 없게 됨. 수면 수영이 어려워짐
  3. 예방법 - 스트랩의 균열, 노후화, 조절의 검사. 제대로 착용할 것

스노클
  • 물빼기가 안됨
  1. 원인 - 셀프 드레인에 물이 샘. 머리나 입 속에서 제대로 자리를 못 잡음.
  2. 파급 영향 - 호흡곤란. 흡입 시 물이 함께 들어감.
  3. 예방법 입수 직전과 직후에 검사
  • 스노클의 분실
  1. 원인 - 마스크를 잃어버림, 스노클이 마스크에 부착이 되지 않음. 스노클 키퍼의 파손
  2. 파급 영향 - 수면에서 스노클 사용이 곤란. 수면에서 수영을 할 때 에너지 소모가 막심함.
  3. 예방법 - 스노클 고리의 점검. 스노클이 제대로 달려 있는지 점검.


  • 핀의 분실
  1. 원인 - 핀이 너무 큼. 스트랩이 미끄럽다. 스트랩의 파손 혹은 분실, 써지 때문에 벗겨짐.
  2. 파급 영향 - 효과적인 추진력과 방향 조절의 상실
  3. 예방법 - 다이빙 전에 스트랩의 점검과 조절. 예비 조치로 스트랩의 고정.
  • 근육 경련
  1. 원인 - 핀이 너무 딱딱하거나 큼. 풋 포켓이 너무 작음. 스트랩이나 부츠가 너무 조임.
  2. 파급 영향 - 비효율적인 수영. 스트레스
  3. 예방법 - 다이빙 전에 핀이 제대로 맞는지, 편안한지 그리고 조절이 되었는지 확인.


웨트슈트
  • 추위
  1. 원인 - 슈트가 제대로 맞지 않음
  2. 파급 영향 - 오한, 불안감, 급격한 공기소모, 근육 경련.
  3. 예방법 - 올바른 보온력, 제대로 맞는지 확인.
  • 호흡곤란
  1. 원인 - 너무 조임.
  2. 파급 영향 - 공기 부족감. 불안감
  3. 예방법 - 슈트가 맞는지 확인
  • 드라이슈트의 침수
  1. 원인 - 슈트가 찢어지거나 구멍이 남. 지퍼 고장, 씰의 파손
  2. 파급 영향 - 냉수 쇼크. 음성 부력
  3. 예방법 - 적절한 관리. 다이빙 전 점검
  • 과도한 부력
  1. 원인 - 새 슈트, 바닷물, 슈트 속의 공기, 가벼운 웨이트
  2. 파급 영향 - 하강이 안됨. 과로, 폐의 부상, 급상승.
  3. 예방법 - 부력 점검. 필요하면 웨이트 추가

BCD
  • 공기가 샌다.
  1. 원인 - 공기 주머니의 구멍, 느린 누출, 호스가 빠짐, 밸브 분실/고장
  2. 파급 영향 - 부력의 상실. 과로
  3. 예방법 - 다이빙 전에 BCD 체크. BCD에 공기를 약간 넣어 보관할 것.
  • 과도한 부력
  1. 원인 - 인플레이터 밸브가 들러붙었거나 샘. 드플레이터 밸브의 분실. 호스가 끼임
  2. 파급 영향 - 급상승. 공기 팽창으로 인한 부상이나 혹은 감압지로한 가능성
  3. 예방법 - 장비를 숙지하고 관리할 것. 다이빙 전 점검.


웨이트 시스템
  • 벗을 수 없음
  1. 원인 - 스트랩이 너무 길다; 남은 부분을 끼워넣거나 묶어버림. 버클 다음의 웨이트가 꼬임. 표준 웨이트 벨트가 아님. BCD 하네스 아래에 웨이트가 있음. 해체장치의 고장
  2. 파급 영향 - 비상 사태 시에 부력을 확보하기가 어려움.
  3. 예방법 - 다이빙 전에 웨이트 시스템을 주의 깊게 점검.
  • 무심코 벗겨짐
  1. 원인 - 버클이 확실하게 잠기지 않는 벨트. 버클이 끼임. 조절을 시도할 때. 부적절한 자세나 조절. 웨이트 시스템의 해제장치가 걸려서 풀림
  2. 파급영향 - 급상승. 감압병의 가능성
  3. 예방법 - 다이빙 전에 웨이트 시스템을 주의 깊게 점검하고 입수 후에 조절 할 것.


스쿠버
  • 필요한 것보다 적거나 공기가 없음
  1. 원인 - 관리 불량. 잔압계가 없음. 부정확한 게이지. 밸브를 약간만 개방함. 리저브가 작동하지 않음. 공기가 거의 없는 탱크로 다이빙을 함.
  2. 파급 영향 - 호흡 곤란
  3. 예방법 - 적절한 정상적인 관리와 서비스. 탱크의 압력을 관찰할 것. 다이빙 전 공기량을 확인할 것.
  • 공기의 손실
  1. 원인 - 주 혹은 보조 이단계의 프리플로우 호스 혹은 버스트 디스크의 파열, 잔압계에서 공기 누출, O-링 혹은 연결부위에서 공기 누출.
  2. 파급 영향 - 버디끼리 헤어져서 다이빙을 조기에 마침. 공기가 갑자기 떨어짐
  3. 예방법 - 공기 손실에 대하여 주의를 줌. 다이빙 전 수리할 것을 권장. 적절한 잠수 전 점검.
  • 프리 플로우
  1. 원인 - 레귤레이터의 서비스가 필요함. 커버가 손상됨. 레귤레이터에 이물질이 들어감. 결빙
  2. 파급 영향 - 스트레스와 공기 팽창으로 인한 부상
  3. 예방법 - 적절한 정상적인 관리와 서비스. 적절한 사용. 아주 찬물에서는 부동액을 준비. 이단계의 내부를 깨끗이 관리함.
  • 호흡시 물이 들어옴
  1. 원인 - 마우스피스의 분실 혹은 파손. 배출 밸브가 들어붙음. 레귤레이터 다이아프램에 구멍.
  2. 파급 영향 - 호흡 곤란, 기침, 질식.
  3. 예방법 - 적절한 관리. 다이빙 전에 레귤레이터 점검.
  • 백팩에서 탱크가 빠짐
  1. 원인 - 백팩의 조절이 잘 안됨. 탱크 밴드가 부실. 탱크 밴그가 풀름.
  2. 파급 영향 - 놀라는 상황, 공기의 손실 가능성
  3. 예방법 - 다이빙 전에 탱크의 고정 상태를 확인

by 정범정범 | 2011/12/16 00:22 | Underwater | 트랙백 | 덧글(0)

Dive Master에 임하는 자세


 어느덧 Dive Master 과정입니다. 아니 정확히 DMT 라구 하는 갈길 먼 꼬꼬마 다이버.

 문득 생각해보니 다이빙을 하고 나서 내 삶이 무언가 많이 바뀐거 같다는 생각이 듭니다.

 단순히 삶에 또 다른 즐거움이 생겼다고 하기엔 너무 큰, 그런 변화들 입니다.

 고개를 돌려 보면 같이 다이빙 하는 피어들이 많이 생겼네요. 새로운 만남, 새로운 인연들.

 이렇게 제가 혹은 그들이 서로의 삶 속에 들어 가는 놀라운 일들이 일어 나고 있지요.

 또 큰 변화가 있습니다. 수중 친구들을 보게 되면, 그냥 신기하네 에서, "저건 xxx야." 라는

 관심의 변화가 생겼더랬지요. 더 이상 "이번 주말엔 뭐하지" 라고 무료한 고민도 하지 않습니다.

 오히려, 너무 짧은 주말이 야속할 뿐이죠. 그렇게 서서히 변해 갑니다. 그리고 지금도 변해 가고 있습니다.

 
 이제부터는 DMT로서 변해가겠지요. 입수를 하나도 제대로 해야겠네요. 보고 배우는 사람이 있을지도 모르니...

 처음 시작하게 되는 오픈워터 다이버 들도 많이 도와줘야 되겠네요. 큰 즐거움을 공유할 피어가 더 늘어날 지도 모르니까요..

 그렇게 조금씩 변해 갑니다... 

by 정범정범 | 2011/12/12 20:55 | Underwater | 트랙백 | 덧글(0)

[지도 밖으로 행군하라] 하루만에 다 읽어버린 허무한 책.

지도 밖으로 행군하라
한비야 지음 / 푸른숲
나의 점수 : ★★

오랬만에 책을 읽어 보았습니다. 정말 정말 오랬만에 제 돈을 지불하고 구입한 책이라 많은 기대가 있었지요. 사실 읽어보기 전 까지는 한비야라는 사람에 대해 전혀 관심도 없었습니다. 단지, 여친마마님께서 궁금해 하는 인물이어서 관심을 갖고 읽어 무려 구매(?) 라는 행동까지 해 가며 읽은 책입니다..

아아 결론부터 말씀 드리자면.... 참, 별 소득없더군요. 그냥 뭐 그래서 어쩌라구? 라는 느낌의 책입니다. 저 멀리 욕하시는 분 계시는 군요~ 네네~~ 알고 있습니다. 한비야라는 인물 훌륭하죠. 이시대의 지도자 상도 받고. 네 훌륭한 사람인거 같습니다. 다만 책에 대한것만 말하는 거지요. 주관입니다. 욕하세요..

  읽으면서 느낀점은 어딘가 이상하게 속이 뒤틀린다는 느낌입니다. 아~ 이렇게 훌륭한 분을 보면서 속이 뒤틀린다니.. 저는 어딘가 분명 정신적인 문제가 있음이 틀림없습니다. 시간내서 병원에 다녀 오는 시간도 가져 보겠습니다만.. (통일이 먼저 될듯합니다.. ) 훌륭한 일을 많이 하는 사람같은데, 문체가 그런지 속이 뒤틀려요. 구호 요원이 목표여서 그것이 되었고 열정적으로 모든 현장에 참여하고 한것은 아주 잘 한거 같아요. 누구라도 부러워 할 대목이죠. 문제는 자세 입니다. 어딘가 우월감에 빠져 있는 듯한 느낌을 지울수가 없습니다. 진솔함이 책에서 묻어 나지 않더군요. 저만 그런건지.. 정말 저의 맨탈에 문제가 있는건지.. 
 
  하나님이 허락해 주셔서 됐다는 둥~ 하나님께서 선택하셨다는 둥~ 또는 다른 구호 요원을 혼냈다는 둥.. 원래 개신교 계통을 싫어해서 그런건지.. 남이 좋은 일 하면 속이 뒤틀리는 맨탈을 가져서 그런지 모르겠습니다만.. 책이 너무 개인적더라구요?

  네.. 소감이요.. 있지요.. 느꼈습니다. 그런데 그래서 어쩌라구?

by 정범정범 | 2010/03/09 23:49 | 문화생활 | 트랙백 | 덧글(1)

나의 아바타는 나?

 얼마전에 아바타라는 영화를 봤습니다. 무려 한달 전 부터 예약을 해야만 했고, 그 마저도 심야 영화를 봐야만 했습니다. 하지만 당.연.히. IMAX 3D 버전으로 봤지요. (4D는 도저히 엄두가..;; ) "역시 카메룬은 천재야~ "  하면서 입에서 침 떨어지는 것 모르고 봤습니다. 물론 나비족의 여주인공이 참 아찔하였던게 더 한몫하긴 했지만요,. 

  영화를 보는 내내 어떤 생각도 갖지 못할 만큼 완전히 집중하게 만드는 영화였습니다. 어떻게 그런 상상을 했을까.. 그리고 어떻게 그런 탄탄한 스토리와 화면 구성을 했을까.. 라는 생각 정도만 했겠죠. 지금 생각해봐도 주인공 남자가 나비족에 점점 더 닮아 가는 과정을 보는건 한편의 다큐멘터리를 보는 듯 한 느낌이 들 정도였습니다. 그리고 잊지 않도록 자연보호하자!! 라는 생각을 많이 심도록 하는 환경영화라는 결론에 도달하게 만드는 자연스러운 전개도 감동이죠. 

 얼마간의 시간이 지난 후에 문득 생각이 드네요. 자신의 꼭두각시와 같은, 그냥 의도한 데로 움직이기만 하는 가면과 같은 아바타. 그 아바타가 지금의 나는 아닌가 하는 생각이지요. 지금 무엇을 하고 있을까요.. 내가 어떤 생각을 하는지, 어떤 성격인지. 그 이전에 웃어야 합니다. 상냥해야 합니다. 그리고 자상해야 하지요.. 사람들이 몇몇 모여듭니다. 네, 그렇습니다. 사람들이 모이면 자연스럽게 술을 마시게 되지요. 왜 그런지는 모릅니다. 그냥 일단 마십니다. "한잔 받으세요~!", "제 잔은 왜 안받나요?" 그렇게들 무언가 마십니다. 그리고 웃습니다. "아우~ 우리 박씨는 너무 대단하신거 같아요~" 라는 맘에도 없는 말을 한두마디 꺼내며 시작하더라구요~. 뭐 언제 봤다고... 모두들 그렇게 합니다. 이상할 거 없습니다. 다들 하니까요.. 그렇게 안하는 사람이 이상한거예요~

 그렇게 살아 갑니다. 힘들어도 웃고. 웃겨도 웃고. 그렇게 사회라는 곳을 살아 갑니다. 

 아바타를 갖고 계신가요?

by 정범정범 | 2010/03/01 23:13 | 트랙백 | 덧글(0)

내가 하고 싶은일? 남들이 부러워 하는 일?

  지금 전 주위 친구들이 부러워하는 금융 공기업에 다니고 있습니다. 사실 정말 부러워 하는지는 잘 모릅니다. 그냥 그렇다는 군요. 볼 때마다 "돈 많이 버는 니가 밥을 사라", "회사에서 일은 하는거 맞나? 거기 노는 데 아니가?" 라는 등의 말들을 자주 듣게 됩니다. 그러면서 지금쯤 자신이 쓴 기사에 달리는 사람들의 반응을 보고 하악하악거리고 있는 어눌한 오타쿠 기자가 쓴 명언인 "신의직장~" 그러더군요. 이상한건 딱히 제가 밥을 다 산건 아닙니다. 그렇게 하면서 다들 자신의 식비를 내거나 알아서 하더군요. 사실 사주고 싶었으면서 괜히 투정부려 보는 부끄러움이 많은 친구들인가 봅니다.

  다른 친구들이 회사에서 어떤 느낌으로 일 하는지 잘 모릅니다. 격어보지 않았으니 모르는 거죠. 아니, 사실 별 관심이 없습니다. 딱히 제가 해보고 싶은 업종에 종사하는 친구들은 거의 없거든요. 전 좀 이기적이거든요. 관심밖의 일은 정말 관심이 없죠. 몸에 에너지를 비축 못하는 버려진 나뭇가지 같은 제 몸에 딱 맞는 습관인지 모르겠습니다. 뭐, 암튼 제가 다니고 있는 직장은 꽤나 좋은곳인가 봅니다. 저 역시 잘 모르는 시절 이유없이 동경(?)과 또한 시기를 가졌더랬죠. 저는 학창시절만 해도 공기업은 정말 고일데로 고여 완전히 썩은, 영남대 거울못 같은 그런 곳인줄 알았거든요. (진짜 영남대 거울못은 썩었습니다. 거기에 빠지면 피부암에 걸려 죽는다는 속설까지 있지요. 신기한건 붕어와 거북이가 살아요~ 모든 병마를 치료하고픈 제약회사 직원분들은 영남대 거울못의 거북이를 관찰해보세요~)

  이야기가 무르팍산으로 가버렸군요. 아, 암튼 제가 다니는 곳은 꽤나 좋습니다. 보수도 넉넉한 편이고 직원 복지도 좋은 편이라고 그러더라구요. 무엇보다 거의 정년 근처까지 다닐 수 있게 해준다는 군요~ 세상에, 저는 아들 대학 다닐 때 다.행.히. 닭튀기는건 안해도 되는 군요. (닭집이 나쁘다는 아닙니다.) 저희 회사의 인사팀에 세뇌당하고 있는지도 모르겠군요. 아, 회사 자랑하려고 하는건 아닙니다. 물론 다른곳을 많이 안다녀봐서 그렇다고 그러면 그냥 믿습니다.

  웬 회사 자랑이냐구요? 회사 자랑하려고 시작한 말은 아닙니다. 그냥 넋두리 좀 하려구요. 제가 다니는 회사는 금융거래 수수료가 주 수입원입니다. 고맙게도 저희회사 서비스를 이용하지 않고는 되지 않는 금융 서비스라, 어찌보면 굉장히 쉽게 돈 벌고 있는지도 모르죠. (속 사정은 조금 다릅니다만..) 더욱이 경쟁자도 없습니다. 대한민국에서 퍼펙트하게 독.점. 이지요. 사람들이 그렇게 증오하는 빌의 그런 독점 보다 더합니다. 부럽지요? 사정이 이렇다 보니 큰 경쟁을 격지 않아도 회사는 어느정도 안정적인 수익을 유지 합니다. 그래서 우수한 직원복지가 가능한지도 모르겠군요. 아.. 계속 회사 자랑질이군요. 머리박고 반성하겠습니다.

  그런데로 큰 욕심없이 살기 좋은 환경입니다. 경쟁에 대한 스트레스도 적은 편이지요. 그리고 변화도 적은 편이지요. 네. 변화가 적어요. 그래서 업무가 굉장히 반복적이네요. 네, 뭔가 새로운 기술이나 지식을 많이 익히지 않아도 되는군요. 그렇게 그렇게 적당히 지나가면 되는 군요. 5년 뒤에도. 10년 뒤에도 저는 여전히 "Hello World"를 외치고 있겠군요. 오늘은 JAVA로 외쳤으니 내일은 C로 외쳐봐!, 우리 발전좀 해야지? 다음주에는 오라클에서 Hello World를 갖고와!! 이런이런, 넌 왜 XML로 했니? 넌 틀렸어!! 그렇게 하면 안되! 결과가 같아도, 원칙대로 해. 그래야 되는 거야. 튀지마!! 남들 하는 데로만 해!!

  저는 뭘 하고 있는 걸까요... 군대의 상관이 웅덩이를 둥글게 파라고 합니다. 꼭 둥글어야 한다고 합니다. 그리고 그 속에 또 삽을 이용해 물을 퍼 넣으라고 하네요. 네, 펌프나 다른걸 이용하면 문제가 있어요. 제가 퍼 나르던 웅덩이를 다른 사람이 퍼 나를 때 그는 펌프를 쓰지 못할 테니까요. 정말 실제로 요즘에 나오는 것들은 좀 사용법이 어렵긴 하더군요. 오늘도 파던 구덩이를 계속 삽으로 파고 있습니다. 둥글게 파야 됩니다. 그리고 물을 퍼 나릅니다. 

  조금씩 염증이 생기기 시작 합니다. 약을 발라야 하는 그런 염증 말이죠. 가만히 두면 덧나고 고름이 생기고 결국 살을 잘라 내야 되는 그 염증입니다. 그냥 까라면 까면 되는 대한민국의 자랑스런 군대를 저는 안다녀와서 그런가 봅니다. 그래서 이런 문화가 저에게는 어려운가 봅니다.

  학창시절 꿈꾸었던 모습은 이게 아니었는데요. 뭔가 좀더 역동적인걸 원했는데요. 뭘하고 있는 걸까요. 지금도 누군가는 저를 부러워 하고 있겠네요. 아무래도 저에게 행복은 좀 더 주관적인가 봅니다. 

by 정범정범 | 2010/02/09 00:10 | Small Talk(사는얘기) | 트랙백 | 덧글(1)

Sometimes I feel so happy..


 오랬만에 아무런 생각 없이 텔레비젼이란걸 틀었습니다. 딱히 할일 없을 때... 무료한 시간을 보낼 때 그럴 때가 있습니다. 오늘도 그런 날이었습니다. 생각없이 레비젼을 틀었고, 귀에는 익숙한 노래 소리가 들려왔습니다.

 Sometimes I feel so happy, Sometimes I feel so sad.
 때론 너무 행복하고, 때론 너무 슬프고.
 
 Sometimes I feel so hapy, but mostly you just make me mad.
 때론 너무 행복하고, 하지만 거의 당신은 날 미치게 만들어요.

 이런 가사죠. 감수성 많던 그 어린 시절 라디오에서 가사가 어떤 뜻인지도 모른채 음색과 목소리 만이 좋아서.. 어떤 노래 인가 열심히 찾아보며 들어보았던 노래 입니다. The Velet Unnderground 라는 그룹에 의해 불려진 노래 입니다.
 
 1969년도에 Lou Reed 라는 사람에 의해 작곡되었다고 위키피디아에 써있군요.. 요즈음은 이렇게 옛 생각에 많이 잠기게 됩니다. 그시절 꿈 많던 시절.. 지금은 어느덧 직장인이 되어 버렸고.. 사회라는 곳에 적응해 가고 있습니다. 그 시절 꿈과 지금의 나를 비교해 가며 말이죠.

 그땐 나중에 커서 무언가가 되어 있을 것만 같았엇더랬죠. 그게 어떠한 모습이었는지 정확히 그려보진 않았던거 같군요. 단순히 굉장히 듬직하고, 또한 굉장히 능력있고.. 그리고 굉장히 멋진 모습일 줄 알았죠. 누구나 그런 상상을 하는지는 잘 모르겠지만 저는 그랬었네요. 의사. 검사. 혹은 회계사. 그런 모습을 꿈꿨던건 아닌거 같아요. 그때나 지금이나 저는 여전히 개발자를 꿈 꾸었으니까요. 그냥 뭔가 깔끔하게 정리된 블랙&화이트 톤의 책상과 크롬과 같은 매탈의 스탠드, 거만한 제 자신을 흠적 더 받쳐줄 거만한 의자. 그리고 그 등뒤로 통유리로 된 높은 빌딩의 사무실 한칸에서 멋진 어떤 프로그래머가 되어 있을 거라는 생각을 했었던거 같습니다.. 지금 생각하니 참 귀여운 상상이었네요..

 수능이라는 시험을 치고.. 대학이라는 곳을 가고 그리고 나름 힘들었던 군복무도 받았습니다. 물론 병역특례로 타인에 비할바가 아니라고 생각은 하지만요.. 그리고 다시 학교라는 곳에 돌아가니 어릴적 꿈을 쫒던 정범보다는 좋은 곳에 취업해서 좋은 급여에 좋은 복지, 좋은 평판.. 이런 것들이 기준이 되어서 구직활동이란걸 하였네요. 네, 좋은 근무요건, 남부럽지 않은 직장. 물론 굉장히 중요한 요소입니다. 흔히들 말하죠. 업무에서 어떤 스트레스가 있든, 어떤 강도의 업무가 있든 급여통장에 적히는 금액이 그 모든것들을 잊게 해준다구요.. 저도 그런 느낌 받았었습니다. 아주 짧은 시간이지만요. 급여가 들어와 그 숫자를 확인하는 그 순간은 무척이나 행복하고 근심 걱정이 없어졌다는 그 경험말이죠..

 하지만 저는 병역특례를 받아서 그때도 급여통장이라는게 있었습니다. 그 통장에도 숫자가 적혀 있었죠. 그때 그 숫자를 확인하는 순간의 기쁨과 지금의 순간을 바로 비교 하긴 어렵지만.. 그 때 그 순간들이 더 행복했던거 같네요.. 물론 그 때는 지금보다 훨씬 어려서 금전적인 압박이 지금보다 훨씬 적었고, 현역복부 받는 친구들에 비해 훨씬 나은 조건이었기에 더 행복했었을 수도 있습니다. 네. 그래서 정확한 비교는 어렵네요. 하지만 확실한건 지금보다 그 때 훨씬 더 설레었고 더 좋았던거 같네요.. 그 때가 지금보다 오히려 제가 어린시절 꾸었던 그 꿈에 가까웠거든요..

 나이가 들고 비교해야 할 대상들도 많아지면서 직업에 대한 기준이 꿈에서 현실이 되었지요..
 
 꿈많던 그 시절 그 아이는 그렇게 세상을 알아 가는가 보네요....

by 정범정범 | 2010/01/27 23:11 | Small Talk(사는얘기) | 트랙백 | 덧글(3)

생각이 많은 날..


 너무 추운날은 마음까지 시릴 때가 있습니다. 가로등만 비추어주는 아무도 없는 듯한 황량한 골목길을 지날 때면 더욱 그런 생각이 듭니다. 이렇게 추운날은 저 멀리까지 잘 보이는데 그곳은 이방촌처럼 황량하고 적막하기만 합니다. 그리고 이 적막함은 가슴이 너무 쓰라릴 때의 그 상처를 떠오르게 하지요. 

  누구에게나 있을 듯한 기억이지만, 그 누구에게도 다르게 기억될 그런 기억들 말입니다. 언젠가 그런적이 있었습니다.  그냥 가만히 있을 때.. 어두운 방 구석에 쪼그리고 앉아 있을 때.. 멍하니 아무런 생각도 못할 때.. 멍하니 눈물만 흐르던 그런 날이었습니다. 익숙한 습관들과 헤어져 뭘 해야 할지도 모른체.. 그렇게 적막과 함께 하고 있었을 그런기억.. 

  그렇게 이별이라는걸 받아 들이고 있을 때지요.. 그때의 아픔은 아직도 내 머리속에 새파란 탄흔을 남기고 있습니다.. 다시는 받고 싶지 않은 상처.. 네.. 몸이 아픈건 참을 수 있어요.. 미치도록 아프면 진통제 맞으면 되지요.. 그런 통증들은 새파란 탄흔을 남기지 않지요.. 다만 아찔했던 사건만을 남기지요..

  누군가에게 빠져 든다는건 다시 말하면 그만한 혼란을 가져 오게 된다는 걸 알게 되었지요.. 그래서 그런 아픔.. 또 느끼지 않기 위해 마음에 거리를 두었더랬죠.. 정확히 나 자신과도 거리를 두었습니다.. 그렇게 나 자신을 3자가 되어서 바라 보게 되는 습관도 생겼습니다.. 3자가 되어서 바라보니 자신에게 좀더 가혹하고 엄격하게 할 수 있는 장점도 생겼지요.. 그렇게 인각적인면 보다 냉철하지만 완벽해지기를 바랬습니다.. 단지 그 아픔을 다시 격지 않기 위해서.

  하지만 이제는 다른 아픔이 생겼습니다.. 또 다시 어떤것에 익숙해져 버렸다고 할까요.. 안개속을 헤메며 그 안개에 옷이 젖어 가듯 조금씩 조금씩 그렇게 빠져들어.. 또 다시 돌아 올 수 없을 만큼 가버렸네요.. 

  그리고 그 익숙함으로 설레임도 느끼고 있습니다.. 좋은 일이네요.. 웃을 수 있으니까요.. 그런데 또 다시 아프게 되면 어떻게할까요.. 그저 손을 내민 것뿐인데 그저 내 맘을 전한 것뿐인데.. 

by 정범정범 | 2010/01/12 00:45 | Small Talk(사는얘기) | 트랙백 | 덧글(0)

[C string lib 넷째] C로 string liberary를 만들어 봅시다(strrev, strupr, strlwr).


 드디어 네 번째 입니다. 이제 곧 진짜 DLL로 만들 시간이 다가 오는 군요. 간단한거 몇 가지만 더 구현하고 .LIB와 .DLL 파일 형태로 만들어서 사용하는 거 까지도 해볼 계획 입니다. 그 다음은 C++ 스트링 클래스로 전환 입니다. 생각만 해도 설레는 군요.

 그럼 시작하겠습니다. 먼저 strrev() 라는 함수 입니다. 이 함수는 기존의 스트링을 역순으로 넣는 역활을 합니다. c에서 제공해주는 strrev() 함수는 써보지 않아서, 같은 역활을 하는 지는 잘 모르겠습니다. 다만 제가 프로그램을 작성할 때 종종 필요 했던 함수라 한번 추가 해 보았습니다.

소스 코드 입니다.

char *MyStrrev(char *str)
{
    char *pStart;
    char *pEnd;

    if(!str)        
        goto Exit;

    pStart = str;
    pEnd = pStart + MyStrlen(pStart) - 1;

    while(pStart < pEnd)
    {
        *pStart += *pEnd;
        *pEnd = *pStart - *pEnd;
        *pStart -= *pEnd;

        pStart++;
        pEnd--;
    }

Exit:
    return str;
}

중간에 while() 구문 안에 있는 코드는 다들 아시겠지만 치환 코드 입니다. 왜 이렇게 했냐고 욕하는 분도 계시겠지만, 이 상황에서는 오버 플로나 언더 플로가 큰 의미도 없고, 생길 거 같지도 않아서 이렇게 했습니다.;; 사용 중 이상이 생기면 알아서 해결하세요. 네.. 전 무책임 합니다. 왜냐구요? 공짜니까요.. ㅎ


다음으로 소문자를 대문자로 바꾸어 주거나 대문자를 소문자로 바꾸어 주는 strupr(), strlwr() 을 만들어 봤습니다. 역시 발로 짰습니다. 제가 봐도 성의가 부족해 보이는 코드 입니다. 더 노력을 투자 하지 않겠습니다. 왜냐구요? 실제로 이 함수를 실무에서 써본적은 거의 손에 꼽거든요..;;;

소스코드 입니다.

char *MyStrupr(char *str)
{
    char *pTemp;
    char chGap;

    if(!str)
        goto Exit;

    pTemp = str;
    chGap = (char)('A' - 'a');

    while(*pTemp)
    {
        if(*pTemp >= 'a' && *pTemp <= 'z')
            *pTemp += chGap;

        *pTemp++;
    }

Exit:
    return str;
}

char *MyStrlwr(char *str)
{
    char *pTemp;
    char chGap;

    if(!str)
        goto Exit;

    pTemp = str;
    chGap = (char)('A' - 'a');

    while(*pTemp)
    {
        if(*pTemp >= 'A' && *pTemp <= 'Z')
            *pTemp -= chGap;

        *pTemp++;
    }

Exit:
    return str;
}


테스트 코드 입니다.
void main()
{    

    /* MyStrrev() 테스트 */
    {
        char string[] = "String reverse test.";        
        
        // Reverse string and compare (ignore case):
        printf( "Original string is \"%s\"\n", string);
        printf( "The reversed string is \"%s\"\n", MyStrrev(string) );
        
        printf( "\n\n" );
    }

    /* MyStrupr() 테스트 */
    {
        char string[] = "The String to End All Strings!";
        
        printf( "Mixed: %s\n", string );
        printf( "Lower: %s\n", MyStrlwr( string ) );
        printf( "Upper: %s\n", MyStrupr( string ) );

        printf( "\n\n" );
    }
}

결과 화면 입니다.

원하는 데로 잘 동작하는 모습에 항상 감격입니다. ㅠ.ㅠ 

다음에는 atoi() 관련이랑, strtok() 구현해 보겠습니다.

수정된 코드 올립니다. StringLib.c  StringLib.h  TestDriver.c

by 정범정범 | 2009/01/31 20:13 | C/C++ Story | 트랙백 | 덧글(0)

[C string lib 셋째] C로 string liberary를 만들어 봅시다(strcmp, strchr, strstr).


 세 번째 입니다. 자꾸 게을러 지네요. 처음 만들어 보기로 결심하고 벌써 3주가 지난거 같습니다. 3주만에 3 번째라...

 반성 하겠습니다.

 
 두 개의 문자열을 비교하는 strcmp() 함수를 만들어 봤습니다. 물론 사용방법은 똑같습니다. 그리고 성능은 포기 했습니다. 레지스트리 위에서만 돌아가는 거랑은 비교가 안되더군요. 물론 레지스트리 예약어를 쓸 수는 있지만, 그럴 바에는 차라리 어셈블리로 만드는게 훨 낫다는 생각이 드는군요.

 시간이 남는 분은 시도해보시고 연락 주세요....

int MyStrcmp(const char *string1, const char *string2)
{    
    for(; *string1 && *string2 && !(*string1-*string2); string1++, string2++);

    return ((*string1 < *string2) ? -1 : (*string1 > *string2));
}

 이 MyStrcmp는 null 검사를 하지 않았습니다. 알아서 잘 쓰세요. 아니면 직접 고치시던지.;;



 그 다음으로 한 스트링 내에서 특정 문자(char)의 첫 번째 위치를 찾아서 반환하는 strchr() 함수를 만들어 봤습니다. 사용 방법은 역시 똑같습니다. 

char *MyStrchr(const char *str, char c)
{
    if(!str)
        return 0;

    for(; *str && (*str-c); str++);

    return (*str ? (char *)str : 0);
}

 최대한 쉽고 간단하게 만들기 위해 엉청나게 노력했습니다. 제가 부족해서 쉬워야만 하거든요..

 
 
 마지막으로 특정 문자열에서 주어진 문자 패턴을 찾는 strstr() 함수를 만들어 봤습니다. 사용방법은 역시 msdn을 참조 하던지 알아서 찾아 보세요. 똑같이 만들려고 노력 했습니다. 

char *MyStrstr(const char *str, const char *strSearch)
{
    char *pszTemp1;
    char *pszTemp2;
    int nLength;
    int nCnt;    
    
    if(!(str && strSearch))
        return (char *)str;
    
    nLength = MyStrlen(strSearch);
    nCnt = MyStrlen(str);

    while(nCnt-nLength > -1)
    {
        for(pszTemp1 = (char *)str, pszTemp2 = (char *)strSearch; *pszTemp2 && !(*pszTemp1-*pszTemp2); pszTemp1++, pszTemp2++);

        if(!(*pszTemp2))
            break;

        str++;
        nCnt--;
    }

    return ((nCnt-nLength > -1) ? (char *)str : 0);
}

 함수를 짧게 만들려고 엉청나게 노력 했지만 이 이상 짧아 지지 않습니다. 더 짧게 하려니 코드의 가독성이 너무 떨어 지더군요. 저는 개인적으로 좀 더 나은 성능의 코드 보다 가독성이 높고, 구조가 훌륭한 코드를 좋아 합니다. 요즘 컴퓨터가 좀 빨라 지긴 했거든요. 최대한 쉬운 코드를 선호 하는 것이지요. 


테스트 코드도 작성해 보았습니다.

void main()
{
    int result;

    /* MyStrcmp() 테스트 */
    {
        char string1[] = "The quick brown dog jumps over the lazy fox";
        char string2[] = "The QUICK brown dog jumps over the lazy fox";

        char tmp[20];
        

        
        printf( "Compare strings:\n   %s\n   %s\n\n", string1, string2 );
        result = MyStrcmp( string1, string2 );
        if( result > 0 )
            MyStrcpy( tmp, "greater than" );
        else if( result < 0 )
            MyStrcpy( tmp, "less than" );
        else
            MyStrcpy( tmp, "equal to" );
        printf( "   strcmp:   String 1 is %s string 2\n", tmp );
        printf( "\n" );
    }

    /* MyStrchr() 테스트 */
    {
        char  ch = 'x';

        char string[] = "The quick brown dog jumps over the lazy fox";
        char fmt1[] =   "         1         2         3         4         5";
        char fmt2[] =   "12345678901234567890123456789012345678901234567890";

        char *pdest;        

        printf( "String to be searched:\n      %s\n", string );
        printf( "      %s\n      %s\n\n", fmt1, fmt2 );
        printf( "Search char:   %c\n", ch );

        // Search forward. 
        pdest = MyStrchr( string, ch );
        result = (int)(pdest - string + 1);
        if ( pdest != NULL )
            printf( "Result:   first %c found at position %d\n", ch, result );
        else
            printf( "Result:   %c not found\n" );

        printf( "\n" );
    }

    /* MyStrstr() 테스트 */
    {
        char str[] =    "fox";
        char string[] = "The quick brown dog jumps over the lazy fox";
        char fmt1[] =   "         1         2         3         4         5";
        char fmt2[] =   "12345678901234567890123456789012345678901234567890";

        char *pdest;
        
        printf( "String to be searched:\n   %s\n", string );
        printf( "   %s\n   %s\n\n", fmt1, fmt2 );
        pdest = MyStrstr( string, str );
        result = (int)(pdest - string + 1);
        if ( pdest != NULL )
            printf( "%s found at position %d\n", str, result );
        else
            printf( "%s not found\n", str );

        printf( "\n" );
    }
}

결과 화면입니다.


테스트 코드를 작성하는 요령이 계속 발전하고 있습니다. 이제 테스트 드리븐식으로 해야 할까 봅니다. ^^

오늘도 이렇게 간단하게 나마 작성해 보았습니다.

좀 더 간결하고 획기적으로 좋은 성능을 보이는 방법을 알고 계신분~ 꼭 연락주세요~ 

수정된 파일 올려 드립니다.StringLib.c  StringLib.h  TestDriver.c

by 정범정범 | 2009/01/29 20:50 | C/C++ Story | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶