30여 년간 현업에서 개발자와 아키텍트, 컨설턴트로 다양한 프로젝트를 수행하였으며 30여 권의 저서와 7권의 번역서를 출간하고 폭 넓은 독자 층을 갖고 있는 베스트 셀러 저자다.
금융, 제조, 조선, 통신, 국방, 정부 연구 기관 등 다양한 도메인 분야에서 아키텍트이자 컨설턴트로 프로젝트를 수행하였으며, 특별히 SOA 전문가로서 조달청 차세대 통합 국가전자조달시스템 구축 사업 서비스 모델링과 KT N-STEP SOA 진단 컨설팅 등의 프로젝트를 수행하였다.
대표적인 저서로는 전병선의 객체지향 이야기와 SOA, What & How, CDB, What & How, All-in-One Java 애플리케이션 개발, UML 분석 설계 실무, 나는 개발자다 등이 있다. 이러한 지식와 노하루를 바탕으로 최근에는 막 개발자와 프로그래머로서 첫걸음을 시작하는 사람들이 실무 프로젝트에서 작업을 할 수 있을 만큼의 능력을 갖출 수 있도록 핵심 지식과 기술을 묶어 다섯 권의 책을 출간하였다.
또한 이들 책을 교재로 온라인 강의 사이트(www.realdev-learning.com)에서 체계적인 강의를 제공하고 있으며, 이러한 노력은 자바에서 닷넷으로, 객체지향 언어에서 함수형 언어로, 컴포넌트에서 마이크로서비스로, 모노리식 애플리케이션에서 반응형 분산 컴퓨팅 분야로 이동하면서 끊임 없이 새로운 기술과 언어에 관한 저술과 강의 할동을 계속 이어갈 예정이다.
유튜브(www.youtube.com/@realdev.learning)에서 독자들과의 소통에도 힘쓰고 있다.
안녕하세요? 객체지향 이야기의 저자 전병선입니다.
많은 개발자들이 직면하고 있는 현재의 상황은 혼란스러움 그 자체입니다. 이 혼란의 시기에 여러분은 무엇을 공부하고 무엇을 준비해야 하나요? 이것을 결정하는 것은 결코 쉽지 않습니다.
저는 여러분들께 이 질문에 대한 해답을 제시하고자 이책을 썼습니다. 그 해답은 이들 기술의 혼란스러운 변화 속에서도 변하지 않는 것을 찾는 것입니다. 그리고 그것이 바로 "객체지향" 입니다.
이 책은 크게 두개의 이야기로 구분됩니다.
첫번째는 객체지향의 개념을 이야기합니다. 많은 개발자들이 이 개념이 너무 어렵다고 이야기합니다. 그래서 생활 속에서 찾을 수 있는 예를 들어 나름대로는 가장 쉽게 설명했습니다. UML 을 사용하여 보이지 않는 개념을 눈으로 볼 수 있게 했습니다.
C++, 자바, C#, VB.NET 언어에서 이 개념을 구현하는 방법을 제시했습니다. 이들 언어를 모두 사용한 것은 여러분에게 결코 또 다른 혼란스러움을 주기 위한 것이 아닙니다. 오히려 그 반대입니다. 아마 여러분은 이들 언어들이 모두 똑같은 방법으로 객체지향 개념을 구현하고 있는 것을 찾을 수 있을 것입니다.
결국 그 기반이 되는 개념이 같기 때문에 이들 언어들의 구현 방법도 같을 수 밖에 없는 것이지요. 서로에게는 약간의 차이점이 있습니다. 그 차이점만 알면 이들 언어를 모두 정복할 수 있는 것입니다.
두번째는 객체지향 개념을 활용한 기술들의 변천사를 이야기합니다. 윈도우 프로그래밍에서의 객체지향 개념의 도입, 너무나 객체지향적인 자바 언어에서의 객체지향 개념의 활용, COM/DCOM, CORBA, RMI, EJB 등 분산 객체 기술에서의 객체지향 개념의 실현, 그리고 마이크로소프트가 완성시킨 분산 객체 기술인 COM+ 와 닷넷 프레임웍.
이들 이야기를 자세히 설명하려한다면 도무지 책 한권으로는 역부족입니다. 이 책에서 이들 기술들을 빠르게 짚어나간 것은 결국 숲을 보자는 것입니다. 이들 기술들에서 객체지향 개념이 어떻게 적용되었는지를 살펴봄으로써 지금 우리가 단단히 다져놓아야 할 기초가 바로 객체지향 개념임을 깨닫게 하는데 목적이 있습니다.
그래서 앞으로 어떤 새로운 기술들이 나와 우리를 혼란스럽게 한다고 해도 결코 당황하거나 두려워 하지 않게 하는 것이 이야기의 목적입니다. 또한 여러분이 이책을 자세히 읽어본다면 COM/DCOM, CORBA, RMI, EJB 등의 분산 객체 기술 사이의 유사점을 발견할 수 있을 것입니다.
또 서로의 약간의 차이점도 발견할 수 있습니다. 또 다시 그 유사점과 차이점을 알면 우리는 어떤 기술이든 자유자재로 사용할 수 있게 되는 것이지요. 그것이 두번째 이야기의 목적입니다.
저는 의도적으로 객체지향 기술과 객체지향 모델링에 대해 세부적인 자세한 사항의 설명을 배제했습니다. 이들 기술의 세부 사항을 자세히 이야기한다면 오히려 이책을 읽는 사람들에게 커다란 혼란만을 가져다 줄 것이기 때문입니다.
분명히 사람이 이해하고 받아들일 수 있는 범위가 있습니다. 따라서 객체지향 개념의 추상화 원칙에 따라
필수적이고 중요한 사항의 이야기에만 집중하는 것이 이들을 이해하는데 보다 더 효과적이라고 생각했기 때문입니다.
하지만 그 기반이 되는 객체지향 개념에 대한 이야기는 그 어느 것보다도 상세하고 쉽게 설명하기 위해 최선을 다했습니다. 그것은 객체지향 개념에 대한 이해가 그것을 기반으로 하는 많은 기술들을 이해하는 열쇠가 되기 때문이라고 생각하기 때문입니다.
아무쪼록 "객체지향 이야기"가 여러분에게 커다란 도움이 되기를 바랍니다. 이 책을 읽는 중에 궁금한 사항이 있으면 제게 메일(bsjun9@kornet.net)을 주십시오. 여러분이 보다 편안하게 이해할 수 있도록 도와드리겠습니다.
감사합니다.
(2002년 4월 29일 알라딘에 보내신 작가 코멘트)