본문 바로가기

2019/01

객체지향 생각의 도구4-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 5) 관찰 : 사물이나 현상을 주의하여 자세히 살펴보는 것. 모든 지식은 관찰에서부터 시작된다. 우리는 세계를 정밀하게 관찰할 수 있어야 한다. 그래야만 행동의 패턴들을 구분해내고, 패턴들로부터 원리들을 추출해내고, 사물들이 가진 특징에서 유사성을 이끌어내고, 행위모형을 창출해낼수 있으며, 효과적으로 혁신할 수 있다. 관찰은 보이는 것을 표현하는게 아니라 어떤 것을 보이게 하는 것이다. 발견은 모든 사람들이 보는 것을 보고 아무도 생각하지 않는 것을 생각하는 것으로 이루어져 있다. 진정한 창조자는 가장 평범하고 비루한 .. 더보기
객체지향 생각의 도구3-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 4) 관찰 → 추상화 → 패턴인식이제 관계의 의존성은 낮추고 기능의 집중도는 높인다는 객체지향의 장점을 살리려면 우리는 어떻게 접근해야 할지 알아본다. 예를 들어 2차 세계 대전 비행기 시뮬레이터를 객체지향 프로그래밍으로 구현하기로 했으면, 비행기를 어떻게 객체지향 프로그래밍으로 풀어 가는지 같이 살펴본다. ① 비행기란 사물을 살펴보자. 우리는 사물을 보면 먼저 어떻게 생겼는지 관찰부터 한다. 비행기를 객체지향 프로그래밍으로 구현 하기 위해서, 우리는 비행기를 먼저 관찰한다. 비행기를 앞에 두고 관찰하면서 우리는 객체지.. 더보기
객체지향 생각의 도구2-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 3) 객체지향 언어의 사상과 장점이렇게 절차지향 언어의 단점을 개선하고 더 나은 장점을 추구하는 객체지향 언어가 탄생했다. 1장에서 우리는 객체지향이 낮은 관계의 의존성과 높은 기능의 집중도를 통해 유연한 소프트웨어를 지향한다고 했다. 이것이 객체지향의 사상이고 장점이다. 여기서 좀더 객체지향이 어떻게 이런 사상과 장점을 지원하는지 배경을 좀 더 살펴보자.객체지향은 프로그램을 처리-판단-반복(변수선언, if, for문)-함수호출의 명령어들의 연결이라고 보는 과거 시각에서 벗어나 여러 개의 독립된 단위, 객체(사물)들의 .. 더보기
객체지향 생각의 도구1-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 2) 절차지향 언어의 사상과 단점객체지향 이전의 언어는 주로 절차지향 언어였다. 그렇다면 객체지향 언어는 절자치향 언어의 단점을 개선하여, 더 나은 장점을 보여주기 위해 치열하게 고민한 사상이 언어 속에 담겨 있을 것이다. 그래서 객체지향의 사상과 장점을 설명하기 전에 배경 지식으로 절차지향 언어의 사상과 단점을 소개한다.절차지향 언어는 처리-판단-반복(변수선언, if, for문)의 기초 문법, 함수등의 명령어를 활용하여 위에서 아래로 절차적으로 수행하는 언어이다. 또한 함수를 이용하여 로직의 모듈화를 할수 있다. 함수.. 더보기
객체지향 생각의 도구-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 1.1 정의와 목표의 전환5) 객체지향의 정의와 목표.. 생략 .. 1.2 고정관념의 전환.. 생략 .. 2. 객체지향을 돕는 도구이 장은 기술적인 내용보다는 인간 사고의 종류인 관찰, 추상화, 패턴 인식 등을 다룬다. 이 사고들은 객체지향 등의 개발 방법론에서 쓰인다. 개발 방법론은 자신의 장점을 극대화하기 위해 지향하는 고유 특징(=사상)이 있다. 이런 사상에는 관찰, 추상화, 패턴 인식 같은 사고력이 쓰인다. 2장에서는 이 사고력들이 객체지향 설계, 개발에서 어떻게 쓰이는지 이야기한다.기계어, 어셈블리어, 절차지향.. 더보기
정의와 목표의 전환3-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 4) 관계의 의존성은 낮게 기능의 집중도는 높게여기까지 읽었다면 이렇게 생각할 수 있겠다. 기능 구현에만 집착하면 유연성이 훼손 될 수도 있고, 유연성이 어떤 건지도 대략 알겠다. 그렇다면 유연한 소프트웨어를 개발하려면 구체적으로 어떻게 해야 할까? 다행히 좋은 소프트웨어를 만드는 기준이 되는 원칙을 간결하게 한 문장, 두 가지 권고사항으로 정리할 수 있다. ‘관계의 의존성은 낮게, 기능의 집중도는 높게’ 이것은 ‘응집도는 높게, 결합도는 낮게’와 같은 뜻이다.’ 정보처리 기사 이론을 공부할 때, 유독 객체지향이란 단어.. 더보기
정의와 목표의 전환2-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다. 보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 3) 유연한 소프트웨어란 코드 품질 향상이다. (1) 유연한 소프트웨어는 코드 품질이 좋다는 의미소프트웨어를 개발할 때, 우리는 먼저 고객이 원하는 기능을 정확히 구현해야 한다. 그리고 여기에 하나 더 추가해야 한다. 바로 ‘유연한 소프트웨어 개발’이다. 우리는 고객이 원하는 기능을 정확하고 유연하게 구현해야 한다. ※ 고객이 원하는 좋은 소프트웨어 = 고객이 원하는 기능의 정확한 구현 + 유연한 구성 당장 기능 구현도 어려운데, 이런 유연한 가치까지 신경 써서 개발하라니, 더 어렵게 느껴질 것이다. 그러나 유연한 소프.. 더보기
정의와 목표의 전환-한두깨 객체지향 프로그래밍 미리보기 한번 읽고 두번 깨닫는 객체지향 프로그래밍 미리보기 책이 2019년 1월말에 출간 예정인데 블로그 독자들에게 미리보기를 제공합니다.보시고 댓글과 질문 많이 남겨주시면 감사합니다. +.+ 1. 1장 발상의 전환 시작은 ‘발상의 전환’이다. 현장에서 우리는 주로 객체지향 언어를 사용한다. 서버는 역시 객체지향 언어인 JAVA를 주로 사용한다. 안드로이드도 JAVA를 쓰거나, 안드로이드 최신 언어 Kotlin은 함수형 프로그래밍과 객체지향을 함께 쓴다. 아이폰 개발은 Objective-C를 사용한다. 아이폰 최신 언어인 Swift도 함수형 프로그래밍과 함께 객체지향이 바탕이다. 한 마디로 여전히 객체지향이 주류다. 그런데 주변 개발자를 보면, 객체지향의 정의가 무엇인지, 어떤 목표를 지향하는지 잘 모르는 경우.. 더보기