본문 바로가기

개발 서적

[모던 자바 인 액션] chapter 5. 스트림 활용 [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) chapter 4. 스트림 소개 chapter 5. 스트림 활용 이 장에서는 스트림 API가 지원하는 다양한 연산을 살펴본다. 다음으로 숫자 스트림, 파일과 배열 등 다양한 소스로 스트림을 만드는 방법과, 무한 스트림 등 스트림의 특수한 경우도 살펴본다. 필터링 스트림의 요소를 선택하는 방법, 즉 프레디케이트 필터링 방법과 고유 요소만 필터링 하는 방법 프레디케이트로 필터링 filterl 메서드는 프레디케이트(불리언을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는..
[그림으로 공부하는 IT 인프라 구조] 제 5장. 인프라를 지탱하는 응용 이론 목차 제 1장. 인프라 아키텍처를 살펴보자 제 2장. 서버를 열어 보자 제 3장. 3계층형 시스템을 살펴보자 제 4장. 인프라를 지탱하는 기본 이론 제 5장. 인프라를 지탱하는 응용 이론 3계층형 시스템 내부를 확대해서 인프라를 이해하는 데 필요한 기본 개념과 구조에 대해 설명한다. 캐시(Cache) 캐시는 사용 빈도가 높은 데이터를 고속으로 액세스할 수 있는 위치에 두는 것을 의미한다. CPU의 1차 캐시나 2차 캐시, 저장소 캐시, OS 페이지 캐시, 데이터베이스 버퍼 캐시 등 광범위하게 캐시 기술이 사용되고 있다. 특징 일부 데이터를 데이터 출력 위치와 가까운 지점에 일시적으로 저장한다. 데이터 재사용을 전제로 한다. 어디에 사용되나? 브라우저 캐시 웹 브라우저가 접속한 페이지를 캐싱 웹 서버 접속..
[그림으로 공부하는 IT 인프라 구조] 제 4장. 인프라를 지탱하는 기본 이론 목차 제 1장. 인프라 아키텍처를 살펴보자 제 2장. 서버를 열어 보자 제 3장. 3계층형 시스템을 살펴보자 제 4장. 인프라를 지탱하는 기본 이론 3계층형 시스템의 범위를 확대해서 인프라를 이해하는 데 필요한 기본 개념과 구조에 대해 다루도록 한다. 직렬/병렬 여러 개의 물건이 일직선으로 나열돼 있는 것을 직렬, 두 줄 이상으로 나열돼 있는 것을 병렬이라고 한다. 서버는 물론 PC에도 여러 개의 CPU가 탑재되어 있고, 대규모 웹 서비스에서는 방대한 수의 사용자 요청을 처리해야 하므로 수많은 서버를 배치해서 병렬로 처리하고 있다. 이처럼 주변에는 병렬 처리가 넘쳐나고 있지만, 무조건 병렬화한다고 해서 성능이 향상되는 것은 아니다. 병렬화한 자원을 놀리지 않고 어떻게 효율적으로 활용할지가 중요하다. 중요..
[그림으로 공부하는 IT 인프라 구조] 제 3장. 3계층형 시스템을 살펴보자 목차 제 1장. 인프라 아키텍처를 살펴보자 제 2장. 서버를 열어 보자 제 3장. 3계층형 시스템을 살펴보자 3계층형 아키텍처를 주축으로, 시스템이 처리하는 데이터와 시스템상에서의 데이터 흐름을 구체적으로 살펴보자. 주요 개념 설명 프로세스와 스레드 프로세스와 스레드는 프로그램 실행 파일 자체가 아니라 OS상에서 실행돼서 어느정도 독립성을 가지고 동작하는 것 프로세스 및 스레드가 활동하려면 메모리 공간이 필요하다. 커널에 의해 메모리상에 확보된다. 메모리 공간은 프로세스 및 스레드가 자신을 위해 소유하는 공간으로 개인 공간이라 할 수 있다. 프로세스는 전용 메모리 공간을 이용해서 동작한다. 반면 스레드는 다른 스레드와 메모리 공간을 공유한다. 프로세스는 개별 처리 독립성이 높은 대신, 독자 메모리 공간을..
[웹을 지탱하는 기술] chapter 05. URI의 설계 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 chapter 05. URI의 설계 이 장에서는 좋은 URI란 무엇인지 설명하고 좋은 URI를 설계하기 위한 방법과 힌트를 소개한다. 쿨(Cool)한 URI는 변하지 않는다 좋은 URI와 아름다운 URI를 가리켜 Cool URI라고 부른다. 이 용어의 기원은 웹의 발명자 팀 버너스-리가 1988년에 발표한 ‘Cool URIs don’t change’라는 웹 페이지다. 이 웹페이지가 발표된 당시에는 URI가 변경되는 것은 일상다반사였다. 북마크해둔 링크들이 시간이 지나면 유효하지 않게 되버렸다. 링크가 끊어져버린다는 것은 하이퍼미디어 시스템..
[모던 자바 인 액션] chapter 4. 스트림 소개 [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) chapter 4. 스트림 소개 SQL 질의 언어에서는 기대하는 필터링을 어떻게 구현해야 할지 명시할 필요가 없으며 구현은 자동으로 제공한다. 컬렉션으로도 이와 비슷한 기능을 만들 수 있지 않을까? 또한, 멀티코어 아키텍처에서 컬렉션을 병렬처리를 통해 성능을 높이는 방법을 쉽게 제공할 수는 없을까? → 이 질문의 답은 스트림이다. 스트림이란 무엇인가? 스트림은 자바 8 API에 새로 추가된 기능이다. 다음과 같은 특징을 갖는다. 선언형 스트림을 이용하면 선언형(데이터를 처리하는 임시 구현 코드..
[웹을 지탱하는 기술] chapter 04. URI의 스펙 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 일반적으로 URI의 설계와 구현을 웹 애플리케이션 프레임워크에 전적으로 맡겨버리는 사람도 많지만, URI 스펙을 바르게 이해하는 것은 쓰기 편한 웹 서비스와 웹 API로 가는 첫걸음이다. URI의 중요성 URI(Uniform Resource identifier)는 ‘리소스를 통일적으로 식별하는 ID’를 말함. 통일적 : 같은 규칙을 따름을 의미 식별자 : 어떤 것을 그 밖에 다른 것과 구별하여 가리키키위한 이름/ID URI를 사용하면 웹상에 존재하는 모든 리소스를 한결같은 방식으로 간단하게 접속할 수 있다. URI의 구문 URI의 스펙은 ..
[그림으로 공부하는 IT 인프라 구조] 제 2장. 서버를 열어보자 아키텍처 전체를 구상할 때는 먼저 서버라는 단위로 생각해야 함. 이번 장에서는 물리 서버 내부 구조에 대해 더 자세히 살펴본다. 물리 서버 서버 외관과 설치 장소 서버는 랙(Rack)이라는 것에 장착됨. 랙에는 서버 외에도 HDD 등의 저장소나 인터넷 및 LAN을 연결하기 위한 네트워크 스위치 등도 탑재돼 있다. 랙은 규격이 있다. (폭 19인치, 높이 한 칸에 4.5cm로 40~46개) 이 한 칸을 1U라고 하고, 서버 높이는 이 단위를 따름 전원이나 네트워크 케이블 배선 등은 모두 랙 뒷면에서 연결됨 서버 설치 시에는 서버 크기(U), 소비 전력(A), 중량(Kg)를 고려해야 함. 서버 내부 구성 컴포넌트를 연결하는 선을 버스(Bus)라고 한다. CPU와 메모리는 물리적으로 직접 연결되어 있음 PCI..