본문 바로가기

분류 전체보기

[웹을 지탱하는 기술] 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 같은 하이퍼텍스트 뿐만 ..
[모던 자바 인 액션] 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 페이지 캐시, 데이터베이스 버퍼 캐시 등 광범위하게 캐시 기술이 사용되고 있다. 특징 일부 데이터를 데이터 출력 위치와 가까운 지점에 일시적으로 저장한다. 데이터 재사용을 전제로 한다. 어디에 사용되나? 브라우저 캐시 웹 브라우저가 접속한 페이지를 캐싱 웹 서버 접속..
[디자인 패턴] 싱글톤 패턴(Singleton Pattern) 최대 N개로 객체 생성을 제한하는 패턴 객체가 너무 많아지면 컴퓨터 자원을 과도하게 사용하게 되고, 이는 프로그램 전체의 속도를 느리게 할 수 있다. → 개발자는 객체의 최대 개수를 제한할 필요가 생긴다. 여기서 중요한 것은 생성되는 객체의 최대 개수를 제한하는 데 있어 객체의 생성을 요청하는 쪽에서 일일이 신경쓰지 않아도 되도록 만들어주는 것이다. 싱글톤 패턴은 주로 하나의 객체로 데이터를 일관성 있게 유지하고 싶을 때 사용한다. 프로그램 내에서 아래와 같은 Database라는 객체를 이용한다고 가정해보자. (이 클래스를 하나씩 개선해나가보자) public class Database { private String name; public Database(String name) { super(); this..
[그림으로 공부하는 IT 인프라 구조] 제 4장. 인프라를 지탱하는 기본 이론 목차 제 1장. 인프라 아키텍처를 살펴보자 제 2장. 서버를 열어 보자 제 3장. 3계층형 시스템을 살펴보자 제 4장. 인프라를 지탱하는 기본 이론 3계층형 시스템의 범위를 확대해서 인프라를 이해하는 데 필요한 기본 개념과 구조에 대해 다루도록 한다. 직렬/병렬 여러 개의 물건이 일직선으로 나열돼 있는 것을 직렬, 두 줄 이상으로 나열돼 있는 것을 병렬이라고 한다. 서버는 물론 PC에도 여러 개의 CPU가 탑재되어 있고, 대규모 웹 서비스에서는 방대한 수의 사용자 요청을 처리해야 하므로 수많은 서버를 배치해서 병렬로 처리하고 있다. 이처럼 주변에는 병렬 처리가 넘쳐나고 있지만, 무조건 병렬화한다고 해서 성능이 향상되는 것은 아니다. 병렬화한 자원을 놀리지 않고 어떻게 효율적으로 활용할지가 중요하다. 중요..