HOME > 상세정보

상세정보

네이버를 만든 기술, 읽으면서 배운다 : 자바편 (8회 대출)

자료유형
단행본
개인저자
강경태, 저 강운덕, 저 구태진, 저 김민수, 저 김택수, 저 박세훈, 저 송기선, 저 이상민, 저 정상혁, 저 최동순, 저
서명 / 저자사항
네이버를 만든 기술, 읽으면서 배운다 : 자바편 / 강경태 [외]지음
발행사항
파주 :   위키북스,   2015  
형태사항
304 p. : 삽화 ; 24 cm
총서사항
Tech@Naver ;010
ISBN
9788998139780
일반주기
공저자: 강운덕, 구태진, 김민수, 김택수, 박세훈, 송기선, 이상민, 정상혁, 최동순  
색인수록  
000 00000cam c2200205 c 4500
001 000045833374
005 20150507111338
007 ta
008 150506s2015 ggka 001c kor
020 ▼a 9788998139780 ▼g 93000
035 ▼a (KERIS)BIB000013719884
040 ▼a 241050 ▼c 241050 ▼d 211009
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b J41 2015z2
245 0 0 ▼a 네이버를 만든 기술, 읽으면서 배운다 : ▼b 자바편 / ▼d 강경태 [외]지음
260 ▼a 파주 : ▼b 위키북스, ▼c 2015
300 ▼a 304 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a Tech@Naver ; ▼v 010
500 ▼a 공저자: 강운덕, 구태진, 김민수, 김택수, 박세훈, 송기선, 이상민, 정상혁, 최동순
500 ▼a 색인수록
700 1 ▼a 강경태, ▼e
700 1 ▼a 강운덕, ▼e
700 1 ▼a 구태진, ▼e
700 1 ▼a 김민수, ▼e
700 1 ▼a 김택수, ▼e
700 1 ▼a 박세훈, ▼e
700 1 ▼a 송기선, ▼e
700 1 ▼a 이상민, ▼e
700 1 ▼a 정상혁, ▼e
700 1 ▼a 최동순, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.133 J41 2015z2 등록번호 111735895 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

TECH@NAVER 시리즈. 이 책은 네이버 기술 블로그인 헬로월드(http://helloworld.naver.com)에 올라왔던 자바와 관련된 글을 엄선해서 엮은 책이다. 헬로월드는 네이버 사내 기술 지식을 외부 개발자에게 공유할 목적으로 2011년 12월에 개설된 블로그다.

국내 소프트웨어 개발 환경에서 자바 개발의 비중이 높고 다양한 언어와 플랫폼을 사용하는 네이버에서도 자바 개발은 개발의 큰 축을 담당하고 있다. 네이버 자바 개발자들이 축적한 개발 지식과 문제 해결 경험, 실험 결과를 담은 이 책은 자바 라이브러리를 설계하거나 사용자가 많은 시스템을 운영하는 등 자바를 더 깊이 이해하고 싶은 독자에게 도움이 될 것이다.

네이버 개발자들이 전하는 실전 자바

이 책은 네이버 기술 블로그인 헬로월드(http://helloworld.naver.com)에 올라왔던 자바와 관련된 글을 엄선해서 엮은 책이다. 헬로월드는 네이버 사내 기술 지식을 외부 개발자에게 공유할 목적으로 2011년 12월에 개설된 블로그다.

국내 소프트웨어 개발 환경에서 자바 개발의 비중이 높고 다양한 언어와 플랫폼을 사용하는 네이버에서도 자바 개발은 개발의 큰 축을 담당하고 있다. 네이버 자바 개발자들이 축적한 개발 지식과 문제 해결 경험, 실험 결과를 담은 이 책은 자바 라이브러리를 설계하거나 사용자가 많은 시스템을 운영하는 등 자바를 더 깊이 이해하고 싶은 독자에게 도움이 될 것이다.

★ 이 책에서 다루는 내용 ★

◎ 자바 문법이나 라이브러리의 불편한 점, API와 라이브러리를 사용할 때 조심할 점, JDK에서 개선된 점
◎ 애플리케이션에 문제가 생겼을 때 오류 분석에 필요한 지식과 JVM이 남기는 정보를 분석하는 방법, JVM 자체의 오류에 대처한 경험
◎ 시스템의 성능과 안정성을 개선하기 위해 깊이 알아야 할 영역인 가비지 컬렉션에 관한 지식
◎ 자바에서의 데이터베이스 연결 설정 분석


정보제공 : Aladin

저자소개

이상민(지은이)

삼성SDS에서 개발을 시작하여 NAVER, NHN 등의 회사에서 일했다. 《자바의 신》, 《자바 성능 튜닝 이야기》 등 다수의 IT 서적을 집필하였다. 지금은 국내 최고의 스마트 통합 주차 회사인 파킹 클라우드에서 개발 총괄 이사로 일하고 있다.

정상혁(지은이)

JVM과 리눅스를 둘러싼 오픈소스 생태계에 관심이 많은 개발자다. 네이버의 여러 조직에서 신규 서비스와 라이브러리 개발, 문제 해결 지원, 교육 업무를 수행했다. 업무 자동화의 일환으로 가끔씩 긴 글을 쓴다.

강경태(지은이)

SK C&C에서 근무했으며 현재는 네이버 스포츠 개발의 리더 역할을 하고 있다. CI(continuous integration)에 대한 지식과 경험이 많으며 ICT 전 분야에 관심이 있다.

강운덕(지은이)

네이버에서 비동기 네트워크 라이브러리와 전사 자바 프레임워크, 트러블슈팅 업무를 수행했다. 현재는 Naver Labs에서 애플리케이션 성능 관리 플랫폼인 Pinpoint를 개발하고 있다.

구태진(지은이)

2009년 네이버에 입사해 네트워크 라이브러리, 메시지 큐, 게이트웨이 서버 등을 개발했다. 현재는 Naver Labs에서 애플리케이션 성능 관리 플랫폼인 Pinpoint를 개발하고 있다.

김민수(지은이)

현대정보기술, 야후!코리아와 벤처 기업에서 보안과 웹 서비스, 모바일 분야의 개발을 했다. 지금은 네이버에서 UGC 서비스를 담당하고 있다.

김택수(지은이)

네이버에서 모바일 검색, 오픈캐스트, 지식백과, 네이버 캐스트 등의 서비스를 만들었고 지금은 다음카카오에서 카카오톡 서버를 개발하고 있다.

박세훈(지은이)

자바 가상 머신에 관심이 많은 개발자. 네이버에서 위치 기반 서비스, 메시지 큐 등의 플랫폼 개발자로 근무하고 있다. 최근에는 분산 데이터 저장소, 빅데이터 분석 등으로 관심 분야를 넓히고 있다.

송기선(지은이)

마법의 성에서 마법의 코드를 작성하는 마법과도 같은 남자(아마도). Naver Labs에서 일하고 있다.

최동순(지은이)

새로운 아이디어를 얻을 수 있는 여행을 좋아하고 이것저것 작은 것들을 손으로 직접 만들어 보는 것을 좋아한다. 요즘은 분산 환경에서의 효율적인 협업을 위한 컨센서스 프로토콜(consensus protocol)에 관심이 많다.

정보제공 : Aladin

목차

목차
추천사 = 4
머리말 = 5
감사의 말 = 7
1부 자바의 API 이해하기
 01 자바의 날짜와 시간 API = 19
  자바 클래스에 담긴 제도의 역사 = 19
   1582년 10월 4일의 다음 날은? = 20
   서울 1988년 5월 7일 23시의 1시간 후는? = 21
   서울 1961년 8월 9일 23시 59분의 1분 후는? = 23
   협정세계시 2012년 6월 30일 23시 59분 59초의 2초 후는? = 25
  JDK 기본 날짜 클래스의 문제점 = 27
   불변 객체가 아니다 = 28
   int 상수 필드의 남용 = 30
   헷갈리는 월 지정 = 30
   Date 클래스와 Calendar 클래스의 불편한 역할 분담 = 32
   오류에 둔감한 시간대 아이디 지정 = 33
   java util Date 하위 클래스의 문제 = 33
  자바의 개선된 날짜, 시간 API, Joda-Time = 34
  JSR-310, 새로운 자바의 날짜 API = 38
  마치며 = 42
 02 자바의 HashMap은 어떻게 작동하는가? = 44
  HashMap과 HashTable = 45
  해시 분포와 해시 충돌 = 46
  자바 8 HashMap에서의 separate chaining = 50
  해시 버킷의 동적 확장 = 53
  보조 해시 함수 = 55
  String 객체에 대한 해시 함수 = 57
  자바 7에서 String 객체에 대한 별도의 해시 함수 = 58
  마치며 = 60
 03 자바에서 외부 프로세스를 실행할 때 = 61
  java.lang.Process 클래스를 생성하는 2가지 방법 = 61
  외부 프로세스가 전달하는 스트림 처리 문제 = 63
  특정 환경에서 발생하는 메모리 할당 실패 문제 = 66
   fork-exec 호출이 문제가 되는 경우 = 66
   대처 방안 = 68
  Security Manager 클래스를 이용한 실행 제한 = 70
   정책 설정 파일 위치와 실행 옵션 = 71
   정책 설정 방법 = 72
  마치며 = 74
 04 람다가 이끌어 갈 모던 자바 = 75
  컬렉션 처리 = 76
  클래식 자바 = 77
   기본 컬렉션 처리 API = 77
   자바의 기본 컬렉션을 개선한 라이브러리 = 79
  JVM에서 실행되는 다른 언어의 익명 함수 = 90
  모던 자바 = 97
   클로저와 람다 표현식을 둘러싼 논란 = 97
   람다 표현식과 Stream 인터페이스의 도입 = 99
   람다 표현식의 내부 구현 = 107
   애플리케이션 코드의 개선 = 112
   람다 표현식을 활용한 프레임워크 = 116
  마치며 = 120
2부 문제 분석과 사례
 05 JVM 이해하기 = 123
  가상 머신 = 123
  자바 바이트코드 = 125
   현상 = 125
   원인 = 126
  클래스 파일 포맷 = 130
  JVM 구조 = 135
   클래스 로더 = 136
   런타임 데이터 영역 = 138
   실행 엔진 = 142
  자바 SE 7의 JVM 명세 = 146
   String in switch Statements = 147
  자바 SE 8의 JVM 명세 = 149
  마치며 = 150
 06 스레드 덤프 분석하기 = 151
  자바 그리고 스레드 = 151
  자바 스레드 배경 지식 = 152
   스레드 동기화 = 152
   스레드 상태 = 152
   스레드의 종류 = 153
  스레드 덤프 생성 = 153
   jstack을 이용하는 방법 = 154
   자바 VisualVM을 이용하는 방법 = 154
   kill을 이용하는 방법 = 155
  스레드 덤프의 정보 = 156
  스레드 덤프 유형별 패턴 = 157
   잠금을 소유하지 못하는 경우(BLOCKED) = 157
   교착 상태인 경우 = 159
   원격 서버로부터 메시지를 수신받기 위해 계속 대기하는 경우 = 161
   WAIT 상태에 있는 경우 = 161
   스레드 리소스를 정상적으로 정리하지 못하는 경우 = 162
  스레드 덤프를 이용한 문제 해결 사례 = 163
   상황 1: CPU 사용률이 비정상적으로 높을 때 = 163
   상황 2: 실행 성능이 비정상적으로 느릴 때 = 164
  스레드 덤프 분석을 쉽게 만드는 코딩 = 165
   스레드에 이름 부여하기 = 165
   MBean으로 더 자세한 정보 얻기 = 167
  마치며 = 168
 07 자바 애플리케이션 분석을 위한 BTrace = 169
  BTrace란? = 169
  특정 메서드 호출 시의 스택 트레이스 확인 = 171
  실행 시간과 횟수 측정 = 174
  객체의 필드값 확인 = 178
  BTrace의 제약사항 = 179
  마치며 = 180
 08 하나의 메모리 누수를 잡기까지 = 181
  장애 징조 - 상반기의 장애 처리 일지 = 181
  모니터링 개선 = 182
   나 혼자 죽을 수 없다 = 182
   문자 메시지 스트레스 = 183
  문제 원인 찾기 = 184
  문제 해결 = 186
   히스토그램 비교 = 186
   힙 덤프 분석 = 187
  마치며 = 191
 09 고맙다 JVM, 사과해라 JVM 크래시 = 193
  JVM 오류 현상 = 194
  JVM의 명백한 버그 = 194
  버그 리포트와 릴리스 노트 = 197
  마치며 = 199
3부 가비지 컬렉션
 10 자바 가비지 컬렉션의 작동 과정 = 201
  가비지 컬렉션 과정(Generational Garbage Collection) = 201
  Young 영역의 구성 = 204
  Old 영역에 대한 가비지 컬렉션 = 206
   Serial GC(-XX:+UseSerialGC) = 207
   Parallel GC(-XX:+UseParallelGC) = 207
   Parallel Old GC(-XX:+UseParallelOldGC) = 208
   CMS GC(-XX:+UseConcMarkSweepGC) = 208
   G1 GC = 209
  마치며 = 211
 11 가비지 컬렉션 모니터링 방법 = 212
  가비지 컬렉션 모니터링이란? = 212
  가비지 컬렉션을 모니터링하는 방법은? = 213
  jstat = 213
  -verbosegc 옵션 = 219
  VisualVM과 Visual GC = 222
  HPjmeter = 224
  마치며 = 225
 12 가비지 컬렉션 튜닝 = 226
  가비티 컬렉션 튜닝을 꼭 해야 할까? = 226
   Old 영역으로 넘어가는 객체의 수 최소화 = 228
   Major GC 시간 줄이기 = 228
  가비지 컬렉션의 성능을 결정하는 옵션 = 228
  가비지 컬렉션 튜닝의 절차 = 230
   1. 가비지 컬렉션 상황 모니터링 = 230
   2. 모니터링 결과 분석 후 가비지 컬렉션 튜닝 여부 결정 = 231
   3. 가비지 컬렉션 방식과 메모리 크기 지정 = 231
   4. 결과 분석 = 231
   5. 결과가 만족스러울 경우 전체 서버에 반영 및 종료 = 232
  가비지 컬렉션 상황 모니터링 및 결과 분석하기 = 232
  가비지 컬렉션 방식 지정과 메모리 크기 지정 = 233
   가비지 컬렉션 방식 지정 = 233
   메모리 크기 지정 = 235
  가비지 컬렉션 튜닝 결과 분석 = 236
  튜닝 사례 = 237
   튜닝 사례 1 = 237
   튜닝 사례 2 = 240
  마치며 = 243
 13 자바의 Reference 클래스와 가비지 컬렉션 = 244
  가비지 컬렉션과 접근 가능성 = 245
  soft reference, weak reference, phantom reference = 247
  Reference 클래스와 접근 가능성 = 248
  접근 가능성의 세기 = 249
  softly reachable과 SoftReference = 251
  weakly reachable과 WeakReference = 252
  ReferenceQueue = 252
  phantomly reachable과 PhantomReference = 253
  마치며 = 255
 14 가비지 컬렉션과 Statement Pool
  HTTP 요청에서 응답까지 가비지 컬렉션 발생 과정 = 256
  Statement 객체의 크기 = 257
  Statement Pool의 캐시 적중률이 Major GC에 미치는 영향 = 258
  마치며 = 259
 15 아파치 MaxClients와 톰캣의 Major GC = 260
  서비스 운영 환경 = 260
  stop the world와 503 오류 = 261
  MaxClients와 backlog = 262
  MaxClients 설정 계산 방법 = 264
  마치며 = 265
4부 데이터베이스 연결 설정
 16 JDBC의 타임아웃 이해하기 = 267
  어느 날 발생한 DDoS 공격, 그 뒤로 먹통이 된 WAS = 267
  왜 JDBC 드라이버에 대해 알아야 하는가? = 268
  WAS와 DBMS의 통신 시 타임아웃 계층 = 269
   트랜잭션 타임아웃이란? = 271
   Statement 타임아웃이란? = 272
  JDBC 드라이버의 Statement 타임아웃 작동 방식 = 272
  JDBC 드라이버의 소켓 타임아웃이란? = 279
  운영체제 수준의 소켓 타임아웃 설정 = 279
  마치며 = 280
 17 Commons DBCP 이해하기 = 281
  버전 선택과 속성 설정 방법 = 282
   JDK 버전과 Commons DBCP 버전 = 282
   Commons DBCP 속성 설정 = 283
  커넥션의 개수 = 284
   커넥션 풀의 저장 구조 = 284
   커넥션 개수 관련 속성 = 286
  커넥션을 얻기 전 대기 시간 = 288
   TPS(transaction per seconds) = 288
   TPS와 커넥션 개수와의 관계 = 289
   적절한 maxWait 값은? = 292
  커넥션의 검사와 정리 = 293
   유효성 검사 쿼리 설정 = 293
   Evictor 스레드와 관련된 속성 = 295
  statement pooling 관련 옵션 = 297
  기본값을 그대로 쓰기를 권장하는 옵션 = 297
   removeAbandoned 옵션 = 297
   defaultAutoCommit 속성 = 298
  마치며 = 298

관련분야 신착자료

Ramamurthy, Bina (2021)
윤관식 (2020)