서브메뉴

본문

다시 시작하는 프로그래밍 (자바스크립트로 배우는 웹 프로그래밍 A to Z)
다시 시작하는 프로그래밍 (자바스크립트로 배우는 웹 프로그래밍 A to Z)
저자 : 스티븐 푸트
출판사 : 인사이트
출판년 : 2015
ISBN : 9788966261451

책소개

『다시 시작하는 프로그래밍: 자바스크립트로 배우는 웹 프로그래밍 A to Z』는 프로그래밍 초보자를 위한 웹 프로그래밍 가이드이다. 프로그래밍에 대한 전반적인 내용을 알 수 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

‘이 길이 내 길일까?’
고민에 빠져 길을 잃은 초보자를 위한 웹 프로그래밍 가이드!

‘코딩’, ‘프로그래밍’이 더이상 낯설지 않은 세상. 전문 프로그래머를 꿈꾸거나 프로그래밍 자체에 대한 호기심 때문에, 또는 협업하는 과정에서 각 분야를 이해할 필요를 느껴 프로그래밍을 배우려는 사람들이 늘고 있다. 그러나 컴퓨터 언어를 익히고, 프로그램을 만든다는 것은 생각만큼 쉽고, 단순하지 않다. 프로그래밍 세계에 한 번이라도 발을 디뎌본 독자라면, ‘Hello, World!’라는 다정하고 희망찬 첫 인사 뒤에 만만치 않은 과정이 도사리고 있음을 알 것이다.
그렇다면 어떻게 해야 중간에 포기하지 않고, 한 단계 성장하는 즐거움을 맛보며 나아갈 수 있을까? 만약 이 길이 내 길이 맞는지 고민하고 있거나 만만치 않은 양의 기본 이론을 공부하는 데 지쳤다면, 지금까지와는 다른 방식으로 프로그래밍 기초를 다루는 이 책과 함께 프로그래밍을 다시 시작해 보자.
[교보문고에서 제공한 정보입니다.]

목차정보

1장 “Hello, World!” 프로그래밍 시작하기
1.1 텍스트 편집기 선택하기
1.1.1 프로그래밍용 편집기의 필수 기능
1.2 선택하기
1.2.1 서브라임 텍스트(Sublime text)
1.2.2 텍스트메이트(TextMate)
1.2.3 노트패드++(Notepad++)
1.2.4 Gedit
1.2.5 Vim
1.2.6 이클립스(Eclipse)
1.2.7 IntelliJ
1.2.8 Xcode
1.2.9 비주얼 스튜디오
1.3 프로젝트 디렉터리 만들기
1.4 작게 시작하기: 테스트 파일 만들기
1.4.1 브라우저에서 HTML과 자바스크립트가 같이 동작하는 원리
1.4.2 작은 개선의 힘
1.5 더 발전시키기
1.5.1 manifest.json에 내가 개발한 자바스크립트 코드 연결하기
1.5.2 동작 확인해보기!
1.6 큰 능력에 따르는 큰 책임
1.7 정리

2장 소프트웨어는 어떻게 동작하는가?
2.1 ‘소프트웨어’란?
2.2 소프트웨어의 생명 주기
2.3 소스코드 - 모든 것의 시작점
2.3.1 명령어들
2.3.2 프로그래밍 언어
2.3.3 소스코드에서 0과 1로
2.3.4 컴파일러 vs 해석형 언어: 소스코드가 이진 형식으로 되는 시점의 차이
2.3.5 런타임 환경(Runtime environment)
2.3.6 프로세서에 의한 실행
2.4 입력과 출력
2.4.1 입력을 통해 소프트웨어를 쓸모 있고 재사용할 수 있게 만들기
2.4.2 입력은 어디서 오는가?
2.4.3 소프트웨어로 입력을 받는 방법
2.4.4 출력의 종류
2.4.5 잘못된 입력, 잘못된 출력(GIGO: Garbage In, Garbage Out)
2.4.6 상태
2.4.7 Kittenbook에 상태 더하기
2.5 메모리와 변수
2.5.1 변수
2.5.2 변수 저장소
2.5.3 제한된 자원
2.5.4 메모리 누수
2.6 정리

3장 컴퓨터와 친해지기
3.1 컴퓨터는 미련하다
3.2 컴퓨터는 마법 같다
3.2.1 거인의 어깨에 서기
3.3 컴퓨터의 내부
3.3.1 프로세서
3.3.2 단기 메모리
3.3.3 장기 메모리
3.4 컴퓨터 활용하기
3.4.1 파일 시스템
3.4.2 커맨드 라인: 제어권을 찾자
3.5 정리

4장 빌드 툴
4.1 (최대한) 모든 것을 자동화하기
4.1.1 노드(Node) 설치
4.1.2 그런트 설치하기
4.1.3 소프트웨어 개발을 도와주는 소프트웨어
4.1.4 실수를 피하기
4.1.5 빠르게 작업하기
4.2 자동화할 작업들
4.2.1 컴파일
4.2.2 테스트
4.2.3 패키지
4.2.4 배포
4.3 빌드 환경 직접 빌드해보기
4.3.1 Gruntfile.js
4.3.2 그런트 플러그인
4.3.3 그런트 플러그인 로드
4.3.4 작업 등록하기
4.4 주목하자!
4.5 정리

5장 데이터(타입), 데이터(구조), 데이터(베이스)
5.1 데이터 타입
5.1.1 다양한 데이터 타입이 있는 이유
5.1.2 기본 데이터 타입들
5.1.3 조합된 데이터 타입들
5.1.4 동적, 정적 데이터 타입 언어
5.2 데이터 구조
5.2.1 집합
5.2.2 스택
5.2.3 트리
5.2.4 그래프
5.2.5 효과적인 데이터 구조 정하기
5.3 데이터베이스
5.3.1 장기 저장소
5.3.2 관계형 데이터베이스
5.3.3 SQL에 대한 간략한 소개
5.4 정리

6장 정규 표현식
6.1 스팀팩을 쓴 Ctrl+F: 패턴 검색하기
6.2 자바스크립트에서 정규 표현식 사용하기
6.3 반복
6.3.1 ?
6.3.2 +
6.3.3 *
6.3.4 특수 문자와 예외 문자
6.3.5 {1,10}: 직접 길이를 지정하기
6.3.6 임의의 문자를 뜻하는 마침표
6.3.7 욕심은 금물
6.4 [A-Za-z]를 통해서 대괄호 이해하기
6.4.1 문자들의 리스트
6.4.2 범위
6.4.3 반대(Negation)
6.5 전화번호를 위한 패턴
6.6 \s는 필수
6.6.1 대괄호의 축약형
6.6.2 한계
6.6.3 (?:그룹)
6.6.4 (캡처)
6.6.5 태그 이름을 캡처하기
6.6.6 고급 찾기 및 변경
6.6.7 (한 줄의) 시작과 끝
6.7 플래그
6.7.1 Global 플래그
6.7.2 대소문자 무시
6.7.3 여러 줄 문자열(Multiline)
6.8 정규 표현식을 쓸 날이 올까?
6.8.1 grep
6.8.2 코드 리팩터링(Code Refactoring)
6.8.3 검증
6.8.4 데이터 추출
6.9 정리

7장 if, for, while 그리고 When
7.1 연산자
7.1.1 비교 연산자
7.1.2 논리 연산자
7.1.3 단항 연산자
7.1.4 이항 연산자
7.1.5 삼항 연산자
7.1.6 ‘참’과 ‘거짓’
7.1.7 달콤한 문법
7.1.8 배열을 모두 조사하기
7.1.9 사진 반복하기
7.1.10 중첩된 반복문
7.1.11 반복의 끝을 위해 필수인 break
7.1.12 무한 반복
7.1.13 break 재등장
7.1.14 언제 멈춰야 하는지를 모르는 경우
7.2 시점
7.2.1 이벤트
7.2.2 감시자
7.2.3 크론 작업
7.2.4 타임아웃
7.2.5 문제가 생기면, catch
7.2.6 견고한 코드 작성하기
7.3 정리

8장 함수와 메서드
8.1 함수의 구조
8.1.1 정의
8.1.2 호출
8.1.3 인자
8.1.4 콜 스택
8.2 코드 캡슐화
8.2.1 한 가지 일만 잘하기
8.2.2 분할 정복
8.2.3 모두 모여 있거나 각자 제자리에 있기
8.3 코드 재사용
8.3.1 범용적인 문제를 해결하기
8.3.2 적게 가지고 더 많이 일하기
8.3.3 반복하지 말자(DRY)
8.4 범위
8.4.1 전역 변수
8.4.2 지역 변수
8.4.3 변수 검색이 이뤄지는 원리
8.5 정리

9장 프로그래밍 표준
9.1 코딩 규칙들
9.1.1 표준 정하기
9.1.2 해킹, 할 것인가 말 것인가
9.1.3 지금 혹은 나중에 값을 치르기
9.1.4 유지보수가 가능한 코드를 작성하기
9.2 코드 형식화
9.2.1 일관성 갖기
9.2.2 공백 문자
9.3 저절로 되는 것은 없다. 규칙을 정하자
9.4 다른 사람이 작업한 것 사용하기
9.4.1 빨리 빌드하기
9.4.2 오픈 소스 소프트웨어
9.4.3 공동체가 만든 소프트웨어
9.4.4 직접 만들어야 할 때
9.5 좋은 습관
9.5.1 문서화
9.5.2 계획
9.5.3 테스트
9.6 정리

10장 문서화
10.1 코드의 의도를 문서화하기
10.1.1 코드 자체가 문서가 됨
10.1.2 당연한 것은 문서화하지 말자
10.1.3 철 지난 문서화의 위험성
10.1.4 문서화를 이용해 버그 찾기
10.2 나를 위해서 문서화하자
10.2.1 기억력이 얼마나 좋은가?
10.2.2 이해를 돕는 문서화
10.2.3 주석을 넘어선 문서화
10.3 타인을 위한 문서화
10.3.1 의사 결정을 문서화하기
10.3.2 정보 출처에 대한 문서화
10.3.3 배움을 주는 문서화
10.4 정리

11장 계획
11.1 만들기 전에 생각하라
11.2 명세서 작성하기
11.3 아키텍처 설계하기
11.3.1 다이어그램 그리기
11.3.2 시스템을 망가뜨려 보자
11.4 순환적 계획
11.5 확장성을 위한 설계
11.6 우선순위는?
11.6.1 사용자 경험
11.6.2 성능
11.6.3 보안성
11.6.4 범위성
11.6.5 일정
11.7 갈등 조정
11.7.1 제약사항을 정하기
11.7.2 할 수 있는 것과 없는 것을 알기
11.8 정리

12장 테스트와 디버깅
12.1 수동 테스트
12.1.1 만들면서 테스트하기
12.1.2 엉뚱한 일 해보기
12.1.3 개 사료 먹기
12.2 테스트 자동화
12.2.1 단위 테스트
12.2.2 Kittenbook을 위한 테스트 설정하기
12.2.3 끝내주는 실패!
12.2.4 몰래 감시하기
12.3 통합 테스트
12.3.1 문제를 빨리 찾아내기
12.4 디버깅
12.4.1 에러
12.4.2 로그
12.4.3 브레이크 포인트
12.4.4 조사와 감시 그리고 콘솔
12.4.5 코드를 한 단계씩 실행하기
12.4.6 콜 스택
12.4.7 문제의 진짜 원인을 찾기
12.4.8 코딩, 테스트, 디버깅, 반복
12.5 정리

13장 물고기 잡는 법 배우기: 프로그래밍 평생 교육
13.1 검색 방법
13.1.1 올바른 검색어 찾기
13.1.2 뒤에서부터 공략하기
13.1.3 좋은 자료 판별법
13.1.4 개인 블로그: 숨은 보석
13.2 프로그래밍 관련 질문 어디서, 언제 그리고 어떻게 할까?
13.2.1 어디서
13.2.2 언제
13.2.3 어떻게
13.2.4 가르치면서 배우기
13.3 정리

14장 스킬 기르기
14.1 스스로 kittenbook 완료하기
14.1.1 페이스북 새 단장하기
14.1.2 새로운 기능 추가하기
14.1.3 자신만의 Kittenbook을 공유하기
14.2 새 프로젝트 선정하기
14.2.1 본인의 문제부터 해결하기
14.2.2 야망을 갖기
14.2.3 도움 주고 받기
14.3 오픈 소스 프로젝트
14.3.1 깃허브
14.3.2 프로젝트 찾기
14.3.3 다른 참여 방법들
14.3.4 직접 만들기
14.4 무료 온라인 강의
14.4.1 오일러 프로젝트
14.4.2 유대이시티
14.4.3 코세라
14.4.4 코드 아카데미
14.4.5 칸 아카데미
14.4.6 튜토리얼
14.5 유료 강의
14.5.1 책 읽기
14.5.2 유대이시티와 코세라
14.5.3 트리하우스
14.6 정리

15장 고급 주제
15.1 버전 관리
15.1.1 왜 버전 관리를 써야 하나?
15.1.2 여럿이 일하기
15.1.3 서브버전
15.1.4 깃
15.2 객체지향 프로그래밍
15.2.1 클래스
15.2.2 상속
15.5.3 인스턴스
15.3 디자인 패턴
15.3.1 Pub/Sub 패턴
15.3.2 중재자 패턴
15.3.3 싱글톤
15.4 정리
[교보문고에서 제공한 정보입니다.]