336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
오늘 아는 형에게 탁구를 배웠습니다. 형이 제 자세를 보더니 자세가 안 좋다면서 기초 훈련을 무척이나 고되게 시킵니다. 저는 바로 게임을 하고 싶은 마음뿐이지만, 항상 마음대로 되지는 않는 법입니다. 할 수 없이 열심히 기초 동작을 반복합니다. 동작을 완벽하게 익히는 것은 매우 어려운 일입니다. 형이 말하기를, 제 경우는 처음에 탁구 자세를 제 마음대로 잡은 탓에 더더욱 제대로 된 자세를 배우기가 힘들다고 합니다. 그래서 기초 동작 훈련을 더욱 열심히 반복합니다. 그러나 공 없이 혼자 자세를 연습 해볼 때는 잘 되는 것 같다가도, 실제 공이 올 때면 예전 자세가 바로 나와버립니다. 무척 난감합니다. 다시 질릴 정도로 반복을 합니다. 그렇게 하다보니 다행히 조금식 나아진다고 합니다. 하지만 여전히 자세가 좋지는 않다네요. 잘못된 무언가를 바로잡는 것은 쉬운 일이 아님을 깨닫게 됩니다.

질릴 정도의 반복이 끝나고 시합을 했습니다. 어, 그런데 이거 예전에 제가 아니라는 생각이 들었습니다. 공이 왔을 때 내가 치는 것이 예전과는 다르다는 것이 느껴집니다. 예전에는 몰랐던 묘한 타격감이 있다고나 할까요? 거기에 빠르고 강하게 오는 공도 가르쳐 준 자세로 쳤더니 예전보다 더 정확하게 잘 맞는다는 느낌이 듭니다. 무척 재미있습니다. 기초 훈련은 재미없었지만 재미없게 보낸 시간이 이렇게 빛을 내니 무척이나 황홀하게 느껴졌습니다. 너무 재미있어서 다섯 게임을 쳤습니다. 물론 5패를 했지만요. :)

탁구를 치고 난 후 집에 돌아와 '기초 학습의 중요성'에 대해 생각해보았습니다. 특별히 제가 직업으로 삼고 있는 '소프트웨어 개발'에 한하여 생각해보았습니다. 소프트웨어 개발을 위한 기초라고 한다면 소프트웨어 공학론, 컴퓨터 구조론, 알고리즘, 자료구조, 운영체제, 데이터베이스 등 여러 가지가 있을 것입니다. 그 중 운영체제쪽의 책으로써, 앤드류 타넨바움 교수의 "운영체제론"이라는 책이 있습니다.(이 책은 리누스 토발즈가 자신의 저서인 "리눅스 그냥 재미로"라는 책에서 리눅스를 만들 때 무척 많이 참고했다고 언급했던 책이기도 합니다.) 한 때 저는 이 책이 너무 재미있어서 몇번이고 읽었었습니다. 운영체제의 깊숙한 원리를 탐험해보는 것은 제게 무척이나 즐거운 일이였기 때문입니다. 그리고 그러한 시간을 통해서 머리 속에 자리잡은 지식은 결정적인 순간에 제게 많은 도움을 되고 있습니다.

예를 들면 얼마전에 리눅스로 구동되는 회사의 개발 장비가 다운된적이 있습니다. 그 장비는 톰캣을 여러개 돌리고 있었는데요, 일단 바로 보이는 현상으로는 사용되는 CPU수치가 매우 높게 나타나고 있었습니다. 이 때 top을 쳐서 어떤 프로세스가 CPU를 많이 먹나 확인해 보았습니다. HighMem 어쩌구 하는 프로세스가 많이 먹고 있네요. 알아보니 이 녀석은 리눅스에서 페이징을 하기 위해 띄어논 시스템 프로세스라고 합니다. vmstat을 쳐서 가상 메모리를 확인해보았습니다. 음 꽤나 많이 잡혔군요. 이 문제는 꽤나 명확합니다. 요구되는 메모리에 대해 실제 물리 메모리가 부족하여 과도한 페이징이 발생 했고, 페이징 작업 때문에 CPU수치가 높게 나타난 것입니다. 그렇다면 과도한 페이징이 발생한 좀 더 상세한 이유는 무언가요? 이 부분은 정확하게 말하긴 힘들지만 아마도 떠 있는 여러 톰캣에 대해서 여기 저기 사용자들이 요청을 하다보니 메모리 내 워킹셋이 매우 자주 바뀌어야 했나 봅니다. 디스크로부터 메모리로, 메모리로부터 디스크로 이동하느라 무척 바빴겠네요. 덕분에 디스크와의 IO 비용도 꽤 들었을 거구요. 어쨋든 해결을 위해선 물리 메모리를 높이거나 메모리를 적게 사용하면 될 것이라 결론 지었습니다. 이러한 결론에 도달하게 해준 것은 다름아닌 운영체제에 대한 기초 지식이였습니다.

이렇듯 기초 지식은 실제 업무에 큰 도움이 되고 있습니다. 그렇지만 기초를 학습하는 것은 무척이나 고된 일입니다. 기초 서적을 읽을 때면 "내가 이걸 왜 지금 이렇게 보고 있을까? 금방 까먹을텐데 말이야. 차라리 당장 내가 쓰는 스프링에 대해서 공부를 더 하는게 유익하지 않을까?" 라고 생각 될 때가 많습니다. 하지만 탁구를 생각해보면 답은 명확해집니다. 응용에만 관심을 기울이는 것은 당장 가시적인 성과가 좋아보일 순 있지만 장기적으로 성장하기 어렵습니다. 제가 탁구를 꽤 많이 쳤음에도 불구하고 지금 이 모양인 까닭은 기초가 부실해서였지요. 처음 탁구를 칠 때 스매시도 바로 해보고 해서 꽤 좋았습니다만, 지금은 그렇게 몸에 체득된 안 좋은 자세들이 제 발목을 붙잡고 있습니다. 좀 더 나은 실력을 얻고 싶은데 쉽지 않은 상황입니다.
그렇기 때문에 기초를 탄탄해 해야 합니다. 기초를 탄탄히 한 후라면 내가 가는 방향에 대한 좀 더 나은 시야와 더불어 매우 강한 발전 동력을 얻을 수 있습니다. 기초는 매우 원자적입니다. 기초는 마치 널리 활용되는 수학 공식과 같습니다. 따라서 매우 많은 곳에서 응용될 수 있습니다. 하나의 지식을 배워 셀 수 없이 많은 곳에서 응용할 수 있다는 것, 이거 매우 남는 장사 아닌까요?  :)

추신. 제가 당장 스매쉬를 하기보단 기초를 탄탄히 한 후 탁구를 쳤으면 저의 오늘 게임 결과는 여전히 5패였을까요?

WRITTEN BY
차민창
르세상스 엔지니어가 사회를 이끌어나가는 상상을 하며!

,