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

자바 API 디자인 자바 프레임워크 아키텍트가 알려주는 API 설계 이론과 실제
원제 : Practical API Design
시리즈 :
위키북스 IT Leaders 시리즈
[27]
ISBN : 9788998139964 / 536쪽 188 x 240 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
엥지유니버스
-
거트루드(박태현)
-
김영욱
- 27,000
- 19,800
- 23,400
- 23,400
출판사 리뷰
출판사 서평 자바 프레임워크 아키텍트에게서 배우는 API 설계의 이론과 실제! 거의 모든 프로그램이 협업을 통해 만들어지는 오늘날에는 프로그래머가 곧 API 설계자이기도 하다. 적절히 설계된 API는 소프트웨어의 수명과 진화와도 직결되기 때문에 API 설계 지식은 중요도가 점점 더 커지고 있으며, 사내 프로그램뿐만이 아니라 공개 라이브러리나 프레임워크처럼 불특정 다수를 대상으로 코드를 작성하는 개발자라면 API 설계 지식이 더욱더 필요하다. 이 책에는 넷빈즈 프로젝트의 아키텍트가 10년 넘게 API를 설계, 개발, 유지보수하면서 겪은 경험... 자바 프레임워크 아키텍트에게서 배우는 API 설계의 이론과 실제! 거의 모든 프로그램이 협업을 통해 만들어지는 오늘날에는 프로그래머가 곧 API 설계자이기도 하다. 적절히 설계된 API는 소프트웨어의 수명과 진화와도 직결되기 때문에 API 설계 지식은 중요도가 점점 더 커지고 있으며, 사내 프로그램뿐만이 아니라 공개 라이브러리나 프레임워크처럼 불특정 다수를 대상으로 코드를 작성하는 개발자라면 API 설계 지식이 더욱더 필요하다. 이 책에는 넷빈즈 프로젝트의 아키텍트가 10년 넘게 API를 설계, 개발, 유지보수하면서 겪은 경험이 고스란히 들어있어 API 설계 지식이 필요한 모든 프로그래머와 아키텍트에게 크게 도움될 것이다. ★ 이 책에서 다루는 내용 ★ ◎ API란 무엇인가? ◎ API를 제작하는 이유와 시점 ◎ 훌륭한 API를 설계하기 위한 기초 이론 ◎ 모든 프로그래밍 언어(특히 객체 지향 언어)에 적용 가능한 API 설계 패턴 ◎ API 최적화와 테스트 독자분들께, 서점에서 이 책을 손에 들고 “이 책을 사야 할까?”라고 자문하고 계신다면 저는 이렇게 답하겠습니다. 만약 여러분이 작성한 코드가 다른 사람들이 작성한 코드를 컴파일하는 데 필요하다면 여러분은 API의 세계에 들어갈 준비가 된 것입니다. 그리고 이 책은 여러분이 API의 세계를 탐험하도록 도와줄 것입니다. 하지만 이 책은 “5번의 손쉬운 강의로 API 설계를 가르쳐 드리지” 않습니다. 이 책은 “단 3일만에” 읽을 수 있는 책이 아닙니다! 빠르게 읽을 수 있는 지침서를 찾고 계신다면 아마 이 책은 아닐 것입니다. 한편으로 API 설계에 관한 깊이 있는 지식, 즉 API 설계에 대한 “어떻게”뿐만 아니라 “왜”에도 관심이 있다면 이 책을 책장에 다시 내려놓으시기 전에 저를 잠깐 소개해 드리겠습니다. 제 이름은 야로슬라프 툴라흐이고 잘 알려진 IDE이자 자바 언어로 작성된 최초의 모듈화 데스크톱 애플리케이션 프레임워크이기도 한 넷빈즈 플랫폼 프로젝트의 설립자이자 초기 아키텍트입니다. 이 책은 지난 10년간 넷빈즈 API의 설계와 유지보수, 그리고 이러한 지식을 다른 나머지 개발자들에게 전달하는 동안 수집해온 노트를 토대로 합니다. 이 책은 넷빈즈 연구소의 핵심부에서 나온 연구일지로서 각종 문제 및 그러한 문제에 대해 저희가 이해한 내용, 저희가 선택한 해법, 그리고 그러한 해법을 적용한 이후에 내린 결론을 기술하고 있습니다. 저희의 지식이 넷빈즈를 대상으로 일할 때 수집된 것들이긴 하지만 대부분의 소프트웨어 프로젝트에 유용할 정도로 일반적입니다. 적절한 API 설계 지식은 21세기 소프트웨어를 성공적으로 제작하는 데 필수입니다. 드넓은 API 설계의 세계를 탐험하는 동안 이 책이 여러분의 안내서가 되길 바랍니다.
독자분들께,
서점에서 이 책을 손에 들고 ““이 책을 사야 할까?””라고 자문하고 계신다면 저는 이렇게 답하겠습니다. 만약 여러분이 작성한 코드가 다른 사람들이 작성한 코드를 컴파일하는 데 필요하다면 여러분은 API의 세계에 들어갈 준비가 된 것입니다. 그리고 이 책은 여러분이 API의 세계를 탐험하도록 도와줄 것입니다.
하지만 이 책은 ““5번의 손쉬운 강의로 API 설계를 가르쳐 드리지”” 않습니다. 이 책은 ““단 3일만에”” 읽을 수 있는 책이 아닙니다! 빠르게 읽을 수 있는 지침서를 찾고 계신다면 아마 이 책은 아닐 것입니다. 한편으로 API 설계에 관한 깊이 있는 지식, 즉 API 설계에 대한 ““어떻게””뿐만 아니라 ““왜””에도 관심이 있다면 이 책을 책장에 다시 내려놓으시기 전에 저를 잠깐 소개해 드리겠습니다.
제 이름은 야로슬라프 툴라흐이고 잘 알려진 IDE이자 자바 언어로 작성된 최초의 모듈화 데스크톱 애플리케이션 프레임워크이기도 한 넷빈즈 플랫폼 프로젝트의 설립자이자 초기 아키텍트입니다. 이 책은 지난 10년간 넷빈즈 API의 설계와 유지보수, 그리고 이러한 지식을 다른 나머지 개발자들에게 전달하는 동안 수집해온 노트를 토대로 합니다. 이 책은 넷빈즈 연구소의 핵심부에서 나온 연구일지로서 각종 문제 및 그러한 문제에 대해 저희가 이해한 내용, 저희가 선택한 해법, 그리고 그러한 해법을 적용한 이후에 내린 결론을 기술하고 있습니다. 저희의 지식이 넷빈즈를 대상으로 일할 때 수집된 것들이긴 하지만 대부분의 소프트웨어 프로젝트에 유용할 정도로 일반적입니다.
적절한 API 설계 지식은 21세기 소프트웨어를 성공적으로 제작하는 데 필수입니다. 드넓은 API 설계의 세계를 탐험하는 동안 이 책이 여러분의 안내서가 되길 바랍니다.
- 야로슬라프 툴라흐 드림
목차
[1부] 이론과 정당성
▣ 1장: 현대 소프트웨어 구축의 예술
___합리주의, 경험주의, 무지
___지금까지의 소프트웨어의 진화
___거대한 기반 요소
___아름다움, 진리, 우아함
___더 무지해져라!
▣ 2장: API를 만드는 이유
___분산 개발
___애플리케이션 모듈화
___비선형적인 버전 관리
___중요한 것은 의사소통이다
___경험적 프로그래밍
___첫 번째 버전은 늘 쉽다
▣ 3장: 훌륭한 API를 결정하는 요소
___메서드와 필드 시그너처
___파일과 파일의 내용
___환경변수와 명령줄 옵션
___API로서의 텍스트 메시지
___프로토콜
___동작 방식
___I18N 지원과 L10N 메시지
___넓은 의미의 API
___API의 품질을 검사하는 법
▣ 4장: 시시각각 변하는 표적
___첫 번째 버전은 결코 완벽하지 않다
___하위 호환성
___유스 케이스 지향의 중요성
___API 리뷰
___API의 생명주기
___점진적 향상
[2부] 실제 설계
▣ 5장: 필요 이상으로 노출하지 마라
___메서드가 필드보다 낫다
___생성자보다 팩터리가 낫다
___모든 것을 final로 만들어라
___어울리지 않는 곳에 설정자 메서드를 넣지 마라
___프렌드 코드에서만 접근하는 것을 허용하라
___객체를 만든 이에게 더 많은 권한을 부여하라
___깊은 계층구조를 노출하지 마라
▣ 6장: 구현이 아닌 인터페이스를 대상으로 코드를 작성하라
___메서드나 필드 제거하기
___클래스나 인터페이스를 제거하거나 추가하기
___기존 계층구조에 인터페이스나 클래스 집어넣기
___메서드나 필드 추가하기
___자바 인터페이스와 클래스 비교
___외유내강
___메서드를 추가하길 좋아하는 사람들의 천국
___추상 클래스는 유용한가?
___매개변수 증가를 위한 대비
___인터페이스 대 클래스
▣ 7장: 모듈화 아키텍처를 사용하라
___모듈화 설계의 유형
___상호컴포넌트 룩업과 통신
___확장점 작성하기
___순환 의존성의 필요성
___Lookup은 어디에나 있다
___Lookup의 남용
▣ 8장: 클라이언트와 제공자를 위한 API를 분리하라
___C와 자바로 API/SPI 표현하기
___API 진화는 SPI 진화와 다르다
___Writer의 자바 1.4와 자바 1.5 사이의 진화
___API를 적절히 나눠라
▣ 9장: 테스트 용이성을 염두에 둬라
___API와 테스트
___명세의 쇠퇴
___좋은 도구는 API를 더 사용하기 쉽게 만든다
___테스트 호환성 도구
▣ 10장: 다른 API와 협동하기
___다른 API를 사용하는 것을 조심하라
___추상화 누출
___API의 일관성 강제하기
___위임과 합성
___API를 잘못 사용하지 않게 하라
___자바빈 리스너 패턴을 남용하지 마라
▣ 11장: API의 런타임 측면
___고치기 여정
___신뢰성과 무지
___동기화와 교착상태
___재진입성 호출 대비
___메모리 관리
▣ 12장: 선언형 프로그래밍
___객체를 불변적으로 만들어라
___불변적인 동작 방식
___문서의 호환성
[3부] 일상 생활
▣ 13장: 해로운 것으로 여겨지는 극단적인 조언
___API는 아름다워야 한다
___API는 정확해야 한다
___API는 단순해야 한다
___API는 성능이 좋아야 한다
___API는 100퍼센트 호환성을 갖춰야만 한다
___API는 대칭적이어야 한다
▣ 14장: API 설계의 역설
___API 이중 사고
___보이지 않는 일
___안정적인 API를 약속하는 두려움 극복하기
___유지보수 비용 최소화하기
▣ 15장: API 우주의 진화
___망가진 라이브러리 되살리기
___의식적 업그레이드 대 무의식적 업그레이드
___대체 동작 방식
___비슷한 API의 연계와 공존
▣ 16장: 협동 작업
___코드를 커밋하기 전에 검토 절차 밟기
___개발자들이 API를 문서화하도록 설득하기
___빅 브라더는 잠들지 않는다
___API 패치 수락하기
▣ 17장: 게임을 활용한 API 설계 실력 향상
___개요
___1일차
___2일차
___3일차: 평가의 날
___여러분도 해보시길!
▣ 18장: 확장 가능한 비지터 패턴 사례 연구
___추상 클래스
___진화 준비
___기본 탐색
___명확한 버전 정의
___비단조적 진화
___인터페이스를 사용하는 자료구조
___클라이언트 비지터와 제공자 비지터
___삼중 디스패치
___비지터를 위한 행복한 결말
___편의성 문법
▣ 19장: 시한부 절차
___명세 버전의 중요성
___모듈 의존성의 중요성
___제거된 부분을 영원히 놔둬야 하는가?
___모놀리식 API 나누기








































