| 안녕하세요? 객체지향 이야기의 저자 전병선입니다. 많은 개발자들이 직면하고 있는 현재의 상황은 혼란스러움 그 자체입니다. C++ 와 자바 언어로 대표되던 프로그래밍 언어에 C# 과 Visual C Basic.NET 이란 언어가 새롭게 커다란 주목을 받고 있습니다. 윈도우 프로그래밍과 자바 프로그래밍이 주도하는 애플리케이션 프로그래밍에 닷넷 프레임웍을 기반으로 하는 윈도우 폼과 웹 폼 애플리케이션 프로그래밍이 도전장을 내밀었습니다. OM/DCOM 과 EJB 의 경쟁 구도를 갖는 분산 객체 기술 분야에 닷넷 플랫폼의 XML 웹 서비스가 새로운 강자로 떠오르고 있습니다. 이 변화의 시기에 여러분은 무엇을 공부하고 무엇을 준비해야 하나요? 이것을 결정하는 것은 결코 쉽지 않습니다. 저는 여러분들께 이 질문에 대한 해답을 제시하고자 이책을 썼습니다. 그 해답은 이들 기술의 혼란스러운 변화 속에서도 변하지 않는 것을 찾는 것입니다. RM리고 그것이 바로 "객체지향" 입니다. 이책은 크게 두개의 이야기로 구분됩니다. 첫번째는 객체지향의 개념을 이야기합니다. 많은 개발자들이 이 개념이 너무 어렵다고 이야기합니다. 그래서 생활 속에서 찾을 수 있는 예를 들어 나름대로는 가장 쉽게 설명했습니다. UML 을 사용하여 보이지 않는 개념을 눈으로 볼 수 있게 했습니다. C++, 자바, C#, Visual Basic.NET 언어에서 이 개념을 구현하는 방법을 제시했습니다. 이들 언어를 모두 사용한 것은 여러분에게 결코 또 다른 혼란스러움을 주기 위한 것이 아닙니다. 오히려 그 반대입니다. 아마 여러분은 이들 언어들이 모두 똑같은 방법으로 객체지향 개념을 구현하고 있는 것을 찾을 수 있을 것입니다. 결국 그 기반이 되는 개념이 같기 때문에 이들 언어들의 구현 방법도 같을 수 밖에 없는 것이지요. 서로에게는 약간의 차이점이 있습니다. 그 차이점만 알면 이들 언어를 모두 정복할 수 있는 것입니다. 두번째는 객체지향 개념을 활용한 기술들의 변천사를 이야기합니다. 윈도우 프로그래밍에서의 객체지향 개념의 도입, 너무나 객체지향적인 자바 언어에서의 객체지향 개념의 활용, COM/DCOM, CORBA, RMI, EJB 등 분산 객체 기술에서의 객체지향 개념의 실현, 그리고 마이크로소프트가 완성시킨 분산 객체 기술인 COM+ 와 닷넷 프레임웍. 이들 이야기를 자세히 설명하려한다면 도무지 책 한권으로는 역부족입니다. 이책에서 이들 기술들을 빠르게 짚어나간 것은 결국 숲을 보자는 것입니다. 이들 기술들에서 객체지향 개념이 어떻게 적용되었는지를 살펴봄으로써 지금 우리가 단단히 다져놓아야 할 기초가 바로 객체지향 개념임을 깨닫게 하는데 목적이 있습니다. 그래서 앞으로 어떤 새로운 기술들이 나와 우리를 혼란스럽게 한다고 해도 결코 당황하거나 두려워 하지 않게 하는 것이 이야기의 목적입니다. 또한 여러분이 이책을 자세히 읽어본다면 COM/DCOM, CORBA, RMI, EJB 등의 분산 객체 기술 사이의 유사점을 발견할 수 있을 것입니다. 또 서로의 약간의 차이점도 발견할 수 있습니다. 또 다시 그 유사점과 차이점을 알면 우리는 어떤 기술이든 자유자재로 사용할 수 있게 되는 것이지요. 그것이 두번째 이야기의 목적입니다. 이책은 거기에서 끝나지 않습니다. 객체지향 개념을 적용하는 시스템을 분석, 설계하기 위한 객체지향 모델링과 데이터 모델링에 대해서도 이야기합니다. 또한 여기에서도 이들 두가지 모델링 방법론에 대한 유사점과 차이점, 그리고 상호 보완성에 대해서도 이해할 수 있을 것입니다. 저는 의도적으로 객체지향 기술과 객체지향 모델링에 대해 세부적인 자세한 사항의 설명을 배제했습니다. 이들 기술의 세부 사항을 자세히 이야기한다면 오히려 이책을 읽는 사람들에게 커다란 혼란만을 가져다 줄 것이기 때문입니다. 분명히 사람이 이해하고 받아들일 수 있는 범위가 있습니다. 따라서 객체지향 개념의 추상화 원칙에 따라 필수적이고 중요한 사항의 이야기에만 집중하는 것이 이들을 이해하는데 보다 더 효과적이라고 생각했기 때문입니다. 하지만 그 기반이 되는 객체지향 개념에 대한 이야기는 그 어느 것보다도 상세하고 쉽게 설명하기 위해 최선을 다했습니다. 그것은 객체지향 개념에 대한 이해가 그것을 기반으로 하는 많은 기술들을 이해하는 열쇠가 되기 때문이라고 생각하기 때문입니다. 저는 앞으로 여러가지 책을 쓸 계획을 갖고 있습니다. 그리고 이들 책은 이책 "객체지향 이야기" 를 기반으로 하게 될 것입니다. 그중에서 Programming C# 과 Programming Visual Basic.NET 은 조만간 출간될 것입니다. 이들 책은 각각 C# 언어와 Visual Basic.NET 언어에 대해 자세히 설명합니다. 그리고 이들 언어를 사용하여 닷넷 프레임웍 안에서 윈도우 폼 애플리케이션을 구현하는 방법에 대해서도 설명합니다. ADO.NET 과 ASP.NET 을 사용하여 데이터베이스에 접근하고 웹 애플리케이션을 구현하는 방법에 대해서도 설명합니다. 그리나 이들 주제에 대해서는 별도로 Programming ADO.NET with SQL Server & Oracle 및 Programming ASP.NET 에서 보다 자세하게 설명할 예정입니다. 지금 현재는 "COM 이야기" 책을 쓰고 있습니다. COM 프로그래밍에 대한 전반적인 개념을 설명하는 책이지요. 다시 Programming COM+ with ATL 에서 보다 세부적으로 COM+ 기술을 구현하는 방법을 설명하게 될 것입니다. 아무쪼록 "객체지향 이야기"가 여러분에게 커다란 도움이 되기를 바랍니다. 이책을 읽는 중에 궁금한 사항이 있으면 제게 메일(bsjun9@kornet.net)을 주십시오. 여러분이 보다 편안하게 이해할 수 있도록 도와드리겠습니다. 감사합니다. |
| * 총평 저자분의 말씀과 같이 다양하고 해박한 지식을 바탕으로 전체적으로 OO개념을 쉽게 서술하려고 노력한 흔적이 보임. 특히 최근 관심있는 OO관련 언어들간의 비교는 중급이상의 프로그래머에게 언어들간의 OO개념의 차이점을 쉽게 이해할 수 있게 해줌. 다만 내용의 깊이나 정확성에 있어서는 약간의 부족함이 있음. 실제로 OO 시스템을 전공하는 전문가입장에서는 한번 보고 처박아 버릴 내용의 수준일 수도 있음 * 버그리포트 제1장에서 7장까지 중대한 오류 (P227) 1. operator == 연산자의 리턴타입 오류 const String&가 아닌 String&으로 바꾸어야 함 2. s3 = "I love you."; 를 위해 const String& operator=(const char* s); 를 별도로 정의하여야 한다고 하였는데 이에 대해서는 이미 conversion ctor인 String(const char* s);이 제공되고 있기 때문에 operator=(const String & s);가 역할 수행합니다. (P230~238)까지 String 클래스의 각종 연산자 중복의 리턴타입에서 const qualifier를 없애야 함 * return by value인경우 const 의미 없음 * 대입연산자나 복합대입연산자의 경우 receiver가 변경되므로(return *this) String&으로 바꾸어야 함(const T&는 readonly 역할을 함). |
| 위의 질문을 알기위해서 한번쯤은 읽어볼만한 책인듯 싶습니다. 물론 잘모르는 사람을 대상으로 하는 책이죠. 개인적으로는 C++문법을 어느정도 알고있다고 생각하는데 이 책을 읽으면서 그것들을 정리하고 C++의 무엇이 객체지향이고 어떻게 하면 객체지향인지를 어느정도 알수있었습니다. 하지만 7장이후의 뒷부분의 내용은 너무 많은 내용을 담을려고 한것이 아닌가 싶습니다. 내용 자체가 이제 시작하는 사람을 대상으로 하는데 뒷부분의 내용은 처음 시작하는 사람이 다 다뤄보기에는 너무 방대한듯 싶습니다. 물론 내용은 어렵지 않습니다. 하지만 그것이 방대할 뿐만이 아니라 그정도로 한번 해보것 뿐인 내용은 별도움도 안될것 같습니다. 그래도 이책은 저자가 쉽게쉽게 그리고 깔끔하게 정리되어 있어 한번쯤 읽어보면서 내용을 정리해보는것이 좋을듯 싶습니다. 책에는 언어를 몰라도 상관이 없다고 하지만 그것은 무리고 알고있는 상태에서 보는것이 많은 도움이 될것같습니다. 뒤에 나오는 COM+ 등등의 내용도 한번도 안본것 보다는 어느정도 배운사람이 보는것이 더욱 도움이 될듯합니다. 어쨋든 한번쯤 읽어볼만한 책이라고 생각합니다. |
| 정말 아무생각없이 한번 읽으려면 괜찮겠지만, 먼가 얻어보려고 생각하신다면 다른 전문서적을 찾는게 좋을거 같습니다. 이것저것 쓸데없는거 까지 조금씩 건드려놔서 정신만 산만하고 얻는거 하나 없는거 같아여. 저자 한테 미안 하지만 별로 좋은책은 아닌거 같네여 |
| 지금 한번 읽고 잘 이해가 안되 또읽고 있지만.. 그동안 어느 언어를 사용할지...객체지향은 뭔지 체계적으로 몰라.. 상당히 고민도 많이 했는데.. 속시원하게 풀어주는 군여... 저자의 말대로...... 자기가 낸 13가지의 책들은 이책을 내기위한 발판이라는말.....처럼... |
| 초보자라면 객체지향이라는 개념을 정립하기에, 개발자라면 OOP가 서로 다른 시스템에서 어떻게 구현되는지를 공부하기에 더할 나위 없이 좋은 책입니다. 또한, 소설처럼 쉽고 재밌게 읽을 수 있기 땜에, 지하철등에서 짬짬이 읽기에도 좋은 책이네요. 적극 추천합니다~~ |
| C++책 여러권을 읽어보고, 자바책 조금 읽어봤지만 제대로 된 객체지향을 이해 할수 없었습니다 그리고 많은 C++책에서 C++이 객체지향언어라 떠들고 있었지만 객체지향이 뭔지는 제대로 설명해주고 있지 못합니다 객체지향 개념에 상속이니 다형성이니 하며 언어로 구현을 하는 것을 자주 보게 되지만 언어적으로 어떻게 구현되는지만 설명할뿐 제대로 된 객체지향에 대해서는 설명을 해주지 못하는느낌이 들었습니다 다행스럽게도 이책은 한 언어에 국한되지 않고 객체지향이라는 개념만을 두고 설명을 합니다 따라서 C#,자바,VB.net,C++으로 객체지향 개념을 설명하기 때문에 언어에 국한되지 않은 객체지향 개념을 이해할수 있었습니다 게다가 UML로 가시적으로 보여주며 , 매우 쉽게 설명되어 있기때문에 객체지향 언어를 한가지라도 배운 사람은 쉽게 읽을수 있습니다 다만 중반이후 컴포넌트 기반이 나오는 부분부터는 매우 어려워집니다 인터페이스라는 걸 이용해서 객체지향으로 프로그래밍하는 부분을 다루는데 ,C++이나 자바를 해본 분들이라면 , 많이 들어본 COM/DCOM,COM+ 혹은 J2EE ,닷넷를 설명합니다 여기서는 이분야에 관한 전문서적을 참고해야 할듯 합니다 ,제 생각이지만 필자가 말하고자 하는것은 단지 이런게 있다는것을 말해주려고 하는듯 하지만 그 개념을 모르는 사람에게는 너무나도 힘든부분이었습니다 대충 이런게 있구나 하면서 넘어가면 좋을듯 싶습니다 그리고 그후에 객체지향 설계하는분이 나오는데 이부분도 생소해서 좀 어렵웠지만 , use case 라든지 UML로 설계하는 부분은 상당히 유익했습니다 프로젝트는 어떻게 하는지도 알수 있었죠 간단하게 요약해 말하자면, 이책은 중반까지는 객체지향에 대해 쉽게 설명하고 있지만 , 중반이후부터는 초보자가 보기에는 조금 버겁습니다 , 하지만 끝까지 다 읽어볼것을 권하고 싶습니다 "이런것이 있구나"나만 알아도 건질것은 있는것이죠, [하지만 고수분들이 보기에는 너무 쉽게 느껴질거 같습니다 , 초급이나 이제 중급으로 가시는분들에게만 추천] 그리고 항상 이런 절정의 고수들이 하는 말씀은 어느 한 언어나 툴에 종속되지 말라고 권하는군여. 언어나 툴을 떠나 객체지향 프로그래머가 되라는.... 그럼 |
| 대충 쭉 읽어 보았는데, 알만한 사람은 이미 다하는 뻔한 내용 이군요 객체지향을 처음 접한다면 한번 읽어 볼만 하지만 사긴 아까운 책입니다. 쓸데 없이 CD부록이나 껴놓고 |