티스토리 뷰
웹 애플리케이션은 많은 양의 데이터와 요청을 처리하기 때문에 성능 이슈가 발생할 수 있습니다. 이를 해결하기 위한 방법 중 하나는 캐싱 기법을 사용하는 것입니다. 캐싱은 이전에 처리된 데이터나 요청 결과를 저장하고 다음에 동일한 요청이 있을 때 이를 재사용하여 성능을 개선하는 기법입니다.
이번 포스트에서는 서버 단 캐시(Server-side Caching)에 대해 다룹니다. 클라이언트 단 캐시와 대조적으로, 서버에서 캐싱을 수행하는 기술을 말합니다.
계층에 따른 구분
웹 서버, 애플리케이션 서버, 데이터베이스 등 여러 계층에서 적용될 수 있습니다.
웹 서버 캐시
웹 서버는 클라이언트에서 오는 요청을 받아서 해당 요청을 처리한 후에 결과를 클라이언트에게 반환합니다. 이때 웹 서버에서 캐시를 적용하면, 클라이언트의 요청을 처리하는데 필요한 리소스를 미리 저장해 놓고 다음에 같은 요청이 올 경우 저장된 리소스를 사용할 수 있습니다. 이는 서버 부하를 줄여서 웹 서버의 처리 능력을 향상시키는 효과를 가집니다.
애플리케이션 서버 캐시
애플리케이션 서버는 웹 서버와 데이터베이스 사이에서 중간 계층으로 동작합니다. 이때 애플리케이션 서버에서 캐시를 적용하면, 웹 서버에서 받은 요청을 처리하는데 필요한 데이터나 결과를 미리 저장해 놓고 다음에 같은 요청이 올 경우 저장된 데이터나 결과를 사용할 수 있습니다. 이는 데이터베이스나 외부 API에 대한 요청 횟수를 줄여서 애플리케이션 서버의 처리 능력을 향상시키는 효과를 가집니다.
데이터베이스 캐시
데이터베이스 캐시는 데이터베이스의 성능을 향상시키기 위해 적용되는 기술입니다. 데이터베이스 캐시는 자주 사용되는 데이터를 메모리에 미리 저장해 놓고, 다음에 같은 데이터를 요청할 경우 메모리에서 바로 반환하는 방식으로 동작합니다. 이는 디스크에서 데이터를 읽어오는 비용을 줄여서 데이터베이스의 처리 속도를 향상시키는 효과를 가집니다.
CDN(Content Delivery Network)
서버 단 캐시의 또 다른 방법은 CDN(Content Delivery Network)을 사용하는 것입니다. CDN은 전 세계에 분산된 서버 네트워크를 이용해 클라이언트의 요청을 처리하고, 해당 데이터를 가장 가까운 서버에서 전달함으로써 웹 사이트의 로딩 속도를 높이는 기술입니다. CDN에서는 캐시 서버를 이용해 콘텐츠를 저장하고, 클라이언트의 요청이 있을 때 캐시 서버에서 바로 데이터를 전달함으로써 웹 사이트의 성능을 개선합니다.
저장 위치에 따른 구분
서버 단 캐시는 데이터를 저장하는 위치에 따라 프록시 캐시와 리버스 프록시 캐시로 나뉩니다.
프록시 캐시
프록시 캐시는 클라이언트의 요청을 받아서 서버로 전달하는 역할을 수행합니다. 이때 클라이언트가 요청한 데이터가 캐시에 저장되어 있다면, 캐시에서 데이터를 가져와서 클라이언트에게 전달합니다. 프록시 캐시는 웹 서버와 애플리케이션 서버 사이에서 사용됩니다.
리버스 프록시 캐시
리버스 프록시 캐시는 웹 서버의 앞단에 위치하며, 클라이언트의 요청을 받아서 웹 서버로 전달하는 역할을 수행합니다. 이때 웹 서버가 반환한 데이터가 캐시에 저장되어 있다면, 캐시에서 데이터를 가져와서 클라이언트에게 전달합니다. 리버스 프록시 캐시는 웹 서버의 부하를 줄이고, 웹 사이트의 성능을 개선하는데 사용됩니다.
서버 단 캐시는 클라이언트 단 캐시와 함께 사용되면 웹 사이트의 성능을 최적화할 수 있습니다. 다음 포스트에서는 클라이언트 단 캐시에 대해 자세히 살펴보겠습니다.
'IT&개발' 카테고리의 다른 글
클라이언트 단 캐시 (Client-side Caching) (0) | 2023.03.09 |
---|---|
스크립트 프로그래밍 언어 (0) | 2023.03.07 |
로드밸런서 (Load Balancer) (0) | 2023.03.06 |
파이썬 인터프리터란? (0) | 2023.03.04 |
파이썬 GIL (0) | 2023.03.04 |
- Total
- Today
- Yesterday
- 팀장의 본질
- Script Programming Language
- utm_source
- 사용자 데이터 보안
- 가용성
- utm_campaign
- 2023년 7월 1일
- MVT 모델
- django ORM
- DB모델
- 2023년 봄
- 클라우드 비용 절감
- bulk_create
- 클라이언트 사이드 캐싱
- query optimization
- Python
- 부하 분산
- 쿼리 최적화
- django
- asyncio
- Global Interpreter Lock
- 애플리케이션 배포
- 서버 사이드 캐싱
- 벡터vs래스터
- select_related
- utm_term
- GA 유니버설 애널리틱스 종료
- DB 쿼리
- 웹 애플리케이션 캐시
- utm_medium
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |