한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기


책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다.


보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+


1.1 정의와 목표의 전환

5) 객체지향의 정의와 목표

.. 생략 ..


1.2 고정관념의 전환

.. 생략 ..


2. 객체지향을 돕는 도구

이 장은 기술적인 내용보다는 인간 사고의 종류인 관찰추상화패턴 인식 등을 다룬다이 사고들은 객체지향 등의 개발 방법론에서 쓰인다개발 방법론은 자신의 장점을 극대화하기 위해 지향하는 고유 특징(=사상)이 있다이런 사상에는 관찰추상화패턴 인식 같은 사고력이 쓰인다. 2장에서는 이 사고력들이 객체지향 설계개발에서 어떻게 쓰이는지 이야기한다.

기계어어셈블리어절차지향 언어인 C언어는 문제를 주로 수학적으로논리적으로 분석한다객체지향은 여기에 더해서우리가 사는 세상의 사물을 관찰하고추상화하고패턴인식 하는 사고력을 바탕으로소프트웨어 세계로 구현한다그래서 인간이 사물을 바라보고 해석하는 데 쓰였던 관찰추상화패턴인식 등 생각의 도구를 객체지향에 도입할 필요가 있다여기 등장하는 생각의 도구는우리가 나중에 아키텍트/설계자가 되고 싶을 때도 도움을 준다예를 들어여기 나오는 사고의 종류 중 추상화는 나중에 DB 모델링 할 때도 도움이 된다마지막으로객체지향 표현의 도구 UML에서 객체지향 개발에서 UML을 통한 의사소통 방법을 이야기한다.

 

1. 객체지향 생각의 도구(관찰, 추상화, 패턴인식)

1) 그 언어의 사상을 배우고 따른다는 것

우리가 프로그래밍 언어를 배울 때 배워야 할 것은 분류하기 나름인데아래처럼 크게 2가지로 나눌 수 있다.

 

개발 언어의 문법을 배우고 따른다.

개발 언어의 사상을 배우고 따른다.

 

만약 JAVA언어를 쓴다면먼저 처리-판단-반복(변수선언, if, for)의 기초 문법을 배우고프로그램을 컴파일하고 실행하는 사용법을 알아야 한다더 나아가 실무에 쓰일 소프트웨어를 개발하기 위해 JAVA 언어가 지향하는 사상을 이해하면서 작성(개발)할 줄 알아야 한다.

여기서 문법은 직관적으로 이해가 될 것인데 사상이란 단어의 뜻은 이해하기 어렵다사상의 사전적인 뜻은 어떠한 사물에 대하여 가지고 있는 구체적인 사고나 생각이다이 정의를 프로그래밍 언어에 대입해 본다.

프로그래밍 언어가 새롭게 탄생되었으면기존 다른 언어의 단점을 개선하여 더 나은 장점을 보여주려 할 것이다더 나은 장점을 보여주기 위해 언어가 치열하게 고민한 구체적인 사고나 생각이 언어 속에 담겨 있다그래서 우리가 언어의 사상을 배우고 따른다면언어의 장점을 거의 100% 활용할 수 있다여기서 한 가지 정리할 수 있다위의 마지막 문장을 통해언어의 사상을 배우고 따른다는 것은 언어의 장점을 배우고 따른다는 것과 거의 같다고 이해해도 좋다그래서 나는 그 언어의 사상과 장점을 동일한 표현으로 설명 한다예를 들어 영어를 배울 때기본 문법을 아는 것으로 영어를 잘한다고 할 수 없다영어의 역사적문화적 배경을 알아야 원어민을 더 이해하고 의사소통을 잘 할 수 있다예를 들어 영어는 영시(poem)에서 영향을 많이 받았다고 한다영시의 운율성 때문에 영어에서는 유독 강세가 발달했다고 한다만약 우리가 이런 문화적 사실을 몰랐다면영어는 왜 유독 강세가 발달했는지 모를 것이다그러나 영어의 이런 역사적문화적 기원을 알 수 있다면우리는 영어의 강세를 더 익히려고 노력 할 것이다그래서 영어의 강세를 통해 내 뜻을 명확하게 전달하는 영어의 장점을 더 살릴 수 있다마찬가지로 프로그래밍 언어 또한 언어 밑바탕에 깔린 사상을 알아야언어를 통해 내가 하고 싶은 것을 더 수월하게 진행할 수 있다.


Posted by 산골
산골 블로그 소개 저는 하얀머리 개발자와 작가를 꿈꾸는 블로거 산골 입니다. 프로그램 개발자로서 저의 관심사는 개발자의 숨통을 트여준 아이폰 개발, 철학과 같은 깊이가 있는 객체지향 방법론입니다. 글쓰기와 수영을 좋아합니다. 블로그를 통해 관심사를 공유합니다. 제 블로그에 관심 있으시면 아래 RSS나 즐겨찾기로 편하게 구독하세요.

rss Bookmark and Share

댓글을 달아 주세요