일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 페이스북 번역
- GCM
- graphql
- ddd
- 웹사이트성능
- gcm 푸시 번역
- 웹사이트 성능
- nginx설치
- notification
- 카프카 트랜잭션
- 카프카
- APNS
- 디자인패턴
- php
- 웹사이트최적화기법
- GCM 번역
- 푸시
- git
- kafka
- 푸시 번역
- 도메인 주도 개발
- nginx
- Java
- JPA
- Push
- Design Pattern
- 성능
- 자바스크립트
- nginx설정
- Today
- Total
목록웹사이트성능 (9)
간단한 개발관련 내용
Chapter 07. CSS Expression 을 피하라. CSS Expression 은 CSS 속성을 동적으로 설정하는 강력하면서 위험한 기능으로 IE5와 그 이후의 버전에서 지원된다. 1. Expression 의 업데이트. Expression 의 문제는 생각보다 자주 실행되어 페이지가 렌더링되거나 페이지 이벤트가 있을 때마다 동작하게 된다. 2. 이 문제를 피해서 적용하는 방법. CSS Expression이 한 번만 동작되도록 하는 방법과, CSS Expression 대신에 이벤트 핸들링을 이용하여 관련 있는 이벤트 시에만 동작하도록 하는 방법이 있다. 3. 결론. CSS Expression 과 그 영향을 명확하게 이해하지 못한 채 CSS Expression을 사용하는 것은 매우 위험한 일이다.
Chapter 06. 스크립트는 아래에 넣어라. 1. 스크립트 문제. 스크립트의 경우 스크립트 아래에 있는 모든 구성요소의 점진적 렌더링을 막게 된다. 2. 동시 다운로드. 응답 시간에 가장 큰 영향을 주는 것은 페이지 안에 있는 구성요속의 개수이다. HTTP/1.1 스펙에서는 한 호스트당 동시에 2개의 구성요소를 다운로드하는 것을 제안하고 있다. IE는 레지스트리에 이 값을 저장하고 있고, 파이어폭스는 about:config 페이지 안의 network.http.max-persistent-connections-per-server 설정을 통해 가지고 있다. 야후가 조사한 결과에서는 2개의 호스트 이름을 이용할 때 가장 좋은 성능을 낸다는 것을 알 수 있었다. 3. 동시 다운로드를 막는 스크립트. 스크립트가..
Chapter 05. 스타일시트는 위에 넣어라. 간혹 엔지니어들은 페이지 초기에 필요없는 CSS를 외부 스타일시트에 넣고 이를 페이지 하단에 넣으면 페이지가 좀 더 빨리 로드될 것이란 기대를 한다. 하지만 오히려 반대로 HEAD 영역으로 이동시켰더니 속도가 더 빨라짐을 알 수 있었다. 1. 점진적인 렌더링. 브라우저는 브라우저 자신과 사용자가 페이지 하단의 스타일시트를 다 받을 때까지 기다리는 동안 페이지 렌더링을 지연시킨다. 스타일시트를 페이지 하단에 넣는 것의 문제는 여러 브라우저에서 점진적인 렌더링을 못하게 한다는 것이다. 2. sleep.cgi. 3. 빈 흰색 스크린. 웹 페이지를 호출 한 후에 빈 흰색 스크린을 보지 않으려면 CSS를 페이지 아래에 넣거나 @import 를 이용해 첨부하지 말고 ..
Chapter04 Gzip 컴포넌트. 이번 장에서는 gzip 인코딩을 이용해서 HTTP 응답을 압축하여 응답의 크기를 줄여 속도를 개선하는 방법을 보여준다. 1. 압축을 적용하는 방법.HTTP/1.1 에서부터 웹 클라이언트는 HTTP 요청의 Accept-Encoding 헤더를 이용해 압축의 지원 여부를 보내주게 된다. 웹 서버는 응답 헤더 안의 Content-Encoding 속성을 통하여 웹 클라이언트에게 사용된 압축 방식을 알려준다. gzip 과 deflate 포맷을 사용할 수 있는데 주로 gzip을 사용한다. 2. 무엇을 압축해야 하는가?Gzip은 HTML문서, 스크립트와 스타일시트를 압축할 수 있지만 이미지와 PDF는 이미 압축된 파일이기 때문에 gzip 압축을 적용해서는 안 된다. 일반적으로 gz..
Chapter03. 헤더에 만료기간을 추가하라. 사이트에 처음 방문한 사용자일 경우 여러 번의 HTTP 요청을 하게 될지도 모르지만 헤더 만료기한(Expires)을 이용함으로써 그 구성요소를 캐시에 저장할 수 있다. 1. 헤더의 만료기간. 브라우저 캐시를 이용하여 HTTP의 요청 수를 줄일 수 있다. Expires헤더에서 지정한 시간 이후에는 해당 응답의 내용이 더 이상 유효하지 않다는 것이다. 2. max-age 와 mod_expires 속성. Expires는 지정된 날짜를 이용하기 때문에 서버와 클라이언트가 시간을 맞추어 사용해야며 만료일에 대해 갱신해야 한다는 단점이 있다. 그리하여 HTTP/1.1 에서 소개된 Cache-Control은 Expires 의 한계를 보완하고자 max-age 속성을 설정..
Chapter02. 콘텐츠 전송 네트워크를 이용하라. 서비스의 이용자가 늘게 되어 서버를 증설하게 되면 서버의 콘텐츠를 지리적으로 분산된 여러 개의 서버에 나누어 놓아야 할 필요가 생긴다. 콘텐츠를 지리적으로 분산시킬 때 먼저 웹 애플리케이션을을 분산 구조에 맞게 재설계하는 작업을 피하고, 웹 페이지 구성요소가 저장되어 있는 웹 서버를 먼저 분산시켜 놓는 것이 더 좋은 선택일 수 있고 이는 CDN(Contents Delivery Network)를 이용하면 더 쉽게 구현할 수 있다. CDN은 사용자에게 효율적으로 콘텐츠를 전달하기 위해서 여러 지역에 웹 서버를 분산시켜 놓는 기술인다. 이는 응답시간을 줄이며, 백업, 저장용량의 확대, 캐싱기능을 갖고 이미지, 스크립트, 스타일시트, 플래시와 같은 정적 콘텐..