본문 바로가기

개발 서적

[모던 자바 인 액션] chapter 7. 병렬 데이터 처리와 성능 (1) [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) chapter 4. 스트림 소개 chapter 5. 스트림 활용 chapter 6. 스트림으로 데이터 수집(1) chapter 6. 스트림으로 데이터 수집(2) chapter 7. 병렬 데이터 처리와 성능(1) 자바 7이 등장하기 전에는 데이터 컬렉션을 병렬로 처리하기 어려웠음. 다음과 같은 일련의 과정을 거쳐야 했음. 데이터를 서브 파트로 분할 분할된 서브파트를 각각의 스레드로 할당 race condition이 발생하지 않도록 동기화 작업 추가 부분 결과를 합침 자바 7은 더 쉽게 병렬화를 ..
[모던 자바 인 액션] chapter 6. 스트림으로 데이터 수집 (2) [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) chapter 4. 스트림 소개 chapter 5. 스트림 활용 chapter 6. 스트림으로 데이터 수집(1) chapter 6. 스트림으로 데이터 수집(2) 분할 분할 함수(partitioning function)라 불리는 프레디케이트를 분류 함수로 사용하는 특수한 그룹화 기능 분할 함수는 불리언을 반환하므로 맵의 키 형식은 Boolean 그룹화 맵은 최대 (참 or 거짓을 갖기 때문에) 2개의 그룹으로 분류됨. // partitioningBy를 이용해 채식 요리와 채식이 아닌 요리 분리 ..
[그림으로 공부하는 IT 인프라 구조] 제 6장. 시스템을 연결하는 네트워크 구조 목차 제 1장. 인프라 아키텍처를 살펴보자 제 2장. 서버를 열어 보자 제 3장. 3계층형 시스템을 살펴보자 제 4장. 인프라를 지탱하는 기본 이론 제 5장. 인프라를 지탱하는 응용 이론 제 6장. 시스템을 연결하는 네트워크 서로 다른 장비 간 데이터를 교환할 때 기본적으로는 네트워크를 경유해서 데이터를 송수신 할 필요가 있다. 계층 구조 계층 구조에서는 데이터나 기능 호출 흐름에 따라 계층 간 역할이 나누어진다는 특징이 있다. 역할이 나누어져 있기 때문에 각 층은 자신이 담당하는 일만 책임을 지며, 다른 일은 다른 계층이 책임을 진다. 상호 연결돼 있는 계층들에서는 교환 방법, 즉 인터페이스만 정해 두면 된다. 계층 구조로 나눔으로써 게층 간에 서로 영향을 주지 않고 독립적으로 동작할 수 있다. 상호 ..
[웹을 지탱하는 기술] chatper 09. HTTP 헤더 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 chapter 05. URI의 설계 chapter 06. HTTP의 기본 chapter 07. HTTP 메서드 chapter 08. 스테이터스 코드 chapter 08. HTTP 헤더 HTTP 헤더의 중요성 헤더는 메시지의 바디에 대한 부가적인 정보, 즉 메타 데이터를 표현함 클라이언트와 서버는 헤더를 보고 메시지에 대한 동작을 결정함 리소스에 대한 접근권한을 설정하는 인증이나 클라이언트와 서버의 통신횟수와 양을 감소시키는 캐시 같은 HTTP의 기능을 헤더로 실현함 HTTP 헤더의 탄생 HTTP의 최초 버전인 0.9에는 헤더가 없었음. H..
[웹을 지탱하는 기술] chatper 08. 스테이터스 코드 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 chapter 05. URI의 설계 chapter 06. HTTP의 기본 chapter 07. HTTP 메서드 chapter 08. 스테이터스 코드 스테이터스 코드의 중요성 HTTP의 스테이터스 코드는 클라이언트의 움직임을 좌우하는 중요한 역할을 담당 응답에 잘못된 스테이터스 코드를 할당해버리면 클라이언트가 혼동하여 시스템 전체의 동작에 지장을 초래함 스펙에서 정해진 스테이터스 코드의 의미를 바르게 이해하는 것이 중요함 스테이터스 라인의 복습 응답 메시지의 첫째 줄에 있는 스테이터스 라인은 프로토콜 버전, 스테이터스 코드, 텍스트 프레이즈..
[모던 자바 인 액션] chapter 6. 스트림으로 데이터 수집 (1) [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) chapter 4. 스트림 소개 chapter 5. 스트림 활용 chapter 6. 스트림으로 데이터 수집(1) 이 장에서는 reduce가 그랬던 것처럼 collect 역시 다양한 요소 누적 방식을 인수로 받아서 스트림을 최종 결과로 도출하는 리듀싱 연산을 수행할 수 있음을 설명한다. 컬렉터란 무엇인가? 함수형 프로그래밍에서는 ‘무엇’을 원하는지 직접 명시할 수 있어서 어떤 방법으로 이를 얻을지는 신경 쓸 필요가 없다. // 통화별로 트랜잭션을 그룹화한 코드 Map transactionsByC..
[웹을 지탱하는 기술] chatper 07. HTTP 메서드 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 chapter 05. URI의 설계 chapter 06. HTTP의 기본 chapter 07. HTTP 메서드 8개 밖에 없는 메서드 HTTP 메서드에는 클라이언트가 하고 싶은 처리를 서버에게 전달하는 중요한 임무가 있음. 그럼에도 HTTP 1.1은 8개의 메서드밖에 정의되지 않았음. 메서드 의미 GET 리소스 취득 POST 서버 리소스의 작성, 리소스 데이터의 추가, 그 밖의 처리 PUT 리소스 갱신, 리소스 작성 DELETE 리소스 삭제 HEAD 리소스의 헤더(메타 데이터) 취득 OPTION 리소스가 서포트하는 메서드의 취득 TRACE..
[웹을 지탱하는 기술] chapter 06. HTTP의 기본 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 chapter 05. URI의 설계 chpater 06. HTTP의 기본 HTTP는 TCP/IP를 베이스로 한 프로토콜이다. 이 장에서는 TCP/IP 기초 지식과 HTTP의 간단한 역사를 알아본다. 그리고 HTTP의 메시지 구조와 프로톸로로서의 HTTP를 특정짓는 스테이트리스성 등에 대해서도 알아본다. HTTP의 중요성 RFC 2616에서 규정된 프로토콜. 1.1 버전이 규정되어 있음. 현시점에서는 최신 버전이며, 현재의 웹에서는 이 버전의 HTTP가 제일 많이 사용됨 → 확인 필요 이름과 다르게 HTML과 XML 같은 하이퍼텍스트 뿐만 ..