한 권으로 정리하는 프로그래밍의 모든 것
이 책은 프로그래머가 어떻게 개발을 진행하고, 어떤 지식과 용어를 알아둬야 하는지 등 프로그래밍에 관한 넓고 다양한 주제를 다루고 있습니다. 프로그래밍의 개념부터 개발 공정, 언어별 특징, 알고리즘, 데이터, 웹 기술 등 개발자라면 꼭 알아야 기초 지식에 대해 그림과 더불어 1페이지로 간략하고 쉽게 설명하고 있는 것이 특징입니다.
1장에서는 프로그래머의 종류와 프로그래밍 환경 등 기초 지식에 대해 설명하고, 2장에서는 다양한 프로그래밍 언어별 특징에 대해 배웁니다. 3장에서는 컴퓨터 계산의 기본인 수치와 데이터를 어떻게 다루는지 알아보고, 4장에서는 함수, 변수, 알고리즘 등 절차와 흐름도를 설명합니다. 5장과 6장에서는 소스 코드 작성 규칙, 설계와 테스트, 웹 기반 기술 등 다양한 이슈에 대해 다룹니다.
프로그래밍 분야는 개발 환경이나 시스템, 기술 발전에 따라 변화가 크고 그에 따라 필요한 지식도 달라지지만, 이 책으로 전체 구조에 관해 큰 줄기를 잡아 놓는다면 다가올 변화에도 핵심을 파악하고 빠르게 대처할 수 있는 힘이 될 것입니다.
상세이미지
저자 소개
저자 : 마스이 토시카츠
비즈니스×수학×IT를 조합하여 컴퓨터를 “바르고” “효율적으로” 사용하기 위한 스킬 업(Skill up) 지원이나 각종 소프트웨어의 개발, 취약점 진단, 정보 보안에 관한 컨설팅 등을 하고 있다. 저서로는 [우리집에서 배우는 보안의 기본] [프로그래머 뇌를 단련하는 수학 퍼즐] [엔지니어가 살아남기 위한 테크놀로지 수업] [좀더 프로그래머 뇌를 단련하는 수학 퍼즐] [프로그래밍언어 도감] [그림으로 배우는 보안 구조] 등이 있다.
역자 :김성훈
IT 기술에 관심이 많아 관련 서적을 주로 번역한다. 주요 번역서는 다음과 같다. <파이썬으로 배우는 머신러닝 입문>, <게임 정보학>, <게임 프로그래밍의 정석>, <양자 컴퓨터의 구조>, , <안드로이드 개발 레벨 업 교과서>, <실무에서 바로 통하는 자바>, , , , <프로가 가르쳐주는 시퀀스 제어>, <만화로 쉽게 배우는 선형대수>, <그림으로 배우는 데이터 과학> 등 다수
목 차
Chapter 1 프로그래밍 기초 지식
1-1 프로그래밍을 둘러싼 환경
1-2 프로그래밍이 동작하는 환경
1-3 누가 프로그램을 만드는가?
1-4 프로그래밍에 관한 업계의 차이
1-5 프로그램 개발에 관한 직종의 차이
1-6 프로그래머의 근무 형태
1-7 소프트웨어 개발 공정
1-8 소프트웨어 개발의 흐름
1-9 개발(구현) 공정에서 할 일
1-10 팀으로 개발하는 여러 가지 방법
1-11 개발한 프로그램 공개하기
1-12 프로그래밍 학습 방법
Chapter 2 프로그래밍 언어의 차이
2-1 컴퓨터가 처리할 수 있는 형태로 변환한다
2-2 사람과 컴퓨터가 이해하기 쉬운 표현
2-3 프로그래밍 언어의 분류
2-4 선언형 프로그래밍
2-5 가볍게 쓸 수 있는 프로그래밍 언어
2-6 프로그래밍 언어 비교 1
2-7 프로그래밍 언어 비교 2
2-8 프로그래밍 언어 비교 3
2-9 어디서든 동작시킬 수 있게 하는 기술
2-10 프로그래밍 언어 선택 방법
2-11 입력과 출력
2-12 프로그램을 작성하는 환경
Chapter 3 수치와 데이터를 다루는 방법
3-1 컴퓨터에서 사용하는 숫자
3-2 2진수를 이용하는 처리
3-3 계산의 기본을 이해한다
3-4 컴퓨터에 기억시킨다
3-5 수학에서 사용하는 ‘=’과의 차이점
3-6 읽는 사람이 이해하기 쉬운 이름
3-7 컴퓨터로 숫자를 다룬다
3-8 같은 형의 데이터를 모아서 다룬다
3-9 컴퓨터로 문자 다루기
3-10 한글을 다룰 때 주의할 점
3-11 복잡한 데이터 구조 표현
3-12 다른 형도 다룰 수 있게 한다
3-13 배열을 번호가 아닌 이름으로 다룬다
3-14 메모리 구조를 이해하고 데이터 다루기
3-15 데이터를 순서대로 탐색하는 자료 구조
3-16 데이터를 순서대로 처리하기
3-17 계층 구조로 데이터 다루기
Chapter 4 흐름도와 알고리즘
4-1 처리의 흐름을 그려본다
4-2 데이터의 크기를 비교한다
4-3 같은 처리를 반복해서 실행한다
4-4 일련의 처리를 묶어서 다룬다
4-5 함수에 파라미터를 넘겨준다
4-6 변수의 유효범위를 결정한다
4-7 파라미터를 바꾸면서 같은 처리를 반복 실행한다
4-8 예상 밖의 사태에 대응한다
4-9 반복 처리를 다룬다
4-10 필요 없는 메모리를 해제한다
4-11 정렬의 기본을 배운다
4-12 구현하기 쉬운 정렬 방법을 알아본다
4-13 정렬을 고속화한다
4-14 처리에 걸리는 시간을 알아본다
4-15 배열 리스트에서 원하는 값을 찾는다
4-16 트리 구조를 순서대로 따라가며 탐색한다
4-17 어떤 문자열에서 다른 문자열을 찾는다
Chapter 5 설계부터 테스트까지
5-1 읽기 쉬운 소스 코드를 작성한다
5-2 소스 코드를 작성하는 규칙을 정한다
5-3 구현 오류를 제거한다
5-4 요구한 조건을 만족하는지 확인한다
5-5 테스트 방법을 이해한다
5-6 블랙박스 테스트 기법을 학습한다
5-7 버그를 발견하고 관리한다
5-8 소프트웨어를 실행하지 않고 검증한다
5-9 소프트웨어의 기획부터 이용 종료까지 생각한다
5-10 소프트웨어 개발 프로세스를 자동화한다
5-11 동작을 바꾸지 않고 소스 코드를 정리한다
5-12 자동 테스트를 전제로 개발을 진행한다
5-13 데이터의 구조와 흐름을 자동화한다
5-14 컴파일을 자동화한다
5-15 객체 지향의 기본 사고방식
5-16 클래스의 속성을 물려받는다
5-17 클래스를 구성하는 데이터와 조작을 다룬다
5-18 필요한 정보와 메소드만 외부에 공개한다
5-19 같은 이름의 메소드를 만든다
5-20 객체 지향 개발에 이용되는 모델링 기법
5-21 복수의 오브젝트의 관계성을 생각한다
5-22 관련된 클래스를 모은다
5-23 객체 지향으로 다루기 어려운 문제를 해결한다
5-24 고객과 개발자가 공통된 언어를 사용한다
5-25 오브젝트의 초기화와 해제
5-26 개발 진척도를 관리한다
Chapter 6 웹 기술과 보안
6-1 웹 기초 지식
6-2 소프트웨어 개발에 필요한 기능의 집합체
6-3 웹사이트의 디자인을 변경한다
6-4 같은 이용자를 식별한다
6-5 인터넷상에서 서비스를 제공한다
6-6 UI 애플리케이션의 기능을 분할한다
6-7 HTML 등의 요소를 조작한다
6-8 웹브라우저로 동적인 제어를 간단히 수행한다
6-9 웹에서 자주 사용되는 데이터 형식
6-10 정합성을 유지한 상태로 데이터를 다룬다
6-11 데이터의 정합성을 확보하는 기술
6-12 서버를 빌려서 서비스를 제공한다
6-13 클라우드 기술의 서비스 형태
6-14 소프트웨어로 하드웨어를 실현한다
6-15 OS와 다른 애플리케이션의 기능을 호출한다
6-16 버전 관리 시스템
6-17 무료로 공개된 소스 코드
6-18 다른 사람의 프로그램을 원래대로 되돌린다
6-19 보안 문제에 관한 이해