database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
ㆍ자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
자유게시판 자유게시판 2291 게시물 읽기
 
No. 2291
[단상] IT와 기본기
작성자
문태준(taejun)
작성일
2001-12-17 23:42
조회수
2,459

주말동안에 간만에 아파치 서적을 처음부터 끝까지 읽어보았다. 물론 예전부

터 관계된 일을 해온터라 이래저래 잡다한 자료들을 많이 보고 그때그때 테스팅도 해보았지만 다시금 책을 보니 지금까지 단편적으로만 알고 있던 지식들을 다시 종합적으로 보게 된다.

 

요즘에는 전반적으로 경기가 나빠지면서 IT업종의 호황(?)도 그 거품이 어느정도 빠진 듯 하다. 그렇지만 전반적으로 IT에 대하여 많은 사람들이 가지고 있고 과거에 비하여 엄청나게 늘어난 교육기관을 통해 수많은 사람들이 쏟아져나오고 있다. 인터넷의 발전으로 과거에 비하연 기술에 접근할 수 있는 통로가 다양해졌고 마음만 먹으면 자신이 원하는 정보를 얻을 수 있다. 그런데 기술이 대중화된것과 더불어 기본기도 갖추지 못한 수많은 프로그래머, 엔지니어들이 양산디고 있는것은 아닐까 생각을 한다.

 

예를 들어 시스템관리라고 하는 경우를 들어보자. 레드햇의 경우 웹이나 FTP에서 RPM 파일로 아파치를 받아서 간단히 rpm -Uvh apache 하면 설치가 된다. 설치가 되고나면 여기에서 문서디렉토리정도 수정하고 대몬을 띄우면 웹서버 설치는 끝이다. 그렇지만 이정도로 시스템관리자라고 할 수가 있을까? 몇가지 설정을 바꾸어주고 튜닝이라고 이야기를 할 수 있을까? /proc에서 몇가지 옵션 바꾸어주고 운영체제 튜닝이라고 말을 할 수 있을까?

 

프로그래밍의 경우 문법은 책을 보고 따라하다보면 쉽게 익힐 수 있다. 그런

데 발전을 하려면 단순하게 문법만 알고 있다고 해서 되는 것은 아니다. 프로

그램을 효율적으로 짜기 위해서 알고리즘도 알고 있어야하고 자료구조에 대해서도 알고 있어야 한다. 체계적인 프로그램 개발을 위해서는 소프트웨어 개발 방법론 등에 대해서도 알고 공부를 해야한다. 시스템관리 분야도 마찬가지이다. 간단한 쉘 스크립트를 만들기 위해서도 최소한의 개발 능력은 필요하다. 서버운영의 밀접한 곳까지 들어가려면 운영체제가 어떻게 동작을 하고 TCP-IP 프로토콜을 이용하여 어떻게 네트워크에서 자료를 주고 받는지 이해를 하고 있어야한다. 보안이라는 분야에서도 가장 많이 발생하는 것중의 하나인 버퍼-오버플로우를 이해하기 위해서는 C 등 프로그램에 대한 지식이 필요하다. TCP SYN Flooding 등의 크래킹 공격을 이해하려면 위에서 말한 TCP-IP에 대하여 알고 있어야 한다. 시스템을 관리하는 경우 스와핑(페이징)이 문제라고 하지만 이를 제대로 이해하려면 커널에서 어떻게 자원을 관리하는지 이해를 하고 있어야 한다. 데이터베이스에서도 인덱스를 만드는 것은 간단하지만 인덱스를 어떠한 원리로 만들고 어떻게 구성하는지에 대해서 이해하는 것은 별개의 이야기이다. 여기에서 더 들어가면 B-Tree 등의 단어들이 튀어나온다. 오라클에서 raw device를 이용하여 성능을 높인다고 하는데 이러한 경우에는 이러한 장치의 특성이 어떠한 것인지에 대해서 먼저 이해를 해야하고 오라클에서 사용하는 공유메모리 영역에 대하여 운영체제 차원에서 이해하고 있어야한다.

 

물론 처음부터 모든 것을 다 알고나서 할 수 있는 것은 아니다. 그렇다고 기본기를 도외시한채 당장 눈앞에 보이는 작업만 하는것은 어느정도 한계가 있다는 생각이 든다. 그런데 현실은 바로 이렇게 눈앞에 보이는 작업만 하고 있는 것이다. 나또한 tunelinux라는 거창한 도메인을 운영하면서 이러한 현상에 일조를 하고 있는지도 모른다. 기본기는 도외시한채 당장 써먹을 수 있는 기술만을 강요하는 세상에서 어쩌면 당연한 결과가 나온 것일 수도 있다.

 

나의 전공은 철학이다. 우리 사회에서는 말그대로 돈 안되는 인문사회과학분야이다. 그마저도 제대로 공부하지도 않았고 졸업도 하지 않았지만. 그런데 위에서 말을 한대로 기본기는 도외시한채 당장 실용적인 것만을 요구하는 것은 학문에도 마찬가지이다. 어릴때일수록 더욱 더 많이 배워야할 것이 당장의 실용적인 지식이 아니라 세상을 종합적이고 체계적으로 바라볼 수 있는 시야를 쌓는 것이다. 그렇지만 철학, 문학, 역사 등의 학문은 돈이 안되기에 당장 돈이 될 수 있는 학문으로만 집중이 된다. 과학기술에서도 물리학, 화학, 수학 등이 모든 학문의 기초가 되지만 당장 써먹을 수 있는 기술만 요구를 한다. 어느정도까지는 버틸 수 있다. 그러나 장기적으로 본다면 그 토대는 점점 무너져버리고 오히려 생명을 줄이고 있는 것이 아닐까. IT와 기본기를 이야기하였지만 우리네 삶또한 그 기본기가 적용이 된다는 말이다. 문학과 예술은 당장 사람들에게 어떤 이윤을 던져주지는 못해도 그 사람에게 다양한 상상력과 창의력을 북돋아준다. 어떠한 학문을 하든지 이러한 상상력과 창의력이 더 다양할 수록 그 사람의 고민의 수위도 높아질 수가 있을 것이고 더 좋은 작품이 나올 수 있을 것이다.

 

IT와 기본기를 이야기하면서 문학과 예술로 그 방향이 전환되는 것이 다른 사람에게는 오버~하는 것으로 보일지도 몰라도 이러한 생각을 하는 것만으로도 한 인문학도는 작은 즐거움을 누리고 스스로를 반성하게 된다.

 

문태준

http://tunelinux.pe.kr

http://database.sarang.net

이 글에 대한 댓글이 총 6건 있습니다.

정말 공감이 가는 이야기군여.

저또한 너무 부끄럽구요.. ^^

 

기본기에 충실하지 못하고 프로그램 패턴이나 아키텍처는 도외시한채 output에만 급급한 나머지 코드구루같은 사이트에서 소스를 퍼서 짜집기하고 나서 보면 사실 프로그램을 짰다는것보다는 copy&paste를 했다는 표현이 맞는 거 같습니다.

그러면 벌써 프로그램의 효율성이나 최적화 같은건 저 멀리 물건너간 뒤죠..

 

어쨌든 상당히 공감이 가는 말씀인것 같습니다.

프로그램을 짜는것도 하나의 서비스를 제공하는 건데 요리사가 고객에게 최상의 서비스를 제공하려면 같은 요리라도 어떻게 맛있게 만드냐가 중요한 것처럼 프로그램을 짜는것도 같은 프로그램이라도 어떻게 만들었냐가 중요한거겠죠..

 

하나의 문법이나 언어에 치우치지 않는 진정한(?) 의미의 개발자라는 이름이 부끄럽지 않게 노력을 해야겠습니다. 매일 생각뿐이죠..근데.. (^^)

김은숙(dreamme)님이 2001-12-18 00:25에 작성한 댓글입니다.

Wirth라는 사람이 쓴 책 중 제목이 "Program = Data Structure + Algorithm"이라는 책이 있습니다.

 

태준님의 기본기를 세 단어로 가장 잘 표현한 책 제목 같네요.

 

작년, ACM ICPC(ACM 국제 대학생 프로그래밍 대회, 알고리즘과 데이터 스트럭쳐에 관련된 문제 출제)에 나갔다가 꼴등을 하고 왔습니다.

 

그 후로 엄청 충격 먹고, 수학과 알고리즘을 열심히 공부하려고 했는데, 맘 먹은 것 처럼 쉽지 않군요.

 

생각해보면, 우리 나라 초등 교육부터 문제이지만, 그렇게 되면, 너무 추상적이며 방대하고... 음.

 

과학 = 기술으로 보는 시각도 상당한 문제가 있는 듯 합니다.

 

시간에 빡빡한 개발자는 남의 것이라도 가져다가 쓸 수 밖에 없구 말이죠....

 

암튼 결론은 시간 날 때 열심히 기본 기를 닦아 놓자~~~

허정수(wertyu)님이 2001-12-18 01:00에 작성한 댓글입니다.

정수가 말한 책은 Nicolas Wirth 라는 Pascal 을 만든 분이 지은 책으로 알고 있는데, 그 책은 서론이 상당히 어려운 것으로 정평이 나 있는 책이지.

내가 처음 대학에 들어와서 컴퓨터에 관심을 가졌을때 읽은 책이었는데 서론을 일주일에 걸쳐서 읽고 감명 받았던 기억이 나는군.

 

태준이 말대로 기본부터 알아야만이 좋은 관리자가 될수 있고, 프로그램머가 될수 있다고 생각한다. 하지만 시대의 특성상 모든 것을 모두 깊게 알수는 없다고 생각한다. 박학다식이라는 말은 최소한 30년 이전에는 통하는 말이었겠지만 현대를 살아가는 사람들에게는 그렇게 어울리지도 않고, 그렇게 적절한 시대상이라는 생각도 안든다.

 

오라클을 잘 이해하기도 힘든데, 모든 DBMS 를 다 깊이 안다는 것은 더더욱이 힘들고, 나아가서 컴퓨터의 모든 것을 다 이해한다는 것은 더더욱 무리일것이라는 생각이 든다.

 

내 나름대로 생각하기에 현대를 살아가면서 컴쟁이로서 먹고 살고자 한다면 가장 먼저 신경을 쓰야 할것은 하나의 테크닉을 익히기 보다는 먼저 하나의 원리를 익히고 프로그램 메니지 하는 법을 먼저 익히고 다음으로 자기가 원하는 분야에 종사하면서 자신을 개발해 나가는 것이 옳지 않을까 생각한다. 요즘 들어서 나 자신이 게을려 졌는지 더더욱 이런 생각에 나를 합리화 시켜 보면서 글을 끝내고자 합니다. :-)

정재익(advance)님이 2001-12-18 11:22에 작성한 댓글입니다.

저는 컴퓨터 공학과 학생입니다. 우리과의 대부분들은 모두 SOP(에스 오 피 라고 발음합니다.)에 능하지요. SOP란 Source Oriented Programming이지요. 우리과 친구가 만든 말입니다. 항상 프로그램숙제나 기말텀때 소스를 고쳐서 얼렁뚱땅 인터페이스만 예쁘게 꾸며서 제출들을 하지요. 다 그런건 아니지만 모두들 한번쯤은 이런 경험이 있지요. 비판할려고 한 말은 아니지만 가끔은 놀다가도 제대로 된 프로그램을 짜고 싶을때가 있지요...

제대로 말할려면 길어질것 같아서 요만큼만... :-)

관련이 있는 이야기기에..

박근오(lastnite)님이 2001-12-18 12:09에 작성한 댓글입니다.

태준님..재익님 모두 정말 맞는 말인것 같습니다.

제가 하고픈 말을 김은숙 님께서 다해주셨네요

 

자칭 프로그래머라는 직책이 부끄럽기 그지 없네요

새로운 프로젝트에 투입되면..언제나 이건 어떻게 해결해야 하나...어디서 부터 어떻게 해야 하나 먼저 생각되어지니까요

아마도 이런 부분이 생기는 이유중 하나가 가장 기본이 되는 기본을 모르기 때문이죠..

 

시간이 흐를 수록 무엇인가 잘못되어 가고 있다고 느꼈습니다..

근데..바로 그게 태준님이 말씀 하신 부분인것 같군요..

 

좋은글 잘읽었습니다.

사이버님이 2001-12-18 13:31에 작성한 댓글입니다.

컴퓨터 관련일을 96년말부터 해왔으니(예전에 용산에서 일한것 빼고) 대략 만으로 5년정도 되었군요. 물론 경력이란 것이랑 실력이란 것이랑는 비례하는 것은 아니지만 이런저런 경험을 통해서 자세히는 몰라도 대충 어느정도의 흐름은 파악이 되는 듯 합니다.

 

위에서 제가 기본기를 말했던 것도 어느 정도 순간까지는 겉으로 당장 써먹을 수 있는 것들 가지고 버틸 수 있지만 그걸 가지고 계속 지탱을 하는데에는 한계가 있다는 것이지요. 일반적으로 말해서입니다. 저도 이에 대해서 절실하게 느끼지만 막상 그렇게 실천을 잘 하고 있는 것은 아니지만요.

 

그런데 이건 한 개인만의 문제만은 아닙니다. 제가 생각하기에 우리나라 회사에서는 개인에 대해서 당장 필요한 것에 대하여 당장 뽑을 수 있는대로 뽑을려고 하지 사람들에 대한 교육과 회사차원의 지원은 빈약합니다. 알아서 개인보고 하라는 것이지요. 이에 대해서는 개인의 발전이 개인만의 발전이 아니라 회사전체에 대해서도 도움이 된다는 생각을 가져야 합니다. 그래야 "장기적"으로 도움이 될 수 있는 것이지요.

 

또하나가 사회전반적으로 장기간의 노동시간이라는 문제가 있습니다. 최근 주5일 근무제 논의하고 있는데 노동시간이라는것과 삶의 질은 깊은 연관을 가지고 있습니다. 사람이 그만큼 여유가 있을수록 다른 것에 대해서도 관심을 가질 수도 있고 개인적인 관심사에 대해서도 해볼수가 있겠지요. 물론 개인적으로 힘든 상황에서도 열심히 하는 사람들이 있지만 이는 특정한 개인에게 해당하는 것이지 일반적인 이야기는 아닙니다. 이걸 절실히 느끼는 것이 외국의 엔지니어들 취미를 보았을때 느낍니다. 그사람들 보면 취미가 스키, 등산 등등 아주 다양한데 이건 우리나라처럼 밤새 24시간 일해야 훌륭한 사람이다라는 문화에서는 나오기가 힘든 것이지요. (노동시간이 길어진다고 해서 반드시 효율성은 높은 것은 아니며 이에 대한 통계들은 국내에서도 노동시간단축과 관련하여 나오는 것들이 많이 있습니다. 또한 우리보다 못하다고 하는 후진국들보다도 우리나라는 더 긴 노동시간을 가지고 있지요)

 

우리나라사람들이 한글문서화하는 것말고 전세계적으로 개발 프로젝트에 참여하는 비율이 낮습니다. 이를 무조건 영어탓으로만 할 수 있는 것은 아니고 우리나라 개발자들에게 얼마나 회사일만 아니라 다른 것을 할 수 있는 여유가 있는가?라고 생각해보지요. 훌륭한 개발자들이 없어서가 아니라 그만큼 삶 자체가 빡빡하고 정신이 없기 때문입니다.

 

최근 여성에 대한 성차별에 대하여 법도 만들어지고 있습니다. 과거보다는 진일보하는 것이지요. 외국의 사례들을 보면 일과시간이후에 교육이 진행되는 것도 성차별이라고 판단을 하는 경우가 있습니다. 이는 일반적으로 여성들이 일과시간이후에는 가사노동을 하게 되는 경우가 많은데 일과시간이후에 교육을 진행하게 된다면 여성들은 불참할 가능성이 높아지고 그렇다면 예를 들어 인사고과등에서 불리한 경우가 생길 것입니다. 그래서 이런 것을 성차별이라고 하는 것이지요.

 

근데 저도 기본기가 중요하다고 하면서도 막상 거기에 투자는 잘 못하네요. JSP 책을 하나 사서 보려고 하지요. 상세히는 몰라도 그냥 분위기나 파악하려고. 쯔압~

문태준(taejun)님이 2001-12-18 14:19에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2295송년 번개, 즐거웠습니다~ [12]
최영봉
2001-12-21
2079
2294Cross Tabulation <= 이게 한글로 뭘까요? [4]
허정수
2001-12-20
2228
2292괜찮은 음악 사이트.
허정수
2001-12-19
2186
2291[단상] IT와 기본기 [6]
문태준
2001-12-17
2459
2289정수의 취직을 축하한다
문태준
2001-12-17
2016
2290┕>Re: 감사합니다.~
허정수
2001-12-17 23:16:55
2055
2288[알림] 12. 20(목) 서울 송년맞이 번개모임 [13]
문태준
2001-12-17
2248
2287HanMir 에서 왕관이 붙었네요. [1]
정재익
2001-12-15
3295
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다