관련서비스

검색

검색

책 메인메뉴

책본문

종류 : 종이책

(더 나은 코딩을 위한) 코딩을 지탱하는 기술원리로 깨우치는 프로그래밍 기법

저자
니시오 히로카즈 지음
역자
김완섭 옮김
출판사
비제이퍼블릭 | 2013.10.17
형태
판형 규격外 | 페이지 수 244 | ISBN
원제 : コ-ディングを支える技術
ISBN 10-8994774483
ISBN 13-9788994774480
정가
17,50015,750
가격비교 찜하기

인터넷서점 (총 9건) 더보기

이 책은 어때요? 1명 참여

평점 : 1 0 . 0

번역

번역Bad 1 2 3 4 5 6 7 8 9 10 번역Good

필독

비추 1 2 3 4 5 6 7 8 9 10 필독

이 책을 언급한 곳

리뷰 0 | 서평 0 | 블로그 16

책 정보 별 바로가기 : 책정보  리뷰 (16) 가격비교 (9) 추가정보  책꼬리 (0) 한줄댓글 (0) 맨위로

정보 제공 : 교보문고 YES24 강컴닷컴 반디앤루니스 인터파크도서

책소개

책 소개


이 책의 목적은 여러분의 ‘왜’를 해결하는 것이다


세상에는 수많은 프로그래밍 언어가 존재한다. 읽어야 할 문서도 셀 수 없을 정도다. 하지만 여러분이 가지고 있는 시간은 제한되어 있어 모든 것을 습득하기엔 역부족이다.


또한 기술 변화 속도가 너무 빨라서 특정 언어나 툴에 관한 지식은 금방 쓸모 없게 된다. ‘변화하고 있는 지식’을 꾸준히 습득하지 않으면, 이미 학습한 지식도 점점 가치를 잃게 된다.


그러면 무엇을 학습하면 되는 것일까? 학습에는 3가지 중요한 포인트가 있다.


- 비교를 통한 학습
- 역사를 통한 학습
- 만드는 것을 통한 학습


 


첫 번째는 다수의 언어를 비교하는 것이다. 무엇이 그 언어만이 가진 특유의 개념이고, 무엇이 언어 간에 공통으로 사용되는 개념인지를 배울 수 있다.


두 번째는 언어의 발달 과정을 따라가는 것이다. 어떻게 탄생했고, 어떤 식으로 변화해 왔는지를 배움으로 ‘왜 이런 식으로 동작하고 있는지’에 대한 의문을 풀 수 있다.


세 번째는 직접 언어를 만드는 것이다. ‘나라면 어떻게 만들까?’를 생각함으로, 언어 설계자의 의도를 쉽게 이해할 수 있게 된다. 또한 실제로 만들어 봄으로써 자신이 잘 이해하지 못한 것을 알 수 있게 된다.


독자 여러분도 지금까지 다양한 책을 읽으면서 분명 ‘왜’라는 의문을 가진 적이 있을 것이다. 이 책의 목적은 여러분의 ‘왜’를 해결하는 것이다. 프로그래밍에 익숙하지 않은 독자들을 위해 ‘비교를 통한 학습’과 ‘역사를 통한 학습’ 방법에 많은 분량을 할애하고 있다. 이런 학습 방법 자체를 여러분들이 익힐 수 있다면, 이 책으로서는 대성공한 것이다.


 


예제코드 다운로드
http://nhiro.org/langbook/
https://github.com/nishio/learn_language/tree/master/langbook


 


독자대상
초중급



이 책의 구성


이 책은 총 12장으로 구성되어 있다.


1장은 언어를 효율적으로 학습하기 위한 ‘비교를 통한 학습’과 ‘역사를 통한 학습’에 관해 구체적인 예를 들어 설명한다.


2장은 프로그래밍 언어 자체가 왜 탄생했는지 역사를 따라가며 배워나간다.


3장 이후로는 프로그래밍 언어에 관한 여러 가지 개념에 대해 설명한다. 특정 언어에 관한 지식을 전제로 하고 있진 않지만, 여러분들의 경험과 연관 되지 않을 경우 이해하기 어려울 수도 있다. 예를 들어, C 언어만 경험했다면 6장의 ‘에러 처리’를 이해하기 어려울 것이다. 또한 스레드를 사용한 적이 없다면 10장의 ‘병행 처리’를 이해하기 어려울 것이다. 그런 경우에는 다 른 장을 먼저 읽어도 상관없다.


3장은 프로그래밍 언어에 왜 수많은 문법(규칙)이 존재하는지 설명한다. 특히 연산자의 우선 순위를 중심으로, 규칙이 적은 언어인 FORTH나 LISP를 비교하며 배운다.


4장은 if 문, while 문, for 문 등 ‘제어 구문’이 왜 탄생했는지, 제어 구문이 없는 어셈블리 언어와 제어 구문이 있는 C 언어를 비교해서 학습한다.


5장은 ‘함수’가 왜 탄생했는지를 배운다. 또한 ‘재귀 호출’이 어떤 경우에 필요한지 학습한다.


6장은 현재 많은 언어에서 ‘예외’라고 부르고 있는 ‘에러 처리’ 구조가 왜 필요했는지, 어떻게 탄생하게 됐는지에 대해 학습한다.


7장은 변수나 함수의 ‘이름’이 왜 탄생했는지, 그리고 ‘스코프(Scope)’가 왜 필요했으며 어떻게 진화해왔는지를 학습한다.


8장은 ‘형’에 대해 학습한다. 형이 왜 필요하게 됐는지 구체적으로 학습하기 위해 우선 ‘숫자를 어떻게 표현하는지’를 배우고, 형과 그 응용 방법에 대해 학습한다.


9장은 ‘객체를 저장할 수 있는 공간’(컨테이너, container)에 대해 학습한다. 컨테이너에는 다양한 종류가 있지만 왜 그렇게 종류가 다양한지, 차이를 비교해 각각의 장단점을 파악한다.


후반부에서는 ‘문자열’에 대해 배운다. 문자 인코딩(encoding)의 변천사를 확인하며, 언어에 따라 문자열이 어떻게 다른지 비교를 통해 학습한다.


10장에서는 복수의 처리를 동시에 실행하는 ‘병행 처리’의 문제점과 대안책에 대해 각종 언어를 비교하며 학습한다.


11장에서는 ‘객체 지향’에 대해 학습한다. 객체 지향이 의미하는 바가 언어에 따라 다른 것을 Smalltalk와 C++을 비교하며 배운다. 다음으로, 왜 객체 지향이 발명됐는지 역사를 통해 확인한다. 또한 ‘클래스’와 ‘객체를 만드는 다양한 방법’에 대해 학습한다.


12장에서는 ‘상속’에 대해 학습한다. 여러 언어에서 사용되고 있는 상속 구조를 비교하여 각각의 장단점을 배운다.


출판사 리뷰


이 책은 프로그래밍 언어가 가지고 있는 다양한 개념이 ‘왜’ 존재하고 있는지를 설명한다. 세상에는 많은 프로그래밍 언어가 있으며 관련된 개념도 함수, 형, 스코프, 클래스, 상속 등 그 수를 헤아릴 수 없을 정도로 다양하다. 많은 프로그래밍 언어에서 공통적으로 사용하고 있는 개념도 있지만, 일부 언어만 채용하고 있는 개념도 많다. 이런 개념들은 ‘왜’ 탄생한 것일까? 본서의 목적은 그 이유를 알아내는 것이다.


이를 위해, 이 책은 언어 설계자의 관점에서 여러 언어를 비교하고 언어가 어떻게 변화되어 왔는지를 설명한다. 다양한 개념이 ‘왜’ 탄생했는지를 이해하게 되면 각 언어를 왜, 언제, 어떻게 사용해야 할지를 판단할 수 있게 된다. 또한 이후에 생겨날 새로운 개념도 쉽게 이해할 수 있는 밑거름이 될 것이다.


이 책은 프로그램 개발에 대한 핵심 개념을 쉽게 이해할 수 있어 개발자뿐만 아니라, 시스템 설계자나 관리자들에게도 큰 도움이 될 것이다.


 

저자소개

목차

1장 효율적으로 언어 배우기


1.1 비교를 통한 배움
- 규칙은 언어마다 다르다
- C 언어와 Ruby의 참거짓 값
- Java의 참거짓 값


1.2 역사를 통한 배움
- 언어 설계자의 의도를 이해하자
- 어떤 언어를 배워야 하는지는 아무도 모른다
- 언어에 의존하지 않는 보편적인 지식의 습득


 


2장 프로그래밍 언어를 조감하다


2.1 프로그래밍 언어 탄생의 역사
- 케이블을 연결하다
- 프로그램 내장 방식으로
- FORTRAN의 등장


2.2 프로그래밍 언어 탄생의 목적
- 나태 — 프로그래머의 삼대 미덕
- 언어에 따라 다른 ‘편리함’의 의미


 


3장 문법의 탄생


3.1 문법이란?
- 연산자 우선순위
- 문법은 언어 설계자가 정한 규칙


3.2 스택 머신과 FORTH
- 계산 순서
- 연산 순서를 어떻게 표현할까?
- 현재도 살아있는 스택 머신


3.3 구문 트리와 LISP
- 계산의 흐름
- 계산 순서를 어떻게 표현할까?
- 현재도 살아있는 구문 트리
칼럼: 이해력을 확인하기 위해서는 결과물(Output)을 확인한다


3.4 중위 표기법
- 구문 해석기
칼럼: 무엇을 배우면 좋을지 모르는 이유
- 규칙간 마찰


 


4장 처리 흐름 제어


4.1 구조화 프로그래밍의 탄생


4.2 if가 탄생하기 전
- if는 왜 있는 걸까?
- If-else는 왜 있는 걸까?


4.3 while, 반복되는 if를 읽기 쉽게 표현
- while 문을 사용하는 방법
- while 문을 사용하지 않는 방법


4.4 for, 수치를 증가시키는 while을 읽기 쉽게 표현
- for를 사용하는 방법
- for를 사용하지 않는 방법
- foreach, 처리 대상으로 반복 제어


 


5장 함수


5.1 함수의 역할
- 이해(조직을 예로)
- 재사용(부품을 예로)
- 프로그램 재사용의 특징


5.2 돌아가는 명령
- 함수의 탄생
- 돌아갈 목적지를 기록하기 위한 전용 메모리
칼럼: 이름
- 스택


5.3 재귀 호출
- 내포 구조 데이터의 효율적 처리
- 내포 구조를 다루는 방법


 


6장 에러 처리


6.1 프로그램도 실패를 한다


6.2 실패를 어떻게 전달할까?
- 반환값으로 실패를 전달한다
- 실패하면 점프한다


6.3 실패할 것 같은 처리를 묶는 구문
- John Good enough의 주장
- CLU에 도입
- C++에 도입
- Windows NT 3.1에 도입


6.4 출구는 하나다
- 왜 finally를 도입한 것일까?
- 짝이 되는 처리를 반드시 실행한다


6.5 어떤 경우에 예외를 던질까?
- 함수 호출 시 인수가 부족한 경우
- 배열 범위 밖에 있는 것을 취득하려고 했을 때
- 틀리면 바로 예외를 던진다


6.6 예외의 전파
- 예외 전파의 문제점
- Java의 검사 예외
- 검사 예외가 잘 사용되지 않는 이유
컬럼: 구체적인 지식과 추상적인 지식
칼럼: 이빨로 씹다
칼럼: 필요한 부분부터 흡수한다


 


7장 이름과 스코프


7.1 왜 이름이 필요할까?
- 어떻게 이름을 붙일까?
- 이름 충돌
- 충돌 피하기


7.2 스코프의 진화
- 동적 스코프
- 정적 스코프


7.3 정적 스코프는 완성체인가?
칼럼: 다른 언어의 스코프
- 내포 함수의 문제점
- 외부 스코프에 재귀속되는 문제


 


8장 형


8.1 형(型)이란?


8.2 수치를 On과 Off로 표현하는 방법
- 자릿수 발명
- 7 세그먼트 디스플레이
- 주판


8.3 한 자리에 필요한 램프는 몇 개일까?
- 10 진수에서 2 진수로
- 8 진수와 16 진수


8.4 실수는 어떻게 표현할까?
- 고정 소수점 — 소수점을 어디에 붙일지 정한다
- 부동 소수점 — 어디부터 소수부인지의 정보 자체를 값에 포함시킨다


8.5 형은 무엇을 위해 존재할까?
- 형이 없을 때 발생하는 문제
- 초기 FORTRAN의 형
- 언어 처리계에 변수 종류를 알린다
- 암묵의 형 승격


8.6 형의 다양한 전개
- 사용자 정의형과 객체 지향
- 사양으로서 형
- 총칭형, 제네릭스, 템플릿
- 동적 형결정
- 형 추론
칼럼: 대략적인 부분을 잡아서 조금씩 상세화한다


 


9장 컨테이너와 문자열


9.1 다양한 종류의 컨테이너


9.2 왜 다양한 컨테이너가 존재할까?
- 배열과 연결 리스트
- 연결 리스트의 장단점
칼럼: O 기법 — 계산 시간과 데이터량의 관계를 간단히 나타내는 것
- 언어에 따른 차이


9.3 사전, 해쉬, 연상 배열
- 해쉬 테이블
- 트리
- 요소를 꺼내는 시간
- 만능 컨테이너란 없다


9.4 문자란?
- 문자 집합과 문자 부호화 방식
- 컴퓨터 이전 시대의 부호화
- EDSAC 문자 코드
- ASCII와 EBCDIC 시대
- Unicode에 의한 통일


9.5 문자열이란?
- 길이 정보를 가지고 있는 Pascal 문자열, 가지고 있지 않은 C 문자열
- 한 문자가 16 비트인 Java 문자열
- Python 3에서 이루어진 설계 변경
- Ruby 1.9의 도전


 


10장 병행 처리


10.1 병행 처리란?


10.2 잘게 분할해서 실행한다


10.3 처리를 변경하는 2가지 방법
- 협력적 멀티태스크
- 선점적 멀티태스크 — 일정 시간에 교대한다


10.4 경합 상태 방지법
- 경합 상태의 3가지 조건
- 공유하지 않는다 — 프로세스와 액터 모델
- 변경하지 않는다 — const, val, Immutable
- 끼어들지 않는다


10.5 락의 문제점과 해결책
- 락의 문제점
- 트랜잭션 메모리
- 트랜잭션 메모리의 역사
트랜잭션 메모리는 성공할까?


 


11장 객체와 클래스


11.1 객체 지향이란?
- 객체는 현실 세계의 모형
- 클래스란?


11.2 변수와 함수를 합쳐서 모형을 만드는 법


11.3 방법 1: 모듈, 패키지
- 모듈, 패키지란 무엇인가?
- Perl 패키지로 객체를 만든다
- 모듈만으로는 부족하다
- 별도의 데이터 저장소를 만든다
- 인수로 개별 해쉬를 전달한다
- 초기화 처리도 패키지에 넣는다
- 해쉬와 패키지를 연결한다


11.4 방법 2: 함수도 해쉬에 넣는다
- 퍼스트 클래스
- 함수를 해쉬에 넣는다
- 복수 개 카운터를 만든다
- 공유하고 있는 사물을 프로토타입으로 이동한다
- 이것이 객체 지향?


11.5 방법 3: 클로저
- 클로저란?
- 왜 클로저라고 부를까?


11.6 방법 4: 클래스
- Hoare가 생각한 클래스
- C++ 클래스
- 사양으로서 역할
- 클래스의 3가지 역할


 


12장 상속을 통한 재사용


12.1 상속이란?
- 상속에 관한 다양한 접근법
- 상속은 양날의 칼
- 리스코프의 치환 원칙


12.2 다중 상속
- 하나의 사물을 복수로 분류
- 코드 재사용에 편리한 다중 상속


12.3 다중 상속의 문제점 — 거듭되는 충돌
- 해결책 1: 다중 상속을 금지한다
- 해결책 2: 메소드 해결 순서를 고민한다
- 해결책 3: 처리를 섞는다
- 해결책 4: 트레이트
칼럼: 끝에서부터 차례대로 베껴간다

책 정보 별 바로가기 : 책정보  리뷰 (16) 가격비교 (9) 추가정보  책꼬리 (0) 한줄댓글 (0) 맨위로

리뷰

독자리뷰(총 16건)

리뷰쓰기
코딩을 지탱하는 기술을 읽고.
코딩을 지탱하는 기술저자니시오 히로카즈 지음출판사비제이퍼블릭 | 2013-10-17 출간카테고리컴퓨터/IT책소개이 책의 목적은 여러분의 '왜'..
itist | 2015.08.02
코딩을 지탱하는 기술 : 원리로 깨우치는 프로그..
이 책의 본문 169쪽을 그대로 옮겨보면 다음과 같다.Python 3.0>>> "hello,"  + b"Alice"Traceback..
숨겨진 명저 찾기님 | 인터파크도서 | 2014.08.20
good writing about exception!
There is a precondition to talk about Exception. " there is no right answer " &nbs..
YES24 | 2014.08.10
하지만 프로그래밍 언어의 역사를 알기에는 좋은
책에 대한 소개와 평가에 앞서, 나는 전문적인 프로그래밍 기법이나 여러 프로그래밍 언어를 습득하여 업무에 활용하는 전문가가 아니며, 어디까지나 과학 계산만을..
낭객님 | 인터파크도서 | 2014.06.16
코딩을 지탱하는 기술 - 비제이퍼블릭
프로그래밍 언어에 대해 역사별로 구분해서 설명했으며, 언어간 비교를 통해서도 설명한 책으로 간결한 내용이 이 책의 장점인 것 같다.지하철 및 화장실에서 재미..
YES24 | 2014.03.17
[도서리뷰] 코딩을 지탱하는 기술 (BJ퍼블릭)
컴퓨터 공부를 진행하면서 현재까지 나온 모든 언어에 대해서 다루어 볼 기회는 없었다.공부하거나 프로젝트를 진행하면서 필요한 언어가 있을 때에만 사용을 했기 ..
YES24 | 2013.12.16

책 정보 별 바로가기 : 책정보  리뷰 (16) 가격비교 (9) 추가정보  책꼬리 (0) 한줄댓글 (0) 맨위로

가격비교 - 인터넷서점 15,750

가격비교
서점 판매가 → 할인가(할인율) 판매가 할인가란? 적립금(적립률) 구매정보
YES24 바로가기 17,500원15,750원(-10%) 870원(5%) 구매하기 무료배송 대한민국1등 인터넷서점! 총알배송, 2천원추가적립, 리뷰포인트지급, 최저가보상
반디앤루니스 바로가기 17,500원15,750원(-10%) 870원(5%) 구매하기 무료배송 북셀프 단 한권만 사도 무료배송, 당일배송, 매장에서 바로받는 북셀프 서비스, 최저가 보상, 신규회원 1,000원 적립
영풍문고 바로가기 17,500원15,750원(-10%) 875원(5%) 구매하기 무료배송 바로바로 신간 무료배송 / 신규회원 1천원지급 / 영풍문고에서 페이코 첫 결제 5천원할인 / Now드림서비스
도서11번가 바로가기 17,500원15,750원(-10%) 0원(0%) 구매하기 무료배송 [T멤버십 할인/최대1만원,신간도서] 3만원 이상 구매시 1,000포인트 추가 적립
인터파크 바로가기 17,500원15,750원(-10%) 870원(5%) 구매하기 무료배송 당일/하루배송, 최저가 200% 보장, 인터파크 통합 마일리지, 스페셜 사은품선택 서비스
리브로 바로가기 17,500원15,750원(-10%) 875원(5%) 구매하기 무료배송 도서 10%할인, 5%추가적립, 배송 중 파손 시 100% 교환보장, 수험서 분철 990원!
알라딘 바로가기 17,500원15,750원(-10%) 870원(5%) 구매하기 무료배송 10% 할인, 신간 사은품 추첨, 1권도 무료당일배송
강컴 바로가기 17,500원15,750원(-10%) 790원(5%) 구매하기 유료배송 국내/해외도서 최다보유!
교보문고 바로가기 17,500원15,750원(-10%) 870원(5%) 구매하기 무료배송 바로드림 최저가 보상, 바로드림/바로배송
단골 인터넷 서점 등록

책 정보 별 바로가기 : 책정보  리뷰 (16) 가격비교 (9) 추가정보  책꼬리 (0) 한줄댓글 (0) 맨위로

추가 정보

상세이미지

상세이미지

책 소개

이 책의 목적은 여러분의 ‘왜’를 해결하는 것이다

세상에는 수많은 프로그래밍 언어가 존재한다. 읽어야 할 문서도 셀 수 없을 정도다. 하지만 여러분이 가지고 있는 시간은 제한되어 있어 모든 것을 습득하기엔 역부족이다.

또한 기술 변화 속도가 너무 빨라서 특정 언어나 툴에 관한 지식은 금방 쓸모 없게 된다. ‘변화하고 있는 지식’을 꾸준히 습득하지 않으면, 이미 학습한 지식도 점점 가치를 잃게 된다.

그러면 무엇을 학습하면 되는 것일까? 학습에는 3가지 중요한 포인트가 있다.

- 비교를 통한 학습
- 역사를 통한 학습
- 만드는 것을 통한 학습

첫 번째는 다수의 언어를 비교하는 것이다. 무엇이 그 언어만이 가진 특유의 개념이고, 무엇이 언어 간에 공통으로 사용되는 개념인지를 배울 수 있다.

두 번째는 언어의 발달 과정을 따라가는 것이다. 어떻게 탄생했고, 어떤 식으로 변화해 왔는지를 배움으로 ‘왜 이런 식으로 동작하고 있는지’에 대한 의문을 풀 수 있다.

세 번째는 직접 언어를 만드는 것이다. ‘나라면 어떻게 만들까?’를 생각함으로, 언어 설계자의 의도를 쉽게 이해할 수 있게 된다. 또한 실제로 만들어 봄으로써 자신이 잘 이해하지 못한 것을 알 수 있게 된다.

독자 여러분도 지금까지 다양한 책을 읽으면서 분명 ‘왜’라는 의문을 가진 적이 있을 것이다. 이 책의 목적은 여러분의 ‘왜’를 해결하는 것이다. 프로그래밍에 익숙하지 않은 독자들을 위해 ‘비교를 통한 학습’과 ‘역사를 통한 학습’ 방법에 많은 분량을 할애하고 있다. 이런 학습 방법 자체를 여러분들이 익힐 수 있다면, 이 책으로서는 대성공한 것이다.

예제코드 다운로드
http://nhiro.org/langbook/
https://github.com/nishio/learn_language/tree/master/langbook

독자대상
초중급


이 책의 구성

이 책은 총 12장으로 구성되어 있다.

1장은 언어를 효율적으로 학습하기 위한 ‘비교를 통한 학습’과 ‘역사를 통한 학습’에 관해 구체적인 예를 들어 설명한다.

2장은 프로그래밍 언어 자체가 왜 탄생했는지 역사를 따라가며 배워나간다.

3장 이후로는 프로그래밍 언어에 관한 여러 가지 개념에 대해 설명한다. 특정 언어에 관한 지식을 전제로 하고 있진 않지만, 여러분들의 경험과 연관 되지 않을 경우 이해하기 어려울 수도 있다. 예를 들어, C 언어만 경험했다면 6장의 ‘에러 처리’를 이해하기 어려울 것이다. 또한 스레드를 사용한 적이 없다면 10장의 ‘병행 처리’를 이해하기 어려울 것이다. 그런 경우에는 다 른 장을 먼저 읽어도 상관없다.

3장은 프로그래밍 언어에 왜 수많은 문법(규칙)이 존재하는지 설명한다. 특히 연산자의 우선 순위를 중심으로, 규칙이 적은 언어인 FORTH나 LISP를 비교하며 배운다.

4장은 if 문, while 문, for 문 등 ‘제어 구문’이 왜 탄생했는지, 제어 구문이 없는 어셈블리 언어와 제어 구문이 있는 C 언어를 비교해서 학습한다.

5장은 ‘함수’가 왜 탄생했는지를 배운다. 또한 ‘재귀 호출’이 어떤 경우에 필요한지 학습한다.

6장은 현재 많은 언어에서 ‘예외’라고 부르고 있는 ‘에러 처리’ 구조가 왜 필요했는지, 어떻게 탄생하게 됐는지에 대해 학습한다.

7장은 변수나 함수의 ‘이름’이 왜 탄생했는지, 그리고 ‘스코프(Scope)’가 왜 필요했으며 어떻게 진화해왔는지를 학습한다.

8장은 ‘형’에 대해 학습한다. 형이 왜 필요하게 됐는지 구체적으로 학습하기 위해 우선 ‘숫자를 어떻게 표현하는지’를 배우고, 형과 그 응용 방법에 대해 학습한다.

9장은 ‘객체를 저장할 수 있는 공간’(컨테이너, container)에 대해 학습한다. 컨테이너에는 다양한 종류가 있지만 왜 그렇게 종류가 다양한지, 차이를 비교해 각각의 장단점을 파악한다.

후반부에서는 ‘문자열’에 대해 배운다. 문자 인코딩(encoding)의 변천사를 확인하며, 언어에 따라 문자열이 어떻게 다른지 비교를 통해 학습한다.

10장에서는 복수의 처리를 동시에 실행하는 ‘병행 처리’의 문제점과 대안책에 대해 각종 언어를 비교하며 학습한다.

11장에서는 ‘객체 지향’에 대해 학습한다. 객체 지향이 의미하는 바가 언어에 따라 다른 것을 Smalltalk와 C++을 비교하며 배운다. 다음으로, 왜 객체 지향이 발명됐는지 역사를 통해 확인한다. 또한 ‘클래스’와 ‘객체를 만드는 다양한 방법’에 대해 학습한다.

12장에서는 ‘상속’에 대해 학습한다. 여러 언어에서 사용되고 있는 상속 구조를 비교하여 각각의 장단점을 배운다.

출판사 리뷰

이 책은 프로그래밍 언어가 가지고 있는 다양한 개념이 ‘왜’ 존재하고 있는지를 설명한다. 세상에는 많은 프로그래밍 언어가 있으며 관련된 개념도 함수, 형, 스코프, 클래스, 상속 등 그 수를 헤아릴 수 없을 정도로 다양하다. 많은 프로그래밍 언어에서 공통적으로 사용하고 있는 개념도 있지만, 일부 언어만 채용하고 있는 개념도 많다. 이런 개념들은 ‘왜’ 탄생한 것일까? 본서의 목적은 그 이유를 알아내는 것이다.

이를 위해, 이 책은 언어 설계자의 관점에서 여러 언어를 비교하고 언어가 어떻게 변화되어 왔는지를 설명한다. 다양한 개념이 ‘왜’ 탄생했는지를 이해하게 되면 각 언어를 왜, 언제, 어떻게 사용해야 할지를 판단할 수 있게 된다. 또한 이후에 생겨날 새로운 개념도 쉽게 이해할 수 있는 밑거름이 될 것이다.

이 책은 프로그램 개발에 대한 핵심 개념을 쉽게 이해할 수 있어 개발자뿐만 아니라, 시스템 설계자나 관리자들에게도 큰 도움이 될 것이다.

책 정보 별 바로가기 : 책정보  리뷰 (16) 가격비교 (9) 추가정보  책꼬리 (0) 한줄댓글 (0) 맨위로

책꼬리

책꼬리란? 함께 읽으면 좋은 책이거나, 연관된 책끼리 꼬리를 달아주는 것입니다. '코딩을 지탱하는 기술'와 연관된 책이 있다면 책꼬리를 등록해 보세요

책 정보 별 바로가기 : 책정보  리뷰 (16) 가격비교 (9) 추가정보  책꼬리 (0) 한줄댓글 (0) 맨위로

한줄댓글

책속 한 구절

0/200bytes

퀵메뉴

TOP

서비스 이용정보