출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

ISBN : 9791157688197 / 840쪽 180 x 245 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
엥지유니버스
-
LearnAI Team
-
오유나 외 14인
-
정그린
- 27,000
- 21,600
- 22,500
- 23,400
출판사 리뷰
자바 프로그래머의 구직에 필요한 ‘종합 선물 세트’를 만난다!
프로그래머의 취업이나 이직 과정에서 기술 면접과 코딩 테스트가 자리 잡은 지도 여러 해가 흘렀습니다. 처음에는 구직자를 뽑는 기업도 시행착오를 겪었고, 구직자도 정보가 부족해 제대로 준비하지 못하는 시기가 있었지만, 이제는 자리를 잡아가는 느낌입니다. 이러한 흐름에 발맞춰서 기술 면접이나 코딩 테스트를 준비하는 데 필요한 책도 많이 늘었습니다. 그런데 IT 산업에서 큰 비중을 차지하는 자바라는 프로그래밍 언어에 맞춰 취업이나 이직을 준비하는 바이블과 같은 책은 상대적으로 적었습니다. 이 책은 자바 프로그래머를 위한 구직 바이블이 한 권은 꼭 있어야 하지 않겠느라는 의도에서 기획했습니다.
이 책의 매력을 한 마디로 설명한다면 ‘종합 선물 세트’라고 하겠습니다. 840쪽이라는 분량이 설명하듯 처음 취업을 준비하는 상황에 구직자가 해야 할 일, 이력서 쓰는 법, 인터뷰 요령, 연봉 협상 방법, 기술 면접과 코딩 테스트 연습이라는 모든 토끼를 잡을 수 있도록 구성되어 있습니다. 또한 이 책에서 제시하는 각종 내용은 구글, 마이크로소프트, 페이스북, 어도비 등 세계적으로 유명한 IT 기업의 최신 사례를 참고해 트렌드를 반영하려는 노력을 기울였습니다.
누구나 마음 한 쪽에는 높은 연봉을 받고 커리어를 쌓을 수 있는 기업에서 일하고 싶을 것입니다. 그러려면 해당 기업에 자신이 매력적인 인재임을 어필해야 하죠. 앞으로 이 책을 읽고 각 기업에서 채용하고 싶은 매력적인 자바 프로그래머가 되면 좋겠다는 희망을 담습니다. 또한 많은 자바 프로그래머가 자연스럽게 추천할 수 있는 책이 되면 좋겠다는 희망도 함께 담습니다.
이 책의 특징
시간 복잡도, 객체지향 프로그래밍, 재귀 알고리즘과 같은 다양한 주제의 코딩 테스트&인터뷰 문제 258개를 해결해봅니다.
코딩 테스트&인터뷰에서 소개하는 단계별 과정을 습득해 좋은 코드가 무엇인지 파악하고 이를 효율적으로 작성하는 방법을 배웁니다.
인기 있는 기술 인터뷰 질문을 살펴보고 까다로운 알고리즘을 관리 가능한 단위로 나누는 다양한 기술을 배웁니다.
올바르고 체계적인 논리력을 키울 수 있는 브레인 티저 알고리즘을 다룹니다.
취업 성공과 실패를 결정짓는 기술 외 일반적인 인터뷰 질문도 자세히 소개합니다.
IT 유명 기업이 자바 프로그래머에게 원하는 전체적인 그림을 살펴봅니다.
Part 1 인터뷰에서 묻는 기술 외적인 영역
1장 인터뷰를 준비하는 방법
1.1 초보자 인터뷰 로드맵
1.2 자기 성찰
1.3 취업 시장 분석
1.4 올바른 경험 쌓기
1.4.1 일단 시작하세요
1.4.2 온라인 공간에 존재감을 보여주세요
1.5 이력서 작성
1.5.1 이력서 심사관이 찾는 이력서란?
1.5.2 적당한 이력서의 길이
1.5.3 경력 작성 방법
1.5.4 프로젝트 소개 작성 방법
1.5.5 사용 가능한 기술 작성 방법
1.5.6 링크드인 이력서
1.6 입사 지원 과정
1.6.1 채용 중인 회사 탐색
1.6.2 이력서 제출
1.7 인터뷰 응시
1.7.1 화상 인터뷰
1.7.2 대면 인터뷰
1.7.3 흔히 하기 쉬운 실수
1.8 마치며
2장 유명 IT 기업 인터뷰 살펴보기
2.1 구글 인터뷰
2.2 아마존 인터뷰
2.3 마이크로소프트 인터뷰
2.4 페이스북 인터뷰
2.5 크로스오버 인터뷰
2.6 마치며
3장 일반적인 기술 외 질문 및 답변 방법
3.1 기술 외 질문의 목적이 무엇인가요?
3.2 어떤 경험을 했나요?
3.3 가장 좋아하는 프로그래밍 언어는 무엇인가요?
3.4 어떤 일을 하고 싶은가요?
3.5 경력의 목표가 무엇인가요?
3.6 어떤 근무 방식을 선호하나요?
3.7 왜 이직하려고 하나요?
3.8 연봉 이력이 어떻게 되나요?
3.9 우리가 왜 당신을 고용해야 하나요?
3.10 얼마나 많은 연봉을 받고 싶은가요?
3.11 질문이 있나요?
3.12 마치며
4장 불합격에 대처하는 방법
4.1 채용 제안을 수락하거나 거절하기
4.2 불합격할 수도 있다는 사실을 인정하기
4.3 회사가 다양한 이유로 지원자를 불합격시킴을 이해하기
4.3.1 인터뷰 이후 피드백 받기
4.4 불합격 요인을 객관적으로 파악하고 제거하기
4.5 회사에 집착하지 않기
4.6 자신감 잃지 않기
4.7 마치며
5장 기술 인터뷰 접근 방법
5.1 기술 시험
5.2 코딩 테스트
5.2.1 코딩 테스트에 특화한 문제는 어렵기 마련이다
5.2.2 코딩 테스트 문제를 해결하는 방법
5.3 마치며
Part 2 자바 핵심 개념 이해하기
6장 객체지향 프로그래밍
6.1 객체지향 프로그래밍의 개념 이해
6.1.1 객체란 무엇인가?
6.1.2 클래스란 무엇인가?
6.1.3 추상화란 무엇인가?
6.1.4 캡슐화란 무엇인가?
6.1.5 상속이란 무엇인가?
6.1.6 다형성이란 무엇인가?
6.1.7 연관이란 무엇인가?
6.1.8 집약이란 무엇인가?
6.1.9 구성이란 무엇인가?
6.2 SOLID 원칙 이해
6.2.1 S란 무엇인가?
6.2.2 O란 무엇인가?
6.2.3 L이란 무엇인가?
6.2.4 I란 무엇인가?
6.2.5 D란 무엇인가?
6.3 객체지향 프로그래밍, SOLID, GOF 디자인 패턴과 관련한 유명 질문
6.3.1 객체지향 프로그래밍에서 메서드 오버라이딩이란 무엇인가?
6.3.2 객체지향 프로그래밍에서 메서드 오버로딩이란 무엇인가?
6.3.3 자바에서 공변 메서드 오버라이딩이란 무엇인가?
6.3.4 오버라이딩 및 오버로딩 메서드에서 예외를 다룰 때 주요 제한 사항은 무엇인가?
6.3.5 슈퍼클래스의 오버라이드된 메서드를 서브클래스의 오버라이딩 메서드에서 어떻게 호출할 수 있는가?
6.3.6 main 메서드를 오버라이드 또는 오버로드할 수 있는가?
6.3.7 자바에서 static이 아닌 메서드를 static 메서드로 오버라이드할 수 있는가?
6.3.8 자바 인터페이스 안에 abstract가 아닌 메서드를 포함할 수 있는가?
6.3.9 default 메서드를 가지는 인터페이스와 추상 클래스의 주요 차이점은 무엇인가?
6.3.10 추상 클래스와 인터페이스의 주요 차이점은 무엇인가?
6.3.11 abstract 메서드가 없는 추상 클래스를 만들 수 있는가?
6.3.12 추상이면서 동시에 final인 클래스를 만들 수 있는가?
6.3.13 다형성, 오버라이딩, 오버로딩의 차이점은 무엇인가?
6.3.14 바인딩 작업이란 무엇인가?
6.3.15 정적 바인딩과 동적 바인딩의 주요 차이점은 무엇인가?
6.3.16 자바에서 메서드 하이딩이란 무엇인가?
6.3.17 자바에서 가상 메서드를 작성할 수 있는가?
6.3.18 추상화와 다형성의 차이점은 무엇인가?
6.3.19 다형성을 구현하는 방법으로 오버로딩을 고려할 수 있는가?
6.3.20 데커레이터 패턴에 적합한 객체지향 프로그래밍 개념은 무엇인가?
6.3.21 싱글턴 패턴은 언제 사용해야 하는가?
6.3.22 전략 패턴과 상태 패턴의 차이점은 무엇인가?
6.3.23 프록시 패턴과 데커레이터 패턴의 차이점은 무엇인가?
6.3.24 퍼사드 패턴과 데커레이터 패턴의 차이점은 무엇인가?
6.3.25 템플릿 메서드 패턴과 전략 패턴의 주요 차이점은 무엇인가?
6.3.26 빌더 패턴과 팩토리 패턴의 주요 차이점은 무엇인가?
6.3.27 어댑터 패턴과 브리지 패턴의 주요 차이점은 무엇인가?
6.4 코딩 테스트
6.4.1 코딩 테스트 1: 주크박스
6.4.2 코딩 테스트 2: 자판기
6.4.3 코딩 테스트 3: 카드 한 벌
6.4.4 코딩 테스트 4: 주차장
6.4.5 코딩 테스트 5: 온라인 도서관 시스템
6.4.6 코딩 테스트 6: 해시 테이블
6.4.7 코딩 테스트 7: 파일 시스템
6.4.8 코딩 테스트 8: 튜플
6.4.9 코딩 테스트 9: 영화표 예약 시스템이 있는 영화관
6.4.10 코딩 테스트 10: 원형 바이트 버퍼
6.5 마치며
7장 알고리즘의 빅 오 분석법
7.1 유추
7.2 빅 오 시간 복잡도
7.3 최고의 경우, 최악의 경우, 기대하는 경우
7.4 빅 오 예제
7.4.1 예제 1: O(1)
7.4.2 예제 2: O(n) - 선형 시간 알고리즘
7.4.3 예제 3: O(n) - 상수 제외
7.4.4 예제 4: 비우세항 제외
7.4.5 예제 5: 입력 데이터가 다르면 변수도 다르게 설정
7.4.6 예제 6: 서로 다른 단계의 합 또는 곱
7.4.7 예제 7: logn 실행 시간
7.4.8 예제 8: 재귀 실행 시간
7.4.9 예제 9: 이진 트리의 중위 순회
7.4.10 예제 10: n의 변동
7.4.11 예제 11: 메모이제이션
7.4.12 예제 12: 행렬의 1/2 반복 실행
7.4.13 예제 13: 중첩 반복문에서 O(1) 식별
7.4.14 예제 14: 배열의 1/2 반복 실행
7.4.15 예제 15: 빅 오 표현식 줄이기
7.4.16 예제 16: O(logn)의 시간 복잡도를 가지는 반복 실행
7.4.17 예제 17: 문자열 비교
7.4.18 예제 18: 팩토리얼의 빅 오
7.4.19 예제 19: n 표기법을 사용할 때 주의 사항
7.4.20 예제 20: 합과 반복 횟수
7.4.21 예제 21: 빅 오의 반복 횟수
7.4.22 예제 22: 자릿수
7.4.23 예제 23: 정렬
7.5 기술 인터뷰를 위한 꿀팁
7.6 마치며
8장 재귀 및 동적 프로그래밍
8.1 재귀의 개요
8.1.1 재귀 문제 인식하기
8.2 동적 프로그래밍의 개요
8.2.1 메모이제이션
8.2.2 태뷸레이션
8.3 코딩 테스트
8.3.1 코딩 테스트 1: 로봇 격자 지도
8.3.2 코딩 테스트 2: 하노이의 탑
8.3.3 코딩 테스트 3: 요세푸스
8.3.4 코딩 테스트 4: 영역 구하기
8.3.5 코딩 테스트 5: 동전 거스름돈
8.3.6 코딩 테스트 6: 5개의 탑
8.3.7 코딩 테스트 7: 마법의 인덱스
8.3.8 코딩 테스트 8: 떨어지는 공
8.3.9 코딩 테스트 9: 상자 쌓기
8.3.10 코딩 테스트 10: 문자열 순열
8.3.11 코딩 테스트 11: 기사의 여행
8.3.12 코딩 테스트 12: 중괄호 여닫기
8.3.13 코딩 테스트 13: 계단
8.3.14 코딩 테스트 14: 부분 집합 합계
8.3.15 코딩 테스트 15: 줄바꿈
8.4 마치며
9장 비트 조작
9.1 비트 연산 개요
9.1.1 자바 int형의 이진 표기법
9.1.2 비트 연산자
9.1.3 비트 시프트 연산자
9.1.4 비트를 다루는 요령
9.2 코딩 테스트
9.2.1 코딩 테스트 1: 비트값 가져오기
9.2.2 코딩 테스트 2: 비트값 설정하기
9.2.3 코딩 테스트 3: 비트값 초기화하기
9.2.4 코딩 테스트 4: 손으로 이진수 더하기
9.2.5 코딩 테스트 5: 코드로 이진수 더하기
9.2.6 코딩 테스트 6: 손으로 이진수 곱하기
9.2.7 코딩 테스트 7: 코드로 이진수 곱하기
9.2.8 코딩 테스트 8: 손으로 이진수 빼기
9.2.9 코딩 테스트 9: 코드로 이진수 빼기
9.2.10 코딩 테스트 10: 손으로 이진수 나누기
9.2.11 코딩 테스트 11: 코드로 이진수 나누기
9.2.12 코딩 테스트 12: 비트 치환하기
9.2.13 코딩 테스트 13: 가장 길게 연속된 1
9.2.14 코딩 테스트 14: 다음과 이전 숫자
9.2.15 코딩 테스트 15: 변환
9.2.16 코딩 테스트 16: 식 최대화하기
9.2.17 코딩 테스트 17: 홀수와 짝수 비트 교체하기
9.2.18 코딩 테스트 18: 비트 회전
9.2.19 코딩 테스트 19: 숫자 계산하기
9.2.20 코딩 테스트 20: 고유한 요소
9.2.21 코딩 테스트 21: 중복값 검색하기
9.2.22 코딩 테스트 22: 고유 요소 2개
9.2.23 코딩 테스트 23: 멱집합
9.2.24 코딩 테스트 24: 유일하게 설정된 비트의 위치 검색하기
9.2.25 코딩 테스트 25: 부동소수점을 이진수 혹은 반대로 변환하기
9.3 마치며
.
.
(중략)
.
.
Part 4 동시성과 함수형 프로그래밍
16장 동시성
16.1 자바 동시성(멀티스레딩)의 개요
16.2 기술 인터뷰
16.2.1 기술 인터뷰 1: 스레드 생명 주기 상태
16.2.2 기술 인터뷰 2: 교착 상태
16.2.3 기술 인터뷰 3: 경쟁 상태
16.2.4 기술 인터뷰 4: 재진입 가능한 록
16.2.5 기술 인터뷰 5: Executor와 ExecutorService
16.2.6 기술 인터뷰 6: Runnable과 Callable
16.2.7 기술 인터뷰 7: 기아 상태
16.2.8 기술 인터뷰 8: 라이브 록
16.2.9 기술 인터뷰 9: start와 run 메서드
16.2.10 기술 인터뷰 10: Thread와 Runnable
16.2.11 기술 인터뷰 11: CountDownLatch와 CyclicBarrier
16.2.12 기술 인터뷰 12: wait와 sleep
16.2.13 기술 인터뷰 13: ConcurrentHashMap과 Hashtable
16.2.14 기술 인터뷰 14: ThreadLocal
16.2.15 기술 인터뷰 15: submit과 execute
16.2.16 기술 인터뷰 16: interrupted와 isInterrupted
16.2.17 기술 인터뷰 17: 스레드 중단
16.2.18 기술 인터뷰 18: 스레드 사이의 데이터 공유
16.2.19 기술 인터뷰 19: ReadWriteLock
16.2.20 기술 인터뷰 20: 생산자-소비자
16.3 마치며
17장 함수형 프로그래밍
17.1 자바 함수형 프로그래밍의 개요
17.1.1 함수형 프로그래밍의 핵심 개념
17.2 기술 인터뷰
17.2.1 기술 인터뷰 1: 람다식 구성
17.2.2 기술 인터뷰 2: 함수형 인터페이스
17.2.3 기술 인터뷰 3: 컬렉션과 스트림
17.2.4 기술 인터뷰 4: map 함수
17.2.5 기술 인터뷰 5: flatMap 함수
17.2.6 기술 인터뷰 6: map과 flatMap 함수의 차이점
17.2.7 기술 인터뷰 7: filter 함수
17.2.8 기술 인터뷰 8: 중간 연산과 종료 연산
17.2.9 기술 인터뷰 9: peek 함수
17.2.10 기술 인터뷰 10: 지연 스트림
17.2.11 기술 인터뷰 11: 함수형 인터페이스와 일반 인터페이스
17.2.12 기술 인터뷰 12: Supplier와 Consumer 인터페이스
17.2.13 기술 인터뷰 13: Predicate 인터페이스
17.2.14 기술 인터뷰 14: findFirst와 findAny 메서드
17.2.15 기술 인터뷰 15: 배열을 스트림으로 변환
17.2.16 기술 인터뷰 16: 병렬 스트림
17.2.17 기술 인터뷰 17: 메서드 참조
17.2.18 기술 인터뷰 18: default 메서드
17.2.19 기술 인터뷰 19: Iterator와 Spliterator 인터페이스
17.2.20 기술 인터뷰 20: Optional
17.2.21 기술 인터뷰 21: String::valueOf
17.3 마치며
18장 단위 테스트
18.1 단위 테스트 개요
18.2 기술 인터뷰
18.2.1 기술 인터뷰 1: AAA
18.2.2 기술 인터뷰 2: FIRST
18.2.3 기술 인터뷰 3: 테스트 픽스처
18.2.4 기술 인터뷰 4: 예외 테스트
18.2.5 기술 인터뷰 5: 개발자 또는 테스터
18.2.6 기술 인터뷰 6: 제이유닛 확장 기능
18.2.7 기술 인터뷰 7: @Before* 및 @After* 애너테이션
18.2.8 기술 인터뷰 8: 모킹과 스텁
18.2.9 기술 인터뷰 9: 테스트 스위트
18.2.10 기술 인터뷰 10: 테스트 메서드 무시
18.2.11 기술 인터뷰 11: 가정문
18.2.12 기술 인터뷰 12: @Rule
18.2.13 기술 인터뷰 13: 테스트 메서드의 반환형
18.2.14 기술 인터뷰 14: 동적 테스트
18.2.15 기술 인터뷰 15: 중첩 테스트
18.3 마치며
19장 시스템 확장성
19.1 확장성의 개요
19.2 기술 인터뷰
19.2.1 기술 인터뷰 1: 확장 유형
19.2.2 기술 인터뷰 2: 고가용성
19.2.3 기술 인터뷰 3: 짧은 지연시간
19.2.4 기술 인터뷰 4: 클러스터링
19.2.5 기술 인터뷰 5: 지연시간, 대역폭, 처리량
19.2.6 기술 인터뷰 6: 부하분산
19.2.7 기술 인터뷰 7: 고정 세션
19.2.8 기술 인터뷰 8: 샤딩
19.2.9 기술 인터뷰 9: 비공유 아키텍처
19.2.10 기술 인터뷰 10: 장애 극복 기능
19.2.11 기술 인터뷰 11: 세션 복제
19.2.12 기술 인터뷰 12: CAP 정리
19.2.13 기술 인터뷰 13: 소셜 네트워크
19.3 확장성에 관한 통찰력을 얻는 10가지 문제
19.3.1 URL 단축 서비스 설계
19.3.2 글로벌 동영상 스트리밍 서비스 설계
19.3.3 글로벌 채팅 서비스 설계
19.3.4 게시판 서비스 및 소셜 네트워크 설계
19.3.5 글로벌 파일 저장 및 공유 서비스 설계
19.3.6 초대형 소셜 미디어 서비스 설계
19.3.7 차량 공유 서비스 설계
19.3.8 검색 엔진 관련 서비스 설계
19.3.9 API 비율 제한기 설계
19.3.10 주변 검색 서비스 설계
19.3.11 정리
19.4 마치며





































