day28 🌕

장미·2022년 7월 11일
0

오늘의 성과

목록 보기
28/129

[모든 개발자를 위한 HTTP 웹 기본 지식] 섹션 5 수강

섹션 5. HTTP 메서드 활용 수강 완료!!

클라이언트에서 서버로 데이터 전송

  • 쿼리 파라미터를 통한 데이터 전송

    • GET
    • 정렬 필터
  • 메시지 바디를 통한 데이터 전송

    • POST, PUT, PATCH
    • 회원가입, 상품 주문, 리소스 등록, 리소스 변경

정적 데이터 조회 시 GET을 사용하며 쿼리 파라미터 없이 리소스 경로로 조회가 가능하다. 동적 데이터 조회 시 GET을 사용하며 쿼리 파라미터를 사용해서 데이터를 전달한다. 주로 검색, 게시판 목록에서 정렬 필터(검색어)를 사용한다.

HTML Form submit 시 POST로 전송한다. HTML Form 전송은 GET(조회), POST(등록)만 지원한다.

HTTP API - 컬렉션(서버가 관리하는 리소스 디렉터리)

  • POST 기반 등록
  • 서버가 리소스 URI 결정

HTTP API - 스토어(클라이언트가 관리하는 자원 저장소)

  • PUT 기반 등록
  • 클라이언트가 리소스 URI 결정

계산기 수정🔮


캐시

+) 22. 07. 13. 12:57 추가 완!

캐시의 개념

캐시: 메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소.

캐시는 필요한 데이터를 모아 한꺼번에 전달하는 버퍼의 일종으로, CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다놓는다.
이렇게 미리 가져오는 작업을 ‘미리 가져오기(prefetch)’라고 한다.

예를 들어, 요리를 할 때 간장 10cc가 필요한 경우, 50cc를 미리 가져다놓으면 다음에 간장이 또 필요할 때 시간을 단축할 수 있다.
이처럼 필요하다고 생각되는 일정량의 데이터를 미리 가져와 저장해두는 곳이 캐시이다.


캐시는 CPU 안에 있으며 CPU 내부 버스의 속도로 작동한다.
메모리의 경우 시스템 버스의 속도로 작동하기 때문에 느리다.

캐시는 빠른 속도로 작동하는 CPU와 느린 속도로 작동하는 메모리 사이에서 두 장치의 속도 차이를 완화해준다.


CPU는 메모리에 접근해야 할 때 캐시를 먼저 방문하여 원하는 데이터가 있는지 찾아본다.
이 때, 캐시에서 원하는 데이터를 찾았다면 이를 캐시 히트(cache hit)라 한다. 그리고 그 데이터를 바로 사용한다.
그러나 원하는 데이터가 캐시에 없다면 메모리로 가서 데이터를 찾는데, 이를 캐시 미스(cache miss)라 한다.
캐시 히트가 되는 비율을 캐시 적중률(cache hit ratio)이라고 하며, 일반적인 컴퓨터의 캐시 적중률은 약 90%다.

컴퓨터의 성능을 향상시키려면 캐시 적중률이 높아야 한다.

캐시 적중률을 높이는 방법 중 하나는 캐시의 크기를 늘리는 것이다. 하지만 가격이 비싸기 때문에 크기를 늘리는 데 한계가 있어 몇 메가바이트 정도만 사용한다.

또 다른 방법은, 앞으로 많이 사용될 데이터를 가져오는 것이다. 현재 위치에 가까운 데이터가 멀리 있는 데이터보다 사용될 확률이 더 높다는 지역성(locality) 이론이 있다. 예를 들어, 현재 프로그램의 10번 행이 실행되고 있다면 다음에 101번 행이 실행될 확률보다 11번 행이 실행될 확률이 더 높다는 것이다. 따라서 현재 10번 행을 실행하는 경우 지역성 이론에 따라 11~20번 행을 미리 가져오면 된다.


즉시 쓰기와 지연 쓰기

캐시는 메모리에 있는 데이터를 임시로 가져온 것이기 때문에 캐시에 있는 데이터가 변경되면 메모리에 있는 원래 데이터를 변경해야 한다.

캐시의 변경된 데이터를 반영하는 데에는 즉시 쓰기 방식지연 쓰기 방식이 있다.

  • 즉시 쓰기(write through)
    캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영하는 방식.

    • 장점: 메모리의 최신 값이 항상 유지되기 때문에 급작스러운 정전에도 데이터를 잃어버리지 않는다.
    • 단점: 메모리와의 빈번한 데이터 전송으로 인해 성능이 느려진다.

  • 지연 쓰기(write back)
    캐시에 있는 데이터가 변경되면, 변경된 내용을 모아 주기적으로 반영한다. 카피백(copy back)이라고도 한다.
    • 장점: 메모리와의 데이터 전송 횟수가 줄어들어 시스템의 성능을 향상할 수 있다.
    • 단점: 메모리와 캐시된 데이터 사이의 불일치가 발생할 수도 있다.

L1 캐시와 L2 캐시

일반 캐시: 명령어와 데이터의 구분 없이 모든 자료를 가져온다.
특수 캐시: 명령어와 데이터를 구분하여 가져온다.

레벨별 캐시의 구조

명령어 캐시는 명령어 레지스터와 연결되어 있고, 데이터 캐시는 데이터 레지스터와 연결되어 있다.
명령어 캐시나 데이터 캐시는 CPU 레지스터에 직접 연결되기 때문에 Level1 캐시라고 부르며, 일반 캐시는 메모리와 연결되기 때문에 Level2 캐시라고 부른다.


웹 브라우저 캐시

캐시는 소프트웨어적으로도 사용되는데, 대표적인 예가 웹 브라우저 캐시이다.
웹에서 사용하는 캐시는 ‘앞으로 다시 방문할 것을 예상하여 지우지 않은 데이터’라고 정의할 수 있다.
웹 브라우저의 캐시는 방문했던 사이트의 데이터를 보관하여 재방문 시 속도를 높이는 역할을 한다. 그러나 너무 많은 데이터가 캐시에 보관되어 있으면 웹 브라우저의 속도를 떨어뜨릴 수 있으므로 가끔 청소를 하는 것이 좋다.


참고 자료

조성호, 쉽게 배우는 운영체제


정처기

profile
김뉴비

0개의 댓글

관련 채용 정보