늙은 개와 새로운 재주
뉴질랜드, 웰링톤에 사는 Gordon J Milne의 서평, 2002년 1월 15일
실의에 잠겨 있던 시절에 이 책을 알게 됐다. 12년이 넘도록 소프트웨어 분야에서 일하다 보니 언제부턴가 나 자신이 ‘요즘’ 코딩 기법에 대해 전혀 아는 것이 없는 화석 같은 존재처럼 느껴졌다. 그런 나에게 이 책은 자신감을 되찾아 주었다. 나는 여전히 잘 알고 있었다. 내가 무엇을 얘기해 왔으며 그 동안의 경험이 오늘날의 소프트웨어 환경과도 관련이 있다는 사실을. 저자들에게 어떻게 감사해야 좋을지 모르겠다.
이 책에서 가장 마음에 드는 부분은 실세계를 바탕으로 하고 있다는 점이다. 그저 그렇게 되어야 옳다는 이유만으로 뜬구름 잡는 공상을 써내려 간 것이 아니라 저자 스스로가 경험으로부터 그 가치를 깨닫게 된 것만을 다루고 있다. 이 책에 많은 부분 ― 특히 나 자신이 취약한 분야에서 크게 공감하지 않을 수 없었다.
여러 가지로 이 책은 내 오랜 신념(예를 들어 커맨드라인도 개발자에게 여전히 쓸모 있는 것이라는 사실)에 확신을 더해 주었다. 그러나 문서화나 메타프로그래밍에 대해 더 많은 생각을 하도록 부추기는 역할도 했다. 예전에도 그런 논제를 가끔씩 생각해 보기는 했지만 Andy와 Dave는 그런 기법을 내가 하는 일에도 적용할 수 있으며, 전반적으로 주어진 업무량을 줄일 수 있다는 점을 깨우쳐 주었다. 당시에는 맡은 작업을 즉각 마무리하는 것이 무엇보다 중요하게 보였기 때문에 언제나 메타프로그래밍과 같은 기법을 피했다.
이 책을 어떻게 더 칭찬해야 좋을까. 이 책은 Steve McConnell의 『Code Complete』과 다른 방식으로 소프트웨어 작업의 실용성을 논한다. 내 생각에는 수다스런 문체에 차이점이 있다고 생각한다. 『Code Complete』은 여러 면에서 탄복할 역작이지만, 『The Pragmatic Programmer』에 비하면 훨씬 무뚝뚝하다. 그래서 엔지니어라면 두 권의 책을 모두 읽어보라 권하고 싶다. 『Code Complete』은 결점을 찾기 어려울 만치 기본적인 논제(C 코드에서 괄호 위치에 대한 얘기를 제외하면)를 다루는 반면, TPP는 무엇을 하고 무엇을 하지 말아야 하는지, 좀더 폭넓은 환경에서 업무의 실용성에 뿌리를 두고 얘기를 풀어간다.
진심으로 TPP를 누구에게나 권하고 싶다. 특히 몇 년간 소프트웨어 개발 작업을 해왔던 사람에게 이 책을 추천한다.
(Milne 씨처럼) 좋은 엔지니어가 되고자 했던 처음의 신념이 희미해질 수도 있는 법이다(그러나 걱정할 일은 아니다). 세월은 누구나 지치게 만든다. 특히 이 분야에서는 몇 달만 쉬어도 격세지감을 느낄 수 있다. 그러나 풀죽어 있을 여유가 있다면 차라리 TPP라도 읽어 보는 것이 낫다. 오히려 이런 책을 통해 자신의 약점을 정확하게 발견하게 될지도 모른다. 자신이 지치게 된 진짜 이유가 알고 보니 이 분야의 유별난 특성 때문이 아니라 그저 매일 매일 해오던 작업 방식이나 사고 방식의 결함에서 비롯된 것일 수도 있지 않겠는가. 자신감이란 없던 것을 가져와 새롭게 만들어내는 것이 아니라 있던 것을 찾아 새롭게 발견하는 것이기 때문이다.
이 책의 서문 첫 문장에도 나와 있듯이 ‘이 책으로 여러분은 더 나은 프로그래머가 될 수 있을 것이다.’ 이 책을 읽어 볼 기회를 놓쳐버린다면, 사무실 여기 저기 쌓여가는 기술 서적이 점차 쓰레기로 변해갈 수도 있다. 잠시 숨을 돌리고 널브러져 있는 그 모든 책을 내려다 보자. 뒤쳐질 것 같은 위기감에 덜컥 구입했던 그 많은 책이 기술자로서의 자신에게 얼마나 평안을 가져다 주었는가. 진정 그 책들의 두터움만큼 스스로의 기술과 경험도 같이 부풀어 올랐던가. 열심히 끌어다 모아둔 자료만큼 더 나은 엔지니어가 됐는가. 그리고 스스로의 일을 충분히 잘 해내고 있다고 확신하는가. 아니라면 이제라도 돌이켜 볼 때가 되지 않았을까(하나 더 있다. 그 무엇보다 중요한 것, 여전히 프로그래밍이 조금이라도 즐거운 일인가).
이 책의 첫 장에서는 프로그래머로서 우리 ‘자신이 매일 매일 작업하는 방식을 다시 꼼꼼히 훑어보라.’는 충고를 아끼지 않는다. 어떤 부분은 너무 당연하고 어떤 부분은 받아들이기에 너무 억지스럽다. 그러나 어느 한 가지도 현실을 벗어나서 말하기 좋으라고 지어낸 얘기가 없다.
프로그래밍에는 법칙(그런 것이 있다손 치면)이랄 만한 것이 거의 없다. 그래서 보통 ‘그랬으면 싶은 법칙’에 맞추어 이런 저런 방법론을 그려낸다. 그렇게 하면 글쓰기에 좋을지는 몰라도 실제로 잘 적용되지는 않는다. 그 많은 방법론 서적에서 계속 잘못하고 있는 부분이 바로 그것이다.
… 중략 …
이 책의 철학은 독자의 의식 속으로 서서히 스며들어 독자가 가진 것과 하나가 된다. 훈계하거나 설교하지 않는다. 그저 무엇이 잘 돌아가는지만 말해줄 뿐이다. 그러나 그렇게 해서 더 많은 목적을 이루어낸다. 이 책은 아름답다. 철학을 내포하고 있지만, 겉멋을 부리지 않기 때문에. ―워드 커닝엄의 추천사에서
고전 아닌 고전
TPP는 출판된 지 채 3년이 못된 책이니 나이로만 치자면 고전이라 할 수 없다. 그러나 내용만큼은 아주 케케묵은 고전이다. 사실 여러 방법론 책을 한 데 모아다 비교해 봐도 이 책만큼 새로운 용어나 이론을 소개하지 않는 책도 드물다. 이런 단점을 꼬집어 이 책의 가치를 부정하는 사람도 더러 있다(필자가 이 빳빳한 새 책을 ‘고전을 찾아서’란 기획에 버젓이 소개하는 이유가 이 때문이다. Milne 씨처럼 해묵은 기술자가 이 책 속에서 자신감을 되찾게 된 것도 비슷한 맥락이라 하겠다).
서문은 좋다, 2003년 2월 4일
Irvine, CA USA에서 Paul Epps
나는 서문을 읽은 후에 서문과 첫 장에 담긴 좋은 주제를 찾아볼 목적으로 이 책을 샀다. 사실 그 다음에 이어지는 모든 내용은 다른 입문 서적에서 쉽게 찾아볼 수 있는 것이었는데, 저자들은 마치 5분 전에 처음 그런 이치를 발견한 사람처럼 난리 법석을 떤다. 결국 이 책의 분위기는 지나치게 현학적이고, 다루는 내용은 새로울 게 전혀 없다.
사실이다. TPP에서 참신하고 혁신적인 내용이라고는 찾아볼 수가 없다. 그러나 이 책은 경험의 진실을 말하는 책이지, 결코 저명한 학자가 주창하는 이론을 엄밀하게 논하는 책이 아니다. 어떤 이론이 제 아무리 정교하고 신선하다고 해도 경험의 증거가 뒷받침되지 않으면 설득력이 없는 법이다. 만일 비슷한 내용을 어느 연구실의 젊은 학자가 썼다면 이토록 호응이 대단할 수 있었을까?
솔직히 말해 TPP에서 언급하는 프로그래밍 이론은 전문 연구기관의 초보 연구원 수준에도 미치지 못할 만큼 얄팍하다. 그러므로 필자가 생각하기에 이 책을 선택한 독자는 새로운 이론이나 기법을 배우고자 하는 것이 아니라 이미 귀에 못이 박히도록 들어온 교과서 속의 이론들이 실제로도 진정 살아 숨쉬고 있는지 확인하고 싶어서 기꺼이 시간을 투자하는 것이다.
정히 TPP의 고루한 내용을 비판하고 들자면 맘에 들지 않는 부분이 한두 가지가 아니다. 특히, 3장은 곰팡내가 풀풀 날 정도다. 여기서는 난데없이 ‘텍스트’ 데이터와 유닉스 커맨드라인이 실제로 소프트웨어 개발 과정의 생산성을 보장하는 프로그래밍 도구라고 설명한다. 심지어 윈도우에서도 유닉스 호환 환경을 쓸 수 있도록 Cygwin과 같은 툴을 써보는 것이 어떠냐고 제안하기까지 한다. 그러나 셸을 가지고 놀아본 적도 없고 한 프로그램에서 필요한 모든 기능을 끌어다 쓸 수 있는 통합 개발 환경이 개발 경험의 전부인 독자들에게는 선뜻 받아들이기 어려운 내용일 가능성이 높다. 아니, 왜 만지기 쉬운 환경을 마다하고, 덜떨어져 보이는 인터프리터 환경을 다시 배워야 하는가? 저자들은 자신들이 유닉스 프로그래밍 환경에 익숙해져 있기 때문에 독자들도 그 유산을 이어받아야 한다고 고집을 부리는 것이 아닌가? 그렇다면 저자들이 말하는 실용주의란 그저 고루하고 편협한 경험을 되씹어 내보이는 넋두리에 불과한 것이 아닌가?
그런 오해가 아무래도 풀어지지 않는다면 잠시 책을 덮고 저자들의 본심이 무엇인지 골똘히 생각해 봐야 한다. 얼마나 다양한 환경에서 얼마나 많은 프로젝트를 수행했는지 따지자면, 아마 대부분의 독자들은 그 경험의 양과 질이 TPP 저자들에 미치지 못할 것이다. 현 시대의 프로그래밍 도구가 생산성을 향해 어떻게 진보해 왔는지는 저자들이 더 잘 알고 있다(그들이 오히려 산 증인이다). 그리고 지금이 ‘셸과 텍스트’의 시대가 아니라는 것은 이 분야의 누구라도 모를 리 없는 사실인데, 프로그래밍의 실용주의를 논하는 이들이 시대를 역행하는 철학을 우겨댈 만큼 어리석을까? 저자들이 우리에게 일깨워 주고자 하는 것은 ‘균형 감각’이다. 지금이 ‘데스크톱과 멀티미디어’의 시대이기 때문에 오해를 감수하고서라도 ‘셸과 텍스트’의 가치를 설명하고자 하는 것이다. ‘폭넓은 사고에서 비롯된 균형 잡힌 경험’이야말로 실용주의 엔지니어의 가장 중요한 자격이란 사실을 애매모호하지 않게 증명하고자 했을 따름이다.
TPP의 외전, 71번째 팁!
이 책은 제목 그대로 프로그램을 만드는 모든 이에게 ‘행동하는 실용주의 철학’을 가르치려 한다. 편지를 한 통 보내는 습관에서부터, 끝없는 대화로 동료와 호흡을 맞추는 일까지, 흔히 소프트웨어 개발이라 하면 떠올리게 되는 그 모든 고통에 다양하고 적절한 치료제를 알려준다. 하지만 사전처럼 딱딱하고 메마른 이론서를 들여다보듯 이마를 찌푸리고 끙끙대며 읽을 필요는 없겠다. 이 책에는 재치 있는 유머와 통쾌한 글귀가 가득하다. 결코 쉽게 눈을 돌릴 수는 없을 것이다.
필자가 70번째 팁까지 한 번에 모조리 읽고 난 다음(사실은 여러 번 읽었다), 71번째 팁이 실수로 빠졌다는 것을 알게 됐다. 혹시 아직 찾지 못했다면 얼른 적어두라.
정리 | 송우일 | wooil@korea.cnet.com
뉴질랜드, 웰링톤에 사는 Gordon J Milne의 서평, 2002년 1월 15일
실의에 잠겨 있던 시절에 이 책을 알게 됐다. 12년이 넘도록 소프트웨어 분야에서 일하다 보니 언제부턴가 나 자신이 ‘요즘’ 코딩 기법에 대해 전혀 아는 것이 없는 화석 같은 존재처럼 느껴졌다. 그런 나에게 이 책은 자신감을 되찾아 주었다. 나는 여전히 잘 알고 있었다. 내가 무엇을 얘기해 왔으며 그 동안의 경험이 오늘날의 소프트웨어 환경과도 관련이 있다는 사실을. 저자들에게 어떻게 감사해야 좋을지 모르겠다.
이 책에서 가장 마음에 드는 부분은 실세계를 바탕으로 하고 있다는 점이다. 그저 그렇게 되어야 옳다는 이유만으로 뜬구름 잡는 공상을 써내려 간 것이 아니라 저자 스스로가 경험으로부터 그 가치를 깨닫게 된 것만을 다루고 있다. 이 책에 많은 부분 ― 특히 나 자신이 취약한 분야에서 크게 공감하지 않을 수 없었다.
여러 가지로 이 책은 내 오랜 신념(예를 들어 커맨드라인도 개발자에게 여전히 쓸모 있는 것이라는 사실)에 확신을 더해 주었다. 그러나 문서화나 메타프로그래밍에 대해 더 많은 생각을 하도록 부추기는 역할도 했다. 예전에도 그런 논제를 가끔씩 생각해 보기는 했지만 Andy와 Dave는 그런 기법을 내가 하는 일에도 적용할 수 있으며, 전반적으로 주어진 업무량을 줄일 수 있다는 점을 깨우쳐 주었다. 당시에는 맡은 작업을 즉각 마무리하는 것이 무엇보다 중요하게 보였기 때문에 언제나 메타프로그래밍과 같은 기법을 피했다.
이 책을 어떻게 더 칭찬해야 좋을까. 이 책은 Steve McConnell의 『Code Complete』과 다른 방식으로 소프트웨어 작업의 실용성을 논한다. 내 생각에는 수다스런 문체에 차이점이 있다고 생각한다. 『Code Complete』은 여러 면에서 탄복할 역작이지만, 『The Pragmatic Programmer』에 비하면 훨씬 무뚝뚝하다. 그래서 엔지니어라면 두 권의 책을 모두 읽어보라 권하고 싶다. 『Code Complete』은 결점을 찾기 어려울 만치 기본적인 논제(C 코드에서 괄호 위치에 대한 얘기를 제외하면)를 다루는 반면, TPP는 무엇을 하고 무엇을 하지 말아야 하는지, 좀더 폭넓은 환경에서 업무의 실용성에 뿌리를 두고 얘기를 풀어간다.
진심으로 TPP를 누구에게나 권하고 싶다. 특히 몇 년간 소프트웨어 개발 작업을 해왔던 사람에게 이 책을 추천한다.
(Milne 씨처럼) 좋은 엔지니어가 되고자 했던 처음의 신념이 희미해질 수도 있는 법이다(그러나 걱정할 일은 아니다). 세월은 누구나 지치게 만든다. 특히 이 분야에서는 몇 달만 쉬어도 격세지감을 느낄 수 있다. 그러나 풀죽어 있을 여유가 있다면 차라리 TPP라도 읽어 보는 것이 낫다. 오히려 이런 책을 통해 자신의 약점을 정확하게 발견하게 될지도 모른다. 자신이 지치게 된 진짜 이유가 알고 보니 이 분야의 유별난 특성 때문이 아니라 그저 매일 매일 해오던 작업 방식이나 사고 방식의 결함에서 비롯된 것일 수도 있지 않겠는가. 자신감이란 없던 것을 가져와 새롭게 만들어내는 것이 아니라 있던 것을 찾아 새롭게 발견하는 것이기 때문이다.
이 책의 서문 첫 문장에도 나와 있듯이 ‘이 책으로 여러분은 더 나은 프로그래머가 될 수 있을 것이다.’ 이 책을 읽어 볼 기회를 놓쳐버린다면, 사무실 여기 저기 쌓여가는 기술 서적이 점차 쓰레기로 변해갈 수도 있다. 잠시 숨을 돌리고 널브러져 있는 그 모든 책을 내려다 보자. 뒤쳐질 것 같은 위기감에 덜컥 구입했던 그 많은 책이 기술자로서의 자신에게 얼마나 평안을 가져다 주었는가. 진정 그 책들의 두터움만큼 스스로의 기술과 경험도 같이 부풀어 올랐던가. 열심히 끌어다 모아둔 자료만큼 더 나은 엔지니어가 됐는가. 그리고 스스로의 일을 충분히 잘 해내고 있다고 확신하는가. 아니라면 이제라도 돌이켜 볼 때가 되지 않았을까(하나 더 있다. 그 무엇보다 중요한 것, 여전히 프로그래밍이 조금이라도 즐거운 일인가).
이 책의 첫 장에서는 프로그래머로서 우리 ‘자신이 매일 매일 작업하는 방식을 다시 꼼꼼히 훑어보라.’는 충고를 아끼지 않는다. 어떤 부분은 너무 당연하고 어떤 부분은 받아들이기에 너무 억지스럽다. 그러나 어느 한 가지도 현실을 벗어나서 말하기 좋으라고 지어낸 얘기가 없다.
프로그래밍에는 법칙(그런 것이 있다손 치면)이랄 만한 것이 거의 없다. 그래서 보통 ‘그랬으면 싶은 법칙’에 맞추어 이런 저런 방법론을 그려낸다. 그렇게 하면 글쓰기에 좋을지는 몰라도 실제로 잘 적용되지는 않는다. 그 많은 방법론 서적에서 계속 잘못하고 있는 부분이 바로 그것이다.
… 중략 …
이 책의 철학은 독자의 의식 속으로 서서히 스며들어 독자가 가진 것과 하나가 된다. 훈계하거나 설교하지 않는다. 그저 무엇이 잘 돌아가는지만 말해줄 뿐이다. 그러나 그렇게 해서 더 많은 목적을 이루어낸다. 이 책은 아름답다. 철학을 내포하고 있지만, 겉멋을 부리지 않기 때문에. ―워드 커닝엄의 추천사에서
고전 아닌 고전
TPP는 출판된 지 채 3년이 못된 책이니 나이로만 치자면 고전이라 할 수 없다. 그러나 내용만큼은 아주 케케묵은 고전이다. 사실 여러 방법론 책을 한 데 모아다 비교해 봐도 이 책만큼 새로운 용어나 이론을 소개하지 않는 책도 드물다. 이런 단점을 꼬집어 이 책의 가치를 부정하는 사람도 더러 있다(필자가 이 빳빳한 새 책을 ‘고전을 찾아서’란 기획에 버젓이 소개하는 이유가 이 때문이다. Milne 씨처럼 해묵은 기술자가 이 책 속에서 자신감을 되찾게 된 것도 비슷한 맥락이라 하겠다).
서문은 좋다, 2003년 2월 4일
Irvine, CA USA에서 Paul Epps
나는 서문을 읽은 후에 서문과 첫 장에 담긴 좋은 주제를 찾아볼 목적으로 이 책을 샀다. 사실 그 다음에 이어지는 모든 내용은 다른 입문 서적에서 쉽게 찾아볼 수 있는 것이었는데, 저자들은 마치 5분 전에 처음 그런 이치를 발견한 사람처럼 난리 법석을 떤다. 결국 이 책의 분위기는 지나치게 현학적이고, 다루는 내용은 새로울 게 전혀 없다.
사실이다. TPP에서 참신하고 혁신적인 내용이라고는 찾아볼 수가 없다. 그러나 이 책은 경험의 진실을 말하는 책이지, 결코 저명한 학자가 주창하는 이론을 엄밀하게 논하는 책이 아니다. 어떤 이론이 제 아무리 정교하고 신선하다고 해도 경험의 증거가 뒷받침되지 않으면 설득력이 없는 법이다. 만일 비슷한 내용을 어느 연구실의 젊은 학자가 썼다면 이토록 호응이 대단할 수 있었을까?
솔직히 말해 TPP에서 언급하는 프로그래밍 이론은 전문 연구기관의 초보 연구원 수준에도 미치지 못할 만큼 얄팍하다. 그러므로 필자가 생각하기에 이 책을 선택한 독자는 새로운 이론이나 기법을 배우고자 하는 것이 아니라 이미 귀에 못이 박히도록 들어온 교과서 속의 이론들이 실제로도 진정 살아 숨쉬고 있는지 확인하고 싶어서 기꺼이 시간을 투자하는 것이다.
정히 TPP의 고루한 내용을 비판하고 들자면 맘에 들지 않는 부분이 한두 가지가 아니다. 특히, 3장은 곰팡내가 풀풀 날 정도다. 여기서는 난데없이 ‘텍스트’ 데이터와 유닉스 커맨드라인이 실제로 소프트웨어 개발 과정의 생산성을 보장하는 프로그래밍 도구라고 설명한다. 심지어 윈도우에서도 유닉스 호환 환경을 쓸 수 있도록 Cygwin과 같은 툴을 써보는 것이 어떠냐고 제안하기까지 한다. 그러나 셸을 가지고 놀아본 적도 없고 한 프로그램에서 필요한 모든 기능을 끌어다 쓸 수 있는 통합 개발 환경이 개발 경험의 전부인 독자들에게는 선뜻 받아들이기 어려운 내용일 가능성이 높다. 아니, 왜 만지기 쉬운 환경을 마다하고, 덜떨어져 보이는 인터프리터 환경을 다시 배워야 하는가? 저자들은 자신들이 유닉스 프로그래밍 환경에 익숙해져 있기 때문에 독자들도 그 유산을 이어받아야 한다고 고집을 부리는 것이 아닌가? 그렇다면 저자들이 말하는 실용주의란 그저 고루하고 편협한 경험을 되씹어 내보이는 넋두리에 불과한 것이 아닌가?
그런 오해가 아무래도 풀어지지 않는다면 잠시 책을 덮고 저자들의 본심이 무엇인지 골똘히 생각해 봐야 한다. 얼마나 다양한 환경에서 얼마나 많은 프로젝트를 수행했는지 따지자면, 아마 대부분의 독자들은 그 경험의 양과 질이 TPP 저자들에 미치지 못할 것이다. 현 시대의 프로그래밍 도구가 생산성을 향해 어떻게 진보해 왔는지는 저자들이 더 잘 알고 있다(그들이 오히려 산 증인이다). 그리고 지금이 ‘셸과 텍스트’의 시대가 아니라는 것은 이 분야의 누구라도 모를 리 없는 사실인데, 프로그래밍의 실용주의를 논하는 이들이 시대를 역행하는 철학을 우겨댈 만큼 어리석을까? 저자들이 우리에게 일깨워 주고자 하는 것은 ‘균형 감각’이다. 지금이 ‘데스크톱과 멀티미디어’의 시대이기 때문에 오해를 감수하고서라도 ‘셸과 텍스트’의 가치를 설명하고자 하는 것이다. ‘폭넓은 사고에서 비롯된 균형 잡힌 경험’이야말로 실용주의 엔지니어의 가장 중요한 자격이란 사실을 애매모호하지 않게 증명하고자 했을 따름이다.
TPP의 외전, 71번째 팁!
이 책은 제목 그대로 프로그램을 만드는 모든 이에게 ‘행동하는 실용주의 철학’을 가르치려 한다. 편지를 한 통 보내는 습관에서부터, 끝없는 대화로 동료와 호흡을 맞추는 일까지, 흔히 소프트웨어 개발이라 하면 떠올리게 되는 그 모든 고통에 다양하고 적절한 치료제를 알려준다. 하지만 사전처럼 딱딱하고 메마른 이론서를 들여다보듯 이마를 찌푸리고 끙끙대며 읽을 필요는 없겠다. 이 책에는 재치 있는 유머와 통쾌한 글귀가 가득하다. 결코 쉽게 눈을 돌릴 수는 없을 것이다.
필자가 70번째 팁까지 한 번에 모조리 읽고 난 다음(사실은 여러 번 읽었다), 71번째 팁이 실수로 빠졌다는 것을 알게 됐다. 혹시 아직 찾지 못했다면 얼른 적어두라.
정리 | 송우일 | wooil@korea.cnet.com
"Development" 카테고리의 다른 글
- 바른 프로그래밍을 위한 고수의 조언 (0)2006/01/07
- 개발 언어를 선택하는 5가지 기준 (0)2005/10/12
- 「The Pragmatic Programmer : From Journeyman to... (0)2005/05/29
- 「The Pragmatic Programmer : From Journeyman to... (0)2005/05/29
- AOP를 향하여, 닷넷 프록시 - 4 (0)2005/05/29

수안이의 컴퓨터 연구실



Leave your greetings.