편하게 읽는 자바 프로그래밍

고객평점
저자박용우
출판사항노트펍스, 발행일:2017/09/27
형태사항p.743 B5판:25
매장위치컴퓨터부(B2) , 재고문의 : 051-816-9500
ISBN9791196111908 [소득공제]
판매가격 30,000원   27,000원  (인터넷할인가:10%)
포인트 1,350점
배송비결제주문시 결제
  • 주문수량 

총 금액 : 0원

책 소개

요즘에도 컴퓨터 프로그래밍을 어렵게 시작하는 입문자들이 많은 것 같습니다. 과거와는 비교도 안 될 정도로 좋은 교재와 강의들이 많은데도 말입니다. 아무래도 그 이유는 교재나 강의를 통해서는 여전히 해소되지 않는 부분이 있어서일 것 같은데요.
아마도 용어 하나하나의 의미와 그것을 사용해야 하는 이유, 즉 필요성에 대한 개념을 설명해주는 부분을 만나기 힘들기 때문이 아닐까 생각합니다. 필자가 컴퓨터 프로그래밍 공부를 어려워했던 이유는 간단했습니다. 다음과 같은 상식적인 이유에 대한 설명을 얻기가 어려웠기 때문인데요.

1. 무엇을(What) 배우게 될 것인가
2. 왜(Why) 그것을 배워야 하는가 그리고 그것의 장/단점은 무엇인가
3. 그럼 그것을 어떻게(How) 사용하면 되는가

예를 들어서, 우리가 함수를 배운다고 가정하면 필자는 다음과 같은 방식의 학습을 원했던 것입니다.

1. 함수란 무엇인가
2. 함수를 사용하는 이유는 무엇이고 그것을 사용함으로써 얻는 장점과 단점은 무엇인가
3. 그럼 함수를 만들고 함수를 사용하는 방법은 어떻게 되는가 그리고 그 기준은 무엇인가

너무나 당연한 설명방식일 것 같은데, 의외로 위와 같이 설명해 주는 책을 찾기가 어려웠습니다. 그래서 결국 필자는 오랜 시간 직접 경험과 많은 공상을 통해서 학습하는 방식을 사용해 왔습니다.
저는 제가 겪었던 답답함을 입문자들도 느낄 것이라 생각합니다. 어쩌면 경력자들에게도 그것이 가려운 부분으로 남아 있을 것입니다. 그들에게 필자가 경험을 통해서 얻은 정보가 도움이 되었으면 하는 바람으로 집필을 하게 되었습니다. 이 책은 입문자들뿐만 아니라 이미 프로그래밍에 경험이 있는 경력자들에게도 도움이 될 것입니다. 과거 저와 같은 상황에서 개념적으로 아직 답을 얻지 못한 경험자들이라면 이 책이 분명히 가려운 부분을 긁어 줄 것이라 생각합니다.
아무쪼록 이 책이 많은 분들에게 도움이 되었으면 합니다. 이 책 외에도 이후로 나올 다른 책을 통해서도 그동안 필자가 경험했던 알고리즘, 데이터베이스, 웹, 보안, 게임, 네트워크, 암호학, 방법론 등 다양한 분야에서도 도움을 드렸으면 좋겠습니다.


나무이론 연구소(www.namoolab.com) 소장
뉴렉(newlec) 올림
 

작가 소개

저 : 박용우

필자는 상식적이고 체계적이고 논리적인 것을 좋아하는 그냥 보통의 소프트웨어 개발자입니다. 그리고 해야만 하는 것들을 쫓기보다는 하고 싶은 것을 쫓는 이상주의자이며 열정가입니다. 그래서 많은 공상과 시도를 하면서 오늘을 살았고 내일도 그렇게 살려고 합니다.
현재는 수학, 물리, IT의 기반지식을 공부하는 소모임인 “나무이론 연구소”를 통해서 공통 관심사를 가진 사람들과 함께 많은 공상을 하면서 지내고 있습니다. 또한 IT 교육서비스에 관심을 가지고 있어서 교육서비스 개발과 온/오프라인 교육장에서 소프트웨어 개발과 관련된 강의도 하고 있습니다.  

 

목 차

머리말

1부 컴퓨터 프로그래밍
1장 컴퓨터 프로그래밍 시작하기
1. 프로그램의 의미
2. 플랫폼
3. 컴퓨터 프로그램
4. 컴퓨터
5. CPU의 기능
6. 컴퓨터 프로그램 만들기
7. 컴퓨터 프로그램 실행하기
8. 코드와 언어
9. 코드의 변화
어셈블리어
컴파일 언어
10. 컴파일 언어
11. 개발환경 구축하기
자바 컴파일러 다운로드하기
자바 컴파일러 설치하기
설치된 컴파일러 확인하기
컴파일러 리졸빙과 path 환경변수

2부 자바 프로그래밍
1장 자바 언어의 기본 규칙 이해하기
1. 성적관리 프로그램 작성하기
자바 코드 컴파일하기
2. 기본 문법 1 : 자바는 두 개의 영역을 반드시 가진다
함수 영역
클래스 영역
3. 기본 문법 2 : 문장은 세미콜론(;)으로 구분해 주어야 한다
4. 기본 문법 3 : 컴파일러가 모르는 문자는 반드시 선언하고 사용해야만 한다
5. 가독성을 높이는 코드
변수명은 저장할 값의 의미를 가지도록 작성해야만 한다
코드 영역의 중첩 관계가 쉽게 파악되도록 작성해야 한다
코드에 주석을 다는 것은 코드 해석에 많은 도움을 준다
2장 IDE 이용하기
1. 통합 개발 환경
2. 이클립스(Eclipse) IDE
3. 이클립스 다운로드
4. 퍼스펙티브(Perspective) 선택
5. 프로젝트 만들기
6. 소스 코드 작성하기
7. 코드편집기의 편리한 기능
코드 들여쓰기/내어쓰기 기능
코드 자동 정렬 기능
주석 추가/제거 기능
8. 컴파일하기와 실행하기
3장 값과 형식
1. 값의 종류
2. 값의 형식지정
3. 형식 변환
4. 값의 크기와 단위
5. 정숫값의 표현 범위
6. 실숫값의 표현 범위
7. 실숫값의 비트구조
실숫값의 표현방식
부동 소수점(Float Point)
IEEE 754 방식
IEEE 754 연습할 때
8. 진법 변환방법
2진수를 10진수로 바꾸기
실숫값 2진수를 10진수로 바꾸기
10진수를 2진수로 바꾸기
2진수를 16진수로 바꾸기
9. 진법에 따른 숫자 표현
4장 연산자
1. 산술 연산자와 대입 연산자
2. 비교 연산자
3. 논리 연산자
4. 비트 연산자
5. 단항 연산자
6. 복합 대입 연산자
7. 연산자 우선순위
8. 컴파일 언어와 하드웨어의 관계
5장 콘솔 입/출력 플랫폼
1. 콘솔(Console)
2. 콘솔 입/출력
3. 입/출력 장치를 위한 인터페이스
4. 입/출력 API 함수
5. 플랫폼의 종류와 드라이버
6. 자바 언어와 플랫폼의 탄생
7. 자바 실행환경과 WORA
8. 콘솔 입/출력 API와 스트림
9. 출력 스트림 개체와 객체
10. 문자 코드
11. 문자 출력하기
12. 문자열 출력하기
13. 이스케이프 문자
14. 숫자 출력하기
15. 문자 입력받기
16. 성적 입력받기
6장 제어구조
1. 프로그램의 흐름 제어
2. 조건에 따른 흐름 제어 if 문
3. 배타적인 흐름을 만드는 else if 문
4. 나머지 조건을 책임지는 else 문
5. 메뉴를 구현할 때는 switch 문으로
6. 제어구조를 벗어나려면 break
7. 값의 유효성을 확인하기 위한 if 와 while
8. 반복 검사는 while
9. 선행처리 반복에는 do-while
10. while을 이용해 정해진 횟수 반복하기
11. 정해진 횟수 반복에는 for
12. 바람직하지 않게 사용되는 for 문
13. 합을 구하는 프로그램 예제
14. 절차에만 의존하는 프로그래밍
15. 별 찍기 예제와 주먹구구식 프로그래밍
16. 혼자 해보는 숙제
7장 배열
1. 일괄처리를 위한 저장소 배열
2. 일괄 처리가 불가능한 변수 목록
3. 배열을 이용한 데이터관리
4. 임시 변수를 활용한 배열의 사용
5. 배열을 이용한 성적입력
6. 성적 입력방식 개선하기
7. 배열의 성적 출력하기
8. 생명주기와 가시영역 문제들
9. 생명주기와 가시영역 바로 잡기
10. 이차원 배열을 이용해 오목 프로그램 만들기
11. 다차원 배열을 이용한 오목 프로그램
12. 상수형 변수와 열거형
변수를 이용해서 상수를 집중화화기
변수를 이용해서 상수에 의미를 달기
열거형
13. 2부 마무리하기
배열 초기화
톱니형 배열

3부 구조적인 프로그래밍
1장 함수
1. 함수는 코드를 나눌 수 있다
2. 자바로 함수 정의하기
매개 변수와 반환값이 모두 없는 함수 정의하기
매개 변수는 있고 반환값이 없는 함수 정의하기
매개 변수와 반환값이 모두 있는 함수 정의하기
3. 구조적인 프로그래밍
구조적인 성적관리 프로그램
main 함수부터 작성하기
함수 정의와 선언
4. 성적관리 함수 정의하기
매개변수와 참조
5. 메뉴입력 함수 구현하기
6. 성적출력 함수 구현하기와 함수 오버로딩(Overloading)
7. 성적입력 함수 구현하기
값 변수와 참조 변수
8. 영문 함수이름 명명규칙
9. 재귀함수
2장 데이터 구조화
1. 사용자형식
2. Exam 개체 정의하기와 데이터 구조화
3. printExam() 함수 수정하기
4. Exam 배열 생성하기와 main() 함수 수정하기
5. inputExam() 함수 수정하기
6. index를 품은 배열
7. 전역 변수·
3장 함수 재사용과 캡슐화의 필요성
1. 재사용 파일 만들기
2. 재사용 파일 사용하기
3. 함수 수납방법과 캡슐화
4. 캡슐을 깨는 행위와 보호모드
5. 이름 충돌과 패키지의 필요성

4부 객체지향 프로그래밍
1장 객체 중심의 프로그래밍
1. 객체지향 프로그래밍 - 표현방식을 바꾸자
2. 인스턴스 메소드와 스태틱 메소드
print 함수 수정하기
input 함수 수정하기
3. 생성자와 생성자 오버로드
4. 필수 계층구조와 UI와 Entity 분리
5. HAS A 관계
ExamConsole has a Exam
6. print 메소드 구현과 getter 메소드의 필요성
7. input 메소드 구현과 setter 메소드의 필요성
8. Composition과 Association Has A 관계
9. Aggregation Has A 관계
Exam 객체 집합을 이용하는 input 메소드 구현
Exam 객체 집합을 이용하는 print 메소드 구현
10. 메소드 호출 스택과 힙
2장 재사용방법 알아보기
1. 재사용하기
Exam 클래스 재사용하기
2. Has A 관계와 Is A 관계
3. 물려받기 - Is A 상속
4. 수정하기 - 오버라이드
5. this와 super
이클립스 기능을 이용해서 avg 메소드 오버라이딩
6. 부모 객체 초기화
7. 유연한 참조형식
8. 메소드 호출 규칙
9. 자바 플랫폼 살짝 맛보기
3장 추상화
1. 추상 클래스
2. Exam 클래스 추상화하기
3. 추상 메소드
4. ExamConsole 추상화
객체 생성 문제
추상화를 위한 점검 프로그램 만들기
input / print 메소드 재사용 문제
4장 인터페이스
1. interface를 이용한 ExamConsole 재사용
2. interface를 구현하는 방법 1
3. interface를 구현하는 방법 2 - 다중 상속
4. interface를 구현하는 방법 3 - 중첩 클래스
instance 중첩 클래스
static 중첩 클래스
5. interface를 구현하는 방법 4 - 익명 클래스
6. interface를 구현하는 방법 5 - 람다식
람다식 기본 문법·

5부 자바 언어의 도구
1장 래핑 클래스
1. Object 클래스
2. Number 클래스와 Auto Boxing/UnBoxing
3. String 클래스
문자열 비교
문자열 변환
문자열 조작하기
문자열 더하기와 StringBuilder
2장 콜렉션
1. 예제 준비하기
2. 점진적으로 배열 크기 늘리기
3. 데이터 수집자(콜렉션) 분리하기
ExamList 클래스 만들기
4. 범용적인 데이터 수집자(콜렉션) 만들기
5. 범용 콜렉션의 문제점과 제네릭 콜렉션
만능 콜렉션의 단점
미완성 콜렉션
제네릭 콜렉션 만들기
6. 콜렉션의 데이터 열거 서비스
열거 서비스 추가하기
7. 다중 스레드에서 열거자의 문제와 Iterator
동기와 비동기
비동기 방식으로 실행하기
다중 스레드에서의 열거자 문제
공유 자원의 동기화
current를 개별화
Iterable 인터페이스와 foreach 반복문
8. 자바가 제공하는 콜렉션들
Set 계열의 콜렉션
List 계열의 콜렉션
Map 계열의 콜렉션
3장 예외처리
1. 예외와 예외처리
2. 예외 처리하기
3. 예외 정의와 통지하기
4. 선택적으로 예외 처리하기
5. 마무리 처리하기

맺음말

역자 소개

01. 반품기한
  • 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
  • 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품 배송비
반품사유 반품 배송비 부담자
단순변심 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다.
상품의 불량 또는 오배송 고객 부담이 아닙니다.
03. 배송상태에 따른 환불안내
환불안내
진행 상태 결제완료 상품준비중 배송지시/배송중/배송완료
어떤 상태 주문 내역 확인 전 상품 발송 준비 중 상품이 택배사로 이미 발송 됨
환불 즉시환불 구매취소 의사전달 → 발송중지 → 환불 반품회수 → 반품상품 확인 → 환불
04. 취소방법
  • 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
  • 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
환불시점
결제수단 환불시점 환불방법
신용카드 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) 신용카드 승인취소
계좌이체 실시간 계좌이체 또는 무통장입금
취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준)
계좌입금
휴대폰 결제 당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소
전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준)
당일취소 : 휴대폰 결제 승인취소
익월취소 : 계좌입금
포인트 취소 완료 후, 당일 포인트 적립 환불 포인트 적립
06. 취소반품 불가 사유
  • 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
  • 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
  • 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
  • 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
  • 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
  • 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.

환불불가
상품군 취소/반품 불가사유
의류/잡화/수입명품 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우
계절상품/식품/화장품 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
가전/설치상품 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.)
자동차용품 상품을 개봉하여 장착한 이후 단순변심의 경우
CD/DVD/GAME/BOOK등 복제가 가능한 상품의 포장 등을 훼손한 경우
내비게이션, OS시리얼이 적힌 PMP 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우
노트북, 테스크탑 PC 등 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우