2018/01 19

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.1 Services Provided by DNS

2.4 DNS - The Internet's Directory Service2.4.1 Services Provided by DNShost를 알아내는 데는 두 가지 방법이 있다.hostnameIP address사람들은 기억하기 쉬운 hostname 식별자를 더 선호한다. 반면, 라우터는 IP address의 고정된 길이와 계층적인 구조를 선호한다.이런 요구를 만족시키기 위해서 우리는 hostname을 IP address로 변환해주는 directory service가 필요하다. Domain Name System (DNS)의 주요 작업이 바로 이것이다.DNS는DNS Server의 계층 구조에 구현된 "분산 데이터베이스" 이다.이 "분산 데이터베이스"에 host가 query를 보낼 수 있게 해주는 "Applic..

IT/Network 2018.01.09

[Wiki] ruby(루비) 실행 시(irb), Ignoring .... 경고가 잔뜩 발생하는 경우 해결 방법

[Wiki] ruby(루비) 실행 시, Ignoring 경고 해결 방법 macOS에서 ruby를 실행해보기 위해 irb 명령어를 입력하니 다음과 같은 에러가 5개 정도 발생하였다.Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2구글링을 통해 해결 방법을 알아보았다. 아래의 코드를 터미널에 입력하니 바로 해결되었다. 12unset GEM_HOMEunset GEM_PATHcs 솔직히 너무 간단해서 조금 당황했다. [1] https://groups.google.com/forum/#!msg/snowplow-user/LYaB3MTaGNM/yOuMdT..

IT/IT WIKI 2018.01.08

[Network] Application Layer (애플리케이션 계층) - 2.2 웹 애플리케이션 정리 2.2.5 Web Caching (웹 캐싱)

2.2.5 Web CachingProxy server라고도 불리는 Web cache는 원본 Web server를 대신해서 HTTP request를 처리하는 network entity이다. Web cache는 그 자체로 디스크 저장 공간을 가지고 있으며, 최근에 요청된 객체들의 복사본을 저장하고 있다. 일화를 예로 들어 보면 다음과 같다. 1) 브라우저가 TCP 연결을 Web cache와 만들고, Web cache로 HTTP Request Message를 보내 객체를 요청한다. 2) Web cache는 그 객체를 보관하고 있는지 확인하고, 존재하면, HTTP Response Message에 담아 클라이언트 브라우저로 전송한다. 3) 만약 존재하지 않는다면, Web cache는 원본 서버와 TCP 연결을 생..

IT/Network 2018.01.08

[Network] Application Layer (애플리케이션 계층) - 2.2 웹 애플리케이션 정리 2.2.4 Cookie (쿠키)

2.2.4 User-Server Interaction: CookiesHTTP Server는 Stateless (상태가 없다)이다. 이는 동시에 수천의 TCP 연결을 처리할 수 있는 웹 서버를 디자인하는 것을 쉽게 해준다. 그러나 종종 웹 사이트가 사용자를 인지하고 있을 필요가 있다. • 서버가 사용자의 접근 권한을 제어해야 할 때. • 서버가 사용자에 따른 맞춤 서비스를 제공해야 할 때. 이러한 목적으로 HTTP는 "Cookies"를 사용한다. [RFC 6265]Cookie는 4 개의 요소로 구성된다. 1) HTTP Response Message의 'cookie header line' 2) HTTP Request Message의 'cookie header line' 3) 유저의 end system과 유저..

IT/Network 2018.01.07

[Network] Application Layer (애플리케이션 계층) - 2.2 웹 애플리케이션 정리

2.2 The Web and HTTP웹이 사용자들에게 주는 가장 큰 호감은 On-demand 방식으로 동작하는 점이다.2.2.1 Overview of HTTPHyperText Transfer Protocol (HTTP) 는 웹 애플리케이션 계층 프로토콜이며, 웹의 중심이다. ([RFC 1945], [RFC 2616] 참조) HTTP는 'Client Program'과 'Server Program' 두 가지로 구현된다. 서로 다른 End System에서 수행되는 두 프로그램은 HTTP Messages 를 교환하여 통신한다. HTTP는 메시지의 구조, 클라이언트와 서버가 메시지를 교환하는 방법을 정의한다.• Web page (aka document) 는 object(객체)들로 구성된다.○ Object는 하나의..

IT/Network 2018.01.06

[Wiki] 마크다운이나 HTML에서 pre 태그 내 글이 자동 줄바꿈이 되지 않는 경우 해결법

[Wiki] 마크다운이나 HTML에서 pre 태그 내의 글이 자동 줄 바꿈이 되지 않는 경우 해결 방법얼마 전부터 아톰 에디터로 마크다운을 HTML로 변환하면 태그 내의 (마크다운의 경우 회색 사각박스, ``` 등) 글이 자동 줄 바꿈이 되지 않고, 스크롤 바가 생겨나는 현상이 발생하고 있다. 이를 해결하기 위해 구글링을 해보니 pre 태그 내에 속성 값을 추가해줄 필요가 있었다. 123cs 2 번 라인처럼, white-space: pre-wrap; 속성을 추가함으로써 해결할 수 있었다.

IT/IT WIKI 2018.01.05

[Network] Application Layer (애플리케이션 계층) - 2.1 네트워크 애플리케이션의 원리 정리

2.1.2 Processes CommunicatingClient and Server Processes두 프로세스 간의 통신 세션에서, 통신을 초기화(다른 프로세스와 세션을 시작하려고 접속을 초기화)하는 프로세스를 클라이언트라하고, 세션을 시작하기 위해 접속을 기다리는 프로세스를 서버라고 한다.The Interface between the Process and the Computer Network프로세스는 소켓(Socket)이라 불리는 인터페이스를 통해 네트워크로 메시지를 보내고 받는다. 프로세스를 집(house)으로 비유한다면, 소켓은 문(door)로 비유할 수 있다.소켓은 Host의 Application Layer와 Transport Layer의 인터페이스이다. 소켓은 Network Applicatio..

IT/Network 2018.01.05

[Wiki] VirtualBox를 Ubuntu16.04에 CLI로 설치하는 방법

[Wiki] VirtualBox를 Ubuntu16.04에 CLI로 설치하는 방법VirtualBox를 설치할 때, GUI 우분투를 이용한다면 쉽게 설치가 가능하다. 그러나 Server 버전을 사용하는 경우에는 CLI로 설치하여야 한다. (X11 Forwarding을 하지 않은 경우)CLI로 설치하는 방법을 검색해보고 그 방법을 정리하였다. [1] 1. 저장소 추가 1234567891011121314151617# sudo vi /etc/apt/source.list# 자신의 distribution에 맞는 줄을 찾아 추가한다. 16.04 버전은 Xenial을 추가하면 된다. # For Ubuntu 17.10 ("Artful")deb http://download.virtualbox.org/virtualbox/de..

IT/IT WIKI 2018.01.03

[Python] macOS에 pip로 모듈 설치 시, command not found가 출력되는 경우 해결 방법

[Python] macOS에 pip로 모듈 설치 시, command not found가 출력되는 경우 해결 방법 macOS에 jupyter-notebook을 설치했는데, 실행해보니 "command not found" 에러가 발생하였다. 구글링을 해보니, jupyter 공식 깃헙에서 이에 대한 토론이 이루어지고 있었다.[1] 이 중, 내 경우에 해결된 방법을 소개한다. 다음과 같이 터미널에 명령어를 입력한다. 내 경우 homebrew 패키지 관리자를 이용하고 있어, 3 ~ 4 라인에서 brew 명령어를 통하여 python3을 재설치 하였다. $ sudo rm -rf /Library/Frameworks/Python.framework $ rm /usr/local/bin/python3* $ brew uninst..

IT/Python 2018.01.03