diff --git "a/basic/4\354\236\245-\354\235\264\353\257\270\354\247\200-\354\265\234\354\240\201\355\231\224/tanney.md" "b/basic/4\354\236\245-\354\235\264\353\257\270\354\247\200-\354\265\234\354\240\201\355\231\224/tanney.md"
new file mode 100644
index 0000000..7035fef
--- /dev/null
+++ "b/basic/4\354\236\245-\354\235\264\353\257\270\354\247\200-\354\265\234\354\240\201\355\231\224/tanney.md"
@@ -0,0 +1,199 @@
+# Chapter 04 이미지 최적화
+
+## 4.1 이미지의 중요성
+
+
+
+- 최근 네트워크, 디스플레이 등의 발전으로 이미지의 수, 크기가 크게 증가함
+- 화소밀도
+ - 화소밀도는 물리 스크린 공간에 얼마나 많은 픽셀이 압축되어 있는가를 의미한다.
+ - 1x, 2x와 같은 픽셀 비율(DPR)로 표현한다.
+- Hero
+ - 사용자가 사이트에 처음 접속해서 보는 가장 크고 특색 있는 이미지를 Hero 이미지라고 한다.
+ - Hero의 로딩 성능이 사용자 경험을 좌우한다.
+ - Hero 이미지로 고화질의 선명한 이미지를 사용하는 것도 중요하지만 로딩 속도 또한 신경써야한다.
+
+
+
+## 4.2 디지털 이미지의 종류와 특성
+
+### 4.2.1 래스터 이미지 vs 벡터 이미지
+
+
+
+- 레스터 이미지
+ - 각 픽셀별로 표현하고자 하는 색상 정보를 입력해 이를 컴퓨터로 표현하는 방식
+ - 더 큰 사이즈, 더 좋은 품질의 이미지를 만들기 위해서는 그 만큼 많은 픽셀의 정보를 담아야한다.
+- 벡터 이미지
+ - 그리고자 하는 대상의 수학적인 정보를 제공하는 방식
+ - 그림이 위치할 좌표나 각 형상에 대한 정보등을 제공한다.
+ - 사이즈에 상관없이 같은 품질의 이미지를 보여줄 수 있다.
+ - 그림이 복잡하면 수학적으로 표현하는데 제약이 있다.
+ - 대표적으로 svg가 있다.
+
+
+
+
+### 4.2.2 무손실 이미지 형식 vs 손실 이미지 형식
+
+
+
+- 이미지 정보의 손실 여부에 따라 이미지 형식을 구분할 수 있다.
+- 손실 이미지의 경우 단순 복사나 저장을 할 때도 정보 손실이 발생할 수 있다.
+- 무손실 이미지로는 대표적으로 GIF, PNG가 있고 손실 이미지로는 JPEG, WebP, JPEG XR, JPEG 2000 등이 있다.
+- GIF(Graphic Interchange Format)
+ - 몇 개의 이미지를 묶어 짧은 움직임을 표현할 수 있는 이동식 이미지 형식
+ - 무손실 타입의 이미지
+ - 사용할 수 있는 색이 256가지로 제한됨
+ - 단순한 형태의 이미지 표현에 적합
+- PNG(Portable Network Graphic)
+ - 무손실 타입의 이미지
+ - 24비트의 색상 사용
+ - 알파채널(alpha channel)이라는 이미지 변환 기법을 사용
+ - 배경 이미지 레이어를 제거해 전체 이미지를 투명하게 만들어 사용할 수 있다.
+ - 같은 품질의 JPEG 대비 파일의 사이즈가 커지는 단점이 있다.
+- JPEG(Joint Photographic Experts Group)
+ - Joint Photographic Experts Group에서 개발한 이미지 형식
+ - 사람의 눈이 인식할 수 있는 색상만 남기고 나머지를 제거하는 방식으로 이미지를 압축
+ - 품질에 어느정도 손실을 허용
+ - 사용자가 품질 값을 정할 수 있다.
+ - 투명이나 애니메이션 기능을 지원하지 않는다.
+- JPEG 2000
+ - JPEG의 단점을 보완하기 위해 개발된 형식
+ - JPEG보다 더 향상된 이미지 압축률 제공
+ - 무손실 압축, 투명, 애니메이션 기능 지원
+ - 16, 24, 32비트 등 다양한 색상 지원
+- WebP
+ - 구글에서 개발한 이미지 형식
+ - JPEG보다 25~35% 작게 만들 수 있다.
+ - 무손실 압축, 애니메이션, 투명기능 모두 제공
+ - 점진적 데이터 전송 기능을 제공하지 않는다.
+- JPEG XR
+ - MS에서 개발한 형식
+ - 더욱 많은 색상 지원
+ - 무손실 압축, 투명 기능 지원
+ - 점진적 데이터 전송 가능
+ - IE와 Edge에서만 지원
+
+
+
+## 4.3 이미지 변환 기법
+
+### 4.3.1 무손실 압축
+
+
+
+- GIF
+ - 애니메이션이 없다면 압축률이 더 높은 형식으로 변환하는 것이 권장된다.
+ - ImageMagicK, Giflossy, Gifsicle, gifwebp converter 등으로 형식을 변환하거나 압축할 수 있다.
+
+
+
+### 4.3.2 손실 압축
+
+
+
+## 4.4 반응형 웹에서의 이미지 배치 전략
+
+### 4.4.1 반응형 웹의 문제점
+
+
+
+- 반응형 웹은 데스크탑과 모바일 기기에서 같은 사용자 경험을 제공할 수 있다는 장점을 가진다.
+- 그러나 성능면에서는 다소 이슈가 있다.
+- 모바일 환경은 데스크탑에 비해 네트워크 환경, GPU, 메모리 등 좋지 못한 사양을 가지고 있다.
+- 화면 크기에 관계없이 리소스의 크기는 동일하기 때문에 모바일에서는 비교적 좋지 못한 성능을 보인다.
+
+
+
+### 4.4.2 원인은 이미지
+
+
+
+- 위에서 언급한 이슈의 가장 큰 원인은 웹 환경에 따라 변하지 않는 이미지의 크기이다.
+- 즉, 작은 화면에서도 필요 이상의 리소스를 받고 있는 것이다.
+- 모바일 환경에서는 큰 리소스를 다운받아 크기를 줄이거나, 보여주지 않을 리소스도 다운을 받거나, 뷰포트 바깥에 있는 이미지까지 모두 다운로드를 받는 등의 네트워크 낭비 현상이 발생한다.
+
+
+
+
+### 4.4.3 반응형 이미지
+
+
+
+- 반응형 이미지는 다른 환경 조건에 반응해 적합한 이미지를 제공받는 것을 의미한다.
+- 즉, 작은 화면에서는 작은 이미지를 다운로드 받는 것을 의미한다.
+
+
+
+### 4.4.4 반응형 이미지 구현 방법
+
+
+
+1. 프론트엔드 측면에서의 구현
+ - img태그의 srcset이나 picture태그를 사용해 구현
+ - 과도하게 사용할 경우 프론트엔드 코드가 무거워질 수 있음
+ - srcset
+ - srcset을 통해 환경에 따라 다양한 이미지 URL을 지정할 수 있다.
+ - 각 URL은 쉼표로 구분하며 경로 + 공백 + 크기 순으로 작성한다.
+ - 예시
+ ```html
+
+
+
+
+
+ ```
+ - 브라우저가 사용하는 연산 방식이나 메모리 등에 따라 낮은 해상도의 이미지를 선택할 수도 있다.
+ - 해상도 별로 다른 비율의 이미지를 사용하거나 부분만 확대한 이미지를 사용할 경우 이미지가 비정상적으로 보일 수 있다.
+ - sizes
+ - 미디어 조건문을 정의하고 조건에 따라 이미지 크기를 지정한다.
+ - 미디어 조건문 + 공백 + 이미지 너비 순으로 작성한다.
+ - 예시
+ ```html
+
+ ```
+ - picture 태그
+ - img srcset의 단점을 보완한다.
+ - source 태그를 통해 다양한 이미지 URL을 설정한다.
+ - 이때, 미디어 쿼리를 통해 로딩 조건을 구체적으로 정의할 수 있다.
+ - 정의된 조건에 맞는 이미지만 사용하도록 브라우저를 강제할 수 있다.
+ - 예시
+ ```html
+
+
+
+
+
+ ```
+ - 지연 로딩
+ - 화면에 보이지 않는 이미지의 경우 자바스크립트를 통해 지연 로딩되도록 구현할 수 있다.
+2. 백엔드 측면에서의 구현
+ - 서버에서 클라이언트의 환경에 맞는 이미지를 선택하여 전송하는 방법
+ - 프론트엔드 코드가 추가되지 않는다는 장점이 있지만 환경을 어떻게 판단할지에 대한 과제가 있다.
+ - Client Hints
+ - 아직 실제 사용하는 표준은 아니지만 사용자의 환경을 서버에 전달하는 방식이다.
+ - Client Hints 헤더는 HTTP 헤더의 일부로 포함되어 전송된다.
+ - 동작 과정
+ - 브라우저가 서버로 HTTP 요청 전송
+ - 서버는 응답헤더에 Accept-CH를 추가해 Client Hints를 지원하고 있음을 알린다. 그리고 동시에 필요한 정보를 요청한다.
+ - 브라우저에서는 관련 정보를 헤더에 추가해 보낸다.
+ - 서버에서는 최적화된 이미지를 전송한 후 사용한 DPR 정보를 마지막 응답 메시지로 보낸다.
+
+
+4.5 적응형 이미지 전략
+
+4.5.1 적응형 이미지 아키텍처
+
+4.5.2 기기 정보에 따라 서버 로직 수행
+
+4.5.3 브라우저별 이미지 전달
+
+4.5.4 캐시 고려 사항