프로그래밍/Network 7

웹사이트 속도가 왜 중요한 것인가

소비자는 디지털 컨텐츠나 서비스에 접근하기 위해서 기기에 의존하게 되는데, 당신의 사이트 분석도구를 보았을 때 당신의 데이터가 어떻게 되고 있는지 볼 수 있을 것입니다. 소비자들은 예전보다 더 쉽게 만족하지 않습니다. 그리고 당신의 사이트 경험을 평가할 때 당신의 경쟁자와 비교하여 평가하지 않고 사람들이 매일 쓰는 동종 최고의 서비스와 비교를 합니다. (원문에서는 best-in-class라고 표현을 하네요. 우리가 흔히 이용하는 각 분야별 원탑 서비스와 비교를 한다고 생각하면 됩니다. 우버, 유튜브, 넷플릭스 같은 서비스 말이죠) 이 글은 성능(performance)과 사업적 성공과의 관계에 대한 연구를 모아 봅니다. 성능은 사용자 유지의 관한 것이다 성능은 회사의 핵심적인 부분(수익)에 직접적인 영향을..

[네트워크] HTTP 캐시(Cache) 정책에 대해서 - 최적의 캐시 전략을 만들자

다음 내용은 Google의 Web에 관한 칼럼을 번역한 내용이다. 출처는 글 하단에 명시하였다. 최대한 직역을 하려고 했으며 직역이 어색한 경우 괄호안에 옮긴이 표시로 부연설명을 해놓았다. 개요 네트워크 상에서 무언가를 가져오는 것은 느리고 비용이 크다. 크기가 큰 응답 들은 클라이언트와 서버 사이에 많은 왕복작업이 드는데 그것은 자원이 필요할 때나 브라우저가 작업을 할 때 지연을 시키고 방문자에게 데이터 비용을 초래한다. 결과적으로 캐시 능력과 이전 자원을 재사용하는 것은 성능 최적화에 있어서 매우 중요한 부분이다. 좋은 소식은 모든 브라우저는 HTTP 캐시를 구현하고 있다는 점이다. 당신이 해야할 일은 각 서버단에서 맞는 HTTP 헤더를 내려주어 브라우저에게 응답 캐시를 언제 얼마나 보유할지 가이드하..

[네트워크] 웹 캐시, HTTP 와 HTTPS

Cache는 속도가 빠른 곳에 임시로 데이터를 저장하여 속도를 높이는 것을 뜻한다. Web cache란? 네트워크를 통해 어떤 것을 가져오는 작업은 시간과 비용이 발생하게 된다. 크기가 큰 응답은 client와 server사이에 많은 왕복이 필요하다. 그래서 많은 사용자가 사용할 경우 시기가 지연되게 된다. 그래서 이전에 가져온 resource를 cache를 했다가 재활용하는 방법이 성능 최적화에 있어서 중요하다. 웹 캐시의 종류 1. Browser Cache브라우저 또는 Http 요청을 하는 클라이언트측 application의 내부 디스크브라우저의 back button을 눌렀을 때 2. Proxy Cache프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는..

[네트워크] TCP 멀티플렉싱 이해하기

멀티플렉싱이란? 하나의 통신 채널을 통해서 둘 이상의 데이터를 전송하는데 사용되는 기술이다. 기본적으로 멀티플렉싱이란 여러 개를 하나로 묶어 다중화 시킨다는 뜻이다. 코드에서 볼 것은 여러 개의 channel을 하나로 묶어서 사용하는 것인데, 이 방법을 입출력에 적용한다. 여기서 입출력 버퍼를 사용하게 된다. Blocking mode로 동작하는 것들과는 달리 멀티플렉싱은 Non-Blocking Mode로 동작하게 된다. I/O blocking : I/O의 효율을 높이기 위해 디스크에서 읽어오는 data를 운영체제의 kernel 버퍼 에 저장한 후, 버퍼가 꽉 차면 프로세스의 버퍼로 옮기는데, data가 kernel 버퍼로 저장되는 동안 프로세스의(정확하게는 I/O를 요청한 thread가) blocking..

[네트워크] TCP/UDP 와 자바 소켓프로그래밍 예제

■ 소켓 프로그래밍 소켓 프로그래밍이란 소켓을 이용한 통신 프로그래밍을 말한다. 소켓이란 (Socket) 프로세스 통신 간에 사용되는 양쪽 끝단을 의미한다. 즉, 소프트웨어 차원에서 원격에 존재하는 두 호스트를 연결해주는 매개체이다. 대표적으로 TCP 와 UDP이용이 있다. 소켓프로그램은 주로 서버-클라이언트 2개의 프로그램이 쌍을 이룬다. 이런 흐름은 포트에 대기하다가 클라이언트의 연결을 기다리고 (listen), 클라이언트가 접근을 요청하면 받아들여서(accept) 서버-클라이언트 연결을 설정하고, 클라이언트의 여러 명령을 받아서 서비스를 하게 되는 것이다. 비유적으로 생각해보자. 서버소켓은 먼저 소켓을 생성한다. (전화기 구입) 그리고 주소와 포트를 할당한다. (전화번호 개통) 요청대기 (전화를 기..

네트워크 용어정리

DSL (Digital Subscriber Line) DSL은 지역 전화망을 통해 디지털 데이터 전송을 제공하는 기술의 계열이다. DSL은 높은 주파수를 사용하며, 일반 전화는 낮은 주파수를 사용한다. voice, data transmitted at different frequencies over dedicated line to central office.use existing telephone line to central office DSLAM. Access net : cable network 사용자를 네트워크 코어에 연결해준다. 중간에 splitter라는 것이 있다. 이것은 광섬유가 일직선일 경우는 데이터 전송에 무리가 없지만 선이 꺾이게 되면 전송률에 차이가 나기 때문에 이것을 방지해 주는 역할이다..

컴퓨터 네트워크 개요 및 용어정리

What's the Internet? 1. Nuts and bolts view (기본 관점) millions of connected computing devices: 수 많은 컴퓨팅 기기 들이 연결되어 있는 것network of networks protocols control sending, receiving of messages (TCP, IP, HTT, Skype, 802.11) hosts = end system (단말)running network apps 단말이란? 데이터 통신에서 신호를 보내거나 받는 측의 한쪽 끝에 달린 장치가 단말기인데 단순히 어떤 사람이 신호를 보낼 수 있는 장치를 가지고 있다면 그것이 단말기가 되는 것이다. 2. A service view (서비스 관점) Infrastruc..