19장: 배포 시스템
·
Book/HTTP 완벽 가이드
옛날 책이기 때문에, 옛날 방식으로 배포 시스템이 적혀 있었고 실제로는 사장된 (사용하지도 않는듯) 경우라서 읽고 지피티한테 간단하게 다시 물어보기만 했다.1. FPSE (FrontPage Server Extensions)배울 필요 거의 없음이유:2010년 이후 완전히 지원 종료보안 취약점 때문에 서버에 설치하면 위험 취급실무에서는 쓰이지 않음지금 공부하는 건 역사 공부에 가까움2. WebDAV지금도 특정 상황에서 쓰이긴 한다SharePoint, Nextcloud, NAS 장비(시놀로지 등), macOS Finder 연결, WebStorm 원격 편집하지만 실제 프로덕션 웹 서비스 개발자가 새로 공부할 정도의 우선순위는 아님대부분의 현대적인 배포/협업 방식은 Git + CI/CD(WebDAV는 과거 방식)..
18장: 웹 호스팅
·
Book/HTTP 완벽 가이드
콘텐츠 리소스를 저장, 중개 관리하는 일을 통틀어 웹 호스팅이라고 한다.호스팅 서비스가상 호스팅많은 웹 호스팅 업자는 컴퓨터 한 대를 여러 고객이 공유하게 해서 저렴한 웹 호스팅 서비스를 제공한다. 이를 공유 호스팅 혹은 가상 호스팅이라 부른다. 각 웹 사이트는 다른 서버에서 호스팅하는 것처럼 보이겠지만, 사실은 물리적으로 같은 서버에서 호스팅되는 것이다. 최종 사용자의 관점에서 가장 호스팅에 있는 웹 사이트는, 물리적으로 분리된 전용 서버에서 호스팅하는 사이트와 구분할 수 없어야 한다.호스트 정보가 없는 가상 서버 요청HTTP/1.0에는 가상 호스팅 업자가 골머리를 앓을 만한 설계 관련 결함이 있다. HTTP/1.0 명세는 공용 웹 서버가 호스팅하고 있는 가상 웹 사이트에 누가 접근하고 있는지 식별하는..
17장: 내용 협상과 트랜스코딩
·
Book/HTTP 완벽 가이드
내용 협상 기법서버에 있는 페이지들 중 어떤 것이 클라이언트에게 맞는지 판단하는 세 가지 다른 방법이 있다.클라이언트 주도 협상, 서버 주도 협상, 투명한 협상(중개자에게 선택하도록 부탁)기법 어떻게 동작하는가 장점 단점클라이언트 주도클라이언트가 요청을 보내면, 서버는 클라이언트에게 선택지를 보내주고, 클라이언트가 선택서버 입장에서 가장 구현하기 쉽다. 클라이언트는 최선의 선택을 할 수 있다.대기시간이 증가한다. 즉, 올바른 콘텐츠를 얻으려면 최소 두 번의 요청이 필요하다.서버 주도서버가 클라이언트의 요청 헤더를 검증해서 어떤 버전을 제공할지 결정클라이언트 주도 협상보다 빠르다. HTTP는 서버가 가장 적절한 것을 선택할 수 있도록 q 값 메커니즘을 제공하고, 서버가 다운스트림 장치에게 요청이 어떻게 평..
16장: 국제화
·
Book/HTTP 완벽 가이드
국제적인 콘텐츠를 다루기 위해 필요한 HTTP 지원서서버는 클라이언트에게 문서의 문자와 언어를 HTTP Content-Type charset 매개변수와 Content-Language 헤더를 통해 알려준다. 이 헤더들은 엔티티 본문의 ‘비트들로 가득 찬 상자’에 무엇이 들어있는지, 어떻게 콘텐츠를 화면에 출력될 올바른 글자들로 바꾸는지, 그리고 그 텍스트가 어떤 언어에 해당하는지 서술한다.클라이언트는 서버에게 자신이 어떤 차셋 인코딩 알고리즘들과 언어들을 이해하며 그중 무엇을 선호하는지 말해주기 위해 Accept-Charset과 Accept-Language 헤더를 보낸다.문자집합과 HTTP차셋(Charset)은 글자 비트로 변환하는 인코딩이다HTTP 차셋 값은, 어떻게 엔티티 콘텐츠 비트들을 특정 문자 체..
15장 정리
·
Book/HTTP 완벽 가이드
HTTP는 메시지가 올바르게 수송되고, 식별되고, 처리되는 것을 보장한다.객체는 올바르게 식별되므로(Content-Type 미디어 포맷과 Content-Language 헤더) 브라우저나 다른 클라이언트는 콘텐츠를 바르게 처리할 수 있다.객체는 올바르게 압축이 풀릴 것이다.(Content-Length와 Content-Encoding헤더)객체는 항상 최신이다.(엔티티 검사기와 캐시 만료 제어)사용자의 요구를 만족할 것이다.(내용 협상을 위한 Accept 관련 헤더들에 기반)네트워크 사이를 빠르고 효율적으로 이동할 것이다.(범위 요청, 델타 인코딩, 그 외의 데이터 압축)조작되지 않고 온전하게 도착할 것이다.(전송 인코딩 헤더와 Content-MD5 체크섬)메시지는 컨테이너, 엔티티는 화물HTTP/1.1은 1..
14장 정리
·
Book/HTTP 완벽 가이드
HTTP를 안전하게 만들기서버 인증클라이언트 인증무결성암호화효율편재성관리상 확장성적응성사회적 생존성: 사회의 문화적, 정치적 요구를 만족시켜야 한다HTTPSHTTPS는 HTTP의 하부에 전송 레벨 암호 보안 계층을 제공함으로써 동작하는데, 이 보안 계층은 안전 소켓 계층(SSL) 혹은 그를 계승한 전송 계층 보안(TLS)를 이용하여 구현된다.어려운 인코딩 및 디코딩 작업은 대부분 SSL 라이브러리 안에서 일어나기 때문에, 보안 HTTP를 사용하기 위해 웹 클라이언트와 서버가 프로토콜을 처리하는 로직을 크게 변경할 필요는 없다.HTTPS의 세부 사항HTTPS 개요HTTPS는 그냥 보안 전송 계층을 통해 전송되는 HTTP이다. 암호화되지 않은 HTTP 메시지를 TCP를 통해 전 세계의 인터넷 곳곳으로 보내는..
9주차 정리
·
Book/디자인 패턴의 아름다움
반복자 패턴(1)정의와 구현커서 패턴이라고도 하며, 컬렉션을 정해진 순서대로 가져올 때 사용된다. 반복자 패턴은 컬렉션의 순회 작업을 컬렉션에서 분리한 후, 반복자에 넣어 컬렉션과 반복자의 책임이 단일하게 되도록 한다.완전한 반복자 패턴은 컬렉션과 반복자로 구성된다. 구현이 아닌 인터페이스 기반의 프로그래밍 목적을 달성하기 위해 컬렉션에서는 컬렉션 인터페이스와 컬렉션 구현 클래스가 포함되며, 반복자에는 반복자 인터페이스와 반복자 구현 클래스가 포함된다.for 반복문이 있는데도 반복자를 사용하는 이유는 무엇일까?트리나 그래프처럼 복잡한 데이터 구조는 트리의 경우 전위 순회, 중위 순회, 후위 순회 같은 순회 방법이 있으며, 그래프의 경우 깊이 우선 순회, 너비 우선 순회 같은 순회 방법이 있는 등 여러 가..
8주차 정리
·
Book/디자인 패턴의 아름다움
행동 디자인 패턴은 주로 클래스나 객체 간의 상호 작용 문제를 해결한다.옵저버 패턴정의발행-구독 패턴이라고도 한다. GOF 디자인 패턴에서는많은 객체들 사이에서 일대일 의존 관계가 정의되어 있을 때, 어느 한 객체의 상태가 변경되면 이 객체에 의존하고 있는 모든 객체는 자동으로 알림을 받는다.일반적으로 의존 대상이 되는 객체를 피관찰자, 즉 옵저버블이라고 하고 의존하고 있는 객체를 관찰자, 즉 옵저버라고 한다. 이름이 무엇이든 시나리오가 앞에서 이야기 했던 정의를 충족한다면 옵저버 패턴에 속한다.의미옵저버 패턴은 옵저버의 코드와 옵저버블의 코드를 디커플링한다.적용분류 방식의 관점에서는 세 가지 관점이 있다.동기식 차단 옵저버 패턴비동기식 비차단 옵저버 패턴교차 프로세스 옵저버 패턴비동기식 비차단 옵저버 ..
알고리즘 문제해결 전략
·
Book
문제를 푸는 단계문제를 읽고 이해한다.문제를 익숙한 용어로 재정의한다.어떻게 해결할지 계획을 세운다.계획을 검증한다프로그램으로 구현한다.어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다.체계적인 접근을 위한 질문들비슷한 문제를 풀어본 적이 있던가?단순한 방법에서 시작할 수 있을까?내가 문제를 푸는 과정을 수식화할 수 있을까?문제를 단순화 할 수 없을까?그림으로 그려볼 수 있을까?수식으로 표현할 수 있을까?문제를 분해할 수 있을까?뒤에서부터 생각해서 문제를 풀 수 있을까?순서를 강제할 수 있을까?특정 형태의 답만을 고려할 수 있을까?좋은 코드를 짜기 위한 원칙간결한 코드를 작성하기적극적으로 코드를 재사용하기표준 라이브러리 공부하기항상 같은 형태로 프로그램을 작성하기일관적이고 명료한 명명법 사용하기모..
7주차 정리
·
Book/디자인 패턴의 아름다움
퍼사드 패턴퍼사드 패턴은 그 원리와 구현이 매우 간단할 뿐만 아니라 사용 대상이 비교적 명확하기 때문에 주로 인터페이스 설계에 사용된다.퍼사드 패턴은 서브 시스템에 대한 통합 인터페이스 세트를 제공하고, 하위 시스템을 더 쉽게 만들기 위한 상위 통합 인터페이스를 제공한다.생각해보기어댑터 패턴은 호환되지 않는 인터페이스를 연결하는 설계 이념인 반면, 퍼사드 패턴은 결합도를 낮추기 위해 로직들을 결합해 진입점을 단순하게 하고, 결합한 로직들을 캡슐화를 한다는 설계 이념으로 차이가 있다.복합체 패턴복합체패턴은 객체지향 설계의 합성과는 전혀 관계가 없다. 주로 트리 구조의 데이터를 처리하는 데 사용된다.복합체 패턴은 일종의 부분-전체 계층구조로 인식하는 트리 구조로 구성된 객체 컬렉션이며, 복합체 패턴을 통해 ..