2007년 5월 19일 토요일

영유아, 치과 데리고 가야 하나 말아야 하나.

아이들은 보통 6개월령쯤에 처음 이가 나기 시작해서 돌이 지나면 유치가 거의 다 나온다. 육아와 관련된 정보를 제공하는 곳에서는 거의 대부분 어릴 때부터 치아 관리의 중요성을 이야기하고 있으며, 치과치료를 정기적으로 받을 것을 권하고 있다.

유치의 중요성은 두말할 필요가 없다. 유치가 손상되어 빠지거나 부러질 경우, 사회성에 영향을 줄 수 있고 나중에 영구치가 잘 자라는데 지장이 될 수 있다. 많은 사람들이 유치는 빠져 없어지기 때문에 그리 중요하지 않게 생각하는 것에는 물론 경각심을 가져야 한다. 그러나, 여전히 의문이 남는 것은 심하지 않은 경우에도 반드시 치과치료를 받아야 하는가 하는 문제이다.

돌이 되고 나면 3개월에 한 번씩 치과 진료를 받기를 권하고 있다. 두 돌 정도 나이의 아이들이 치과에 가면 보통은 한두 개 정도는 충치가 시작되어 있는 경우가 많다. 돌이 되기 전까지 분유를 입에 물고 자는 아이들이 많기 때문에 조금씩은 치아우식증의 경향을 보이는 것이 그 이유다.


치과 진료의 공포

인터넷에 널려 있는 유치 관리의 중요성을 강조하는 정보들을 접하고 1년 6개월쯤 된 첫째를 데리고 치과에 간 경험이 있다. 어린이 치과로 나름대로 알려진 곳을 찾아갔는데, 검사를 한 결과 충치가 있음을 알려 주었다. 그 날 바로 진료를 받을 수는 없다고 하여 예약을 하고 나서 다시 치과에 가기로 하였다. 이 때까지는 모두 행복하고 기분이 좋았다. 아이는 치과에서 주는 예쁜 반지를 받아서 좋아했고, 검사를 받는 동안 천정에 달려 있는 모니터에 만화를 보면서 지루하지도 않았던 것 같다.

정작 문제는 진료를 받는 날이었다. 그 날도 첫 번째 진료를 받던 날의 경험을 생각하며 기분좋게 갔는데, 치과에서는 부모에게 동의서를 요구했다. 아이들의 경우 움직이거나 할 수 있으므로 진료를 받는 동안 움직일 수 없도록 묶어서 진료를 할 수 있다는 것에 동의를 하라는 내용이었다. 뭔가 좀 찜찜하긴 했지만, 치료를 위해서 동의를 하고 진료를 시작했다. 묶인다는 것은 사람을 정신적으로 매우 고통스럽게 한다. 팔을 몸에 붙인 채로 천으로 된 밴드로 묶인 아이는 처음 묶이는 순간부터 울기 시작했다.

입을 다물지 못하게끔 간호사는 가위처럼 생긴 장치를(손잡이를 누르면 아래위로 버텨주도록 되어 있다.) 아랫니와 윗니 사이에 끼워서 입을 강제로 벌리게 하여 진료를 할 수 있게 도와주고 있다. 혹시나 입을 다물게 되어 아이가 벌리지 않으려고 버티면 딱딱한 막대를 이 사이에 억지로 끼워 넣어 벌린 다음 다시 아까의 그 버티는 가위(?)를 사용하여 입을 벌린 상태를 유지하게 만든다. 그렇게 손발이 묶이고, 입이 강제로 벌려진 채로 아이는 30여분 가량 진료를 받았다.

그 전에도 그 이후에도 아이가 그렇게 우는 것은 본 적이 없다. 사실 어른 입장에서 생각해 봐도 온몸이 묶인 채로 내가 하기 싫은 것을 억지로 하게끔 강제당한다면 얼마나 끔찍한 기억인가. 내가 저런 상황이라는 상상을 해 보고는 감히 아이의 스트레스를 짐작해 보았다.

이런 형태로 이뤄지는 치과 진료는 아이에게도 부모에게도 모두 공포스러운 일이다. 그 이후로 나는 두 번 다시 치과에 가 보자는 이야기를 아내에게 할 수 없었다. 2년 9개월이 된 지금, 첫째의 이가 어떤 상태인지 가끔 궁금하긴 하지만 같은 상황을 맞기 싫어서 애써 외면해 왔다. 치과에서의 기억이 어린 아이에게 트라우마로 작용하지 않을까 하는 것이 아이의 이보다 훨씬 걱정스럽다.

어린이를 전문적으로 치료하는 치과가 분명히 있어야 한다는 데는 공감하지만, 많은 아쉬움이 있다. 내가 경험한 치과에서는 의사의 지식과 경험을 환자나 환자의 부모와 공유하지 않는다. 애들의 진료가 이런 방식으로 해야 하는 것이라면 선택을 하기 위한 더 좋은 과정이 있었어야 할 것 같다. 아이의 정신적인 충격 등을 고려하여 더 나이가 든 후에 치료를 받게끔 한다든지, 주기적으로 점검을 통해 상황을 지켜 보면서 결정하자는 정도의 조언을 해 준다면 부모들이 더 좋은 선택을 할 수 있게끔 도와줄 수 있지 않을까.

부모로서 단지 치료를 받을지 말지를 선택하라는 말만 듣고, 치료를 받으러 간 당일에는 대뜸 내민 동의서에 사인을 하지 않으면 진료를 못하겠다는 식으로 의료행위가 이뤄진다면 아이의 건강을 의사와 상의하려는 마음이 들 리가 없다. 의료 서비스에서 종종 느끼는 아쉬움이지만, 많은 경우 의료 서비스는 양방향성을 갖고 있지 못하다. 이런 식이라면 의료 행위는 단순 기술에 다름 아니지 않을까.

치과만큼 많은 사람들에게 공통적으로 공포의 대상이 되는 병원도 없을 것이다. 그만큼 치과 진료를 행복하게 받기는 어렵다는 점을 이해한다. 그럼에도 불구하고 현재의 의료 서비스 수준은 그들이 돈을 벌기 위해 의사가 되었고, 그 외에는 크게 관심이 없을지도 모른다는 의심을 강하게 남기고 있다. 요즘 세상에 돈 말고 다른 가치를 추구하는 사람이 그리 많지는 않겠지만 씁쓸한 마음은 어쩔 수 없다.

물론 다른 치과를 경험해 보지 못했으므로, 읽는 분들께서 대한민국의 모든 치과가 이렇게 진료를 한다는 단정을 갖지는 않았으면 한다. 그것은 많은 치과를 대상으로 제대로 조사해 보지 않는 이상 모를 일이다.

치과진료의 안타까운 경험을 이야기했지만, 여전히 치과는 가야 한다. 충치가 생기면 아이의 건강과 정서에 모두 나쁜 영향을 미칠 수 있고, 영구치의 정상적인 발육에도 좋지 않을 수 있다. 차라리 좀 더 일찍부터 치과에 가서 불소도포를 하거나 하여 충치를 예방할 수 있는 방법을 상의한다면 훨씬 좋을지 모르겠다. 가능하면 어릴 때부터 아이의 치아 관리에 신경을 써야 할 것이다. 충치는 치료보다 예방이 몇 배는 중요하다. 마지막으로, 이 글 때문에 충치가 있는 아이를 치과에 데려가지 않아야겠다고 생각하는 분이 없기를 바란다.

2007년 5월 18일 금요일

Eclipse를 사용하여 NS2 통합개발환경(IDE) 만들기

요약: 이 글은 윈도우에서 Cygwin에 NS2를 설치했을 때 사용하는 팁에 관한 글이다. 유닉스 환경에서 프로그래밍을 하는 것이 익숙치 않거나, IDE(통합개발환경)에서 NS2(Network Simulator)를 사용하고 싶었으나 방법을 모르는 분들을 위해 정리하였다. Eclipse에 CDT(C/C++ Development Tooling)를 사용하여 NS2의 소스 트리를 임포트하는 방법을 설명한다. 이 방법은 유닉스의 기본 Makefile을 사용하는 방법이므로, Makefile이 있는 프로그램이면 Eclipse를 사용하여 통합개발환경을 구축할 수 있다.


Code::Blocks에 관한 글 에서도 밝힌 바 있지만, 이미 vi 에디터를 사용하여 익숙한 개발 환경을 만들어 사용하는 분들도 있겠지만, IDE 환경을 편하게 생각하는 사람들도 매우 많다. 나는 특히 Vi를 매우 싫어하는데, 손에 익은 핫키(예를 들자면 Ctrl+S)들을 무의식적으로 눌렀을 때 받는 스트레스가 Vi가 싫은 이유 중 하나이다. Vi를 잘 꾸미면 더 가독성을 높일 수 있겠지만, 내 경우는 터미널에서 Vi를 띄워서 글을 읽으면 코드가 눈에 잘 들어오지 않는 이상한 시각인지구조를 갖고 있다.

설명을 하는 순서는 다음과 같다. 유닉스 환경에서 eclipse를 사용하는 분들은 1에서 eclipse에 CDT 플러그인을 설치하고, 3.1)과 3.2)의 과정만 따라하면 NS2를 위한 IDE 환경 구축이 끝난다.
1. NS를 사용하기 위한 프로그램들 설치
2. 환경변수 설정 (Option)
3. 프로젝트 생성


1. 설치해야 할 것들

- Cygwin
Cygwin은 윈도우에서 유닉스 환경을 만들어 주는 프로그램 패키지이다. 사실, Cygwin에서 돌아가는 모든 프로그램들은 윈도우용 프로그램이지만, 이 작은 프로그램들을 사용해 유닉스처럼 사용할 수 있다는 것은 매우 놀랍다. 유닉스용으로 개발된 많은 프로그램들이 Cygwin에 포팅되어 있고, 소스코드에서 Cygwin에서 컴파일을 지원하는 경우도 많다. 오늘 설명하는 NS2의 경우가 바로 대표적인 사례다. 예전에는 NS2를 사용하려면 따로 리눅스 머신을 설치하거나, 공용으로 시뮬레이션 서버를 만들어 두곤 했었는데, 이제는 Cygwin이 있으므로 그런 수고가 많이 줄어들었다.

- NS2
NS2는 네트워크 시뮬레이션을 할 때 많이 사용하는 시뮬레이션 툴이다. 네트워크 시뮬레이션이라고 하면 그 용도가 한정적인 것 같지만, 서버를 배치하고 서버들 간의 네트웍을 구성하여 각각의 워크로드를 분석하는 데도 적용 가능하거나, 네트웍 장비의 필요 스펙 등에도 활용할 수 있을 것으로 생각한다. NS2에 대해서는 나중에 다시 글을 쓸 기회를 갖고 싶은데, 시간이 허락할 지 모르겠다. 이런 이유로 NS2에 대해서는 이것으로 패스~

-
이클립스(Eclipse)
이클립스는 Java를 개발하기 위해 많이 사용하는 툴이지만 플러그인이 다양하기 때문에 어떻게 사용하느냐에 따라 활용 방법은 매우 다양해진다. Java 개발 툴로서는 매우 강력한 IDE 환경이지만, 다른 언어에서는 그만큼 강력하지는 않은 것이 좀 아쉬운 점이긴 하다. C와 C++를 사용하려면 Eclipse에 CDT를 플러그인으로 설치해야 한다.


2. 환경변수 설정

Cygwin을 설치하면 유닉스의 각종 유틸리티들이 윈도우 프로그램 형태로 설치되고, Cygwin 디렉토리는 루트("/")로 인식된다. Cygwin에서 설치되는 많은 프로그램들을 패스(PATH) 환경변수에 넣어 두면 윈도우 터미널에서도 Cygwin의 모든 유틸리티들을 사용할 수 있다. 그런데, 이 방법을 원치 않는 경우에는 스킵하여도 좋다. 3. 프로젝트 생성에서 PATH 환경변수를 추가하지 않고, 따로 환경변수를 입력하면 되므로 패스가 지저분해지는 게 싫은 분들은 그냥 다음 단계로 넘어가시길.

1) 내 컴퓨터 -> 속성 -> 고급 탭-> 환경 변수(N)를 선택한다.
2) 시스템 변수에서 PATH를 선택하고 편집 버튼을 클릭한다.
3) PATH 환경 변수의 제일 마지막에 [Cygwin이 설치된 디렉토리]bin을 추가한다. (C:에 설치했다면 C:cygwinbin)


3. Eclipse에서 프로젝트 생성


1) New -> Project -> C++ -> Stadnard Make C++ Project를 선택한다.
2) Use default location이 기본적으로 체크되어 있는데 이것을 해제하고, NS2 소스코드가 설치된 디렉토리를 선택하고, 프로젝트 이름을 입력한 후 Next 버튼을 누른다. (NS2소스코드가 설치된 디렉토리는 ns-allinone-2.xx/ns-2.xx이다. ns-allinone-2.xx 디렉토리는 tcl, tk, otcl 등의 소스코드를 담고 있는 디렉토리가 함께 포함되므로, 선택할 필요도 이유도 없다. tcl이나 tk의 소스코드를 고치고 싶지 않다면 말이다.)

※ 유닉스에서 eclipse를 사용하는 경우에는 gcc나 make의 PATH가 이미 잡혀 있는 경우가 많으므로, 3)을 하지 않아도 무방하다.

3) Environment tab -> Select 버튼을 선택한다. 위(2. 환경변수 설정)에서 PATH 환경변수를 설정한 경우 3-1을, 그렇지 않을 경우 3-2와 같이 설정한다.
3-1) PATH 환경변수가 선택되도록 체크한다.
3-2) NEW 버튼을 누른 후 다음을 입력하자.
Name: UTILPATH (다른 이름을 입력하여도 무방하다)
Value: [Cygwin이 설치된 디렉토리]bin


이제 모두 완료되었다. Ctrl+B를 눌러 Build를 해 보자. 에디터 창 아래의 Console에 뭔가 주루룩 올라가고 컴파일이 정상적으로 된다면 다 제대로 되었다고 보면 된다.