Tsunayoshi Tsuna Sawada - Katekyo Hitman Reborn 3 'CS' 카테고리의 글 목록 — 개발하는 핸니
[ CS ] Lock
·
CS
Notion에서 작성 된 글입니다. 템플릿이 깨진다면 Notion을 확인해주세요. Lock | Notion들어가기앞서…hail-buttercup-c86.notion.site 들어가기앞서…필자는 이번 프로젝트에서 이벤트 기능을 맡게되었다.이벤트 기능의 주요 서비스는, 여러명의 사용자가 포인트를 지불하고 이벤트에 참여하면 이벤트에 누적 금액이 쌓이게되고, 목표 금액에 달성한 사용자만이 티켓을 얻게되는 이벤트이다.때문에 이벤트 응모 요청은 동시에 여러명이 요청할 수 있는 API이다.이런 사용자의 요청이 모두 다 정상적으로 반영되면 좋겠지만, 실제로는 동시에 여러명이 요청을 할 경우, 누적금액이 모두 정상적으로 반영이 될까? 결과부터 말해보자면 그렇지않다. 이런 동시성 문제를 해결하기 위해서는 Lock에 대한..
[ CS ] 동기와 비동기
·
CS
들어가기앞서…개발 공부를 하다보면 동기와 비동기라는 자주 듣게된다. 이건 멀티 스레드 혹은 동시성에 대해서 공부를 하다보면 더더욱 자주 듣게 되는데, 도대체 동기와 비동기란 무엇일까? 이번 기회에 알아보자.동기와 비동기동기와 비동기는 무엇일까?아래의 사진은 동기와 비동기 이해를 돕기 위해 사용된 사진이다.동기를 살펴보면 한명의 주인이 여러명의 고객을 순차적으로 맡아 결제를 진행하고있다. 또한 주문한 후에 커피가 나올때 까지 기다려야한다.비동기를 살펴보면 여러명의 주인이 고객을 맡아 결제를 진행하고있다. 또한 주문 후 진동벨이 울리면 커피를 가져올 수 있다.둘의 운영 방식에 확실히 차이점이 있어보인다. 이제 좀 더 깊게 들어가보자.동기(Synchronous)동기는 사전적으로 ‘동시에 일어난다’라는 의미를 ..
[CS] 캐시 메모리(Cache Memory)란?
·
CS
들어가기 앞서 . . .CS 공부를 하면서 CPU나 메모리 구조를 배울 때마다 자주 마주치는 용어가 바로 캐시 메모리였다.하지만 “속도 차이를 줄이기 위한 메모리다”라는 정의만으로는 왜 필요한지, 어떻게 동작하는지 명확히 와닿지 않았다.이번 포스팅에서는 캐시 메모리가 실제로 어떤 상황에서 사용되고, CPU와 메모리 사이에서 어떤 역할을 하는지 그림과 예시를 통해 구체적으로 정리해보고자 한다. 캐시 메모리란 무엇일까?캐시 메모리란 속도가 빠른 장치와 속도가 느린 장치간의 속도 차이로 인해 일어나는 병목 현상을 줄이기 위한 메모리이다.정의로만 보면 쉽게 이해가 잘 안된다. 그림과 예시를 함께 봐보자. CPU는 연산처리가 굉장히 빠르다.하지만 CPU가 주기억장치(RAM)에서 데이터를 가져오는데 시간이 오래 걸..
[HTTP] 모든 개발자를 위한 HTTP 웹 기본 지식 - 8
·
CS/HTTP
👩‍💻 HTTP 헤더2 - 캐시와 조건부 요청 📌 캐시 기본 동작 ✏️캐시의 기본 동작 - 캐시가 없을 때 캐시가 없으면 ? 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 ✏️캐시의 기본 동작 - 캐시를 적용 캐시를 적용한다면... 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된디. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 캐시 시간이 초과된다면? 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다. 만약에 클라이언트 캐시가 만료되어도, 클라이언트가..
[HTTP] 모든 개발자를 위한 HTTP 웹 기본 지식 - 7
·
CS/HTTP
👩‍💻 HTTP 헤더  📌 HTTP 헤더 개요✏️HTTP 헤더의 용도: HTTP 전송에 필요한 모든 부가정보HTTP 전송에 필요한 모든 부가정보 (ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관련 정보 등등 . . .과거의 헤더 최신 스펙          📌 표현✏️표현 관련 헤더Content-Type: 표현 데이터 형식Content-Encoding: 표현 데이터의 압축 방식Content-Language: 표현 데이터의 자연 언어Content_Length: 표현 데이터의 길이표현 헤더는 전송, 응답 둘다 사용함   ✏️Content_Type:표현 데이터의 형식 (컨텐츠 바디에 들어가는 바디의 내용이 뭐야?)미디어 타입, 문자 인코딩예)  ✏️..
[HTTP] 모든 개발자를 위한 HTTP 웹 기본 지식 - 6
·
CS/HTTP
👩‍💻 HTTP 상태코드 📌 HTTP 상태코드 소개 ✏️상태코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(Informational): 요청이 수신되어 처리중 (거의 사용 되지 않음) 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요함 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 (데이터 베이스 오류등) "만약에 모르는 상태 코드가 나타나면 ?" : 클라이언트는 상위 상태코드로 해석해서 처리 ✏️ 2xx - 성공 (1xx대는 잘 사용하지 않으므로 넘어가도록 한다) : 클라이언트..
[HTTP]모든 개발자를 위한 HTTP 웹 기본 지식 - 5
·
CS/HTTP
👩‍💻 HTTP 메서드 활용 📌 클라이언트에서 서버로 데이터 전송 ✏️클라이언트 -> 서버 데이터 전달 방식은 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 ✏️클라이언트 -> 서버 데이터 전송의 4가지 상황 정적 데이터 조회 동적 데이터 조회 HTML Form을 통한 데이터 전송 HTTP API를 통한 데이터 전송 1. 정적 데이터 조회 :쿼리 파라미터 미사용 ✔️ 이미지, 정적 텍스트 문서 ✔️ 조회는 GET 사용 ✔️ 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 클라이언트에서 서버로 static/star.jpg 라고 URI를 ..
[HTTP]모든 개발자를 위한 HTTP 웹 기본 지식 - 4
·
CS/HTTP
👩‍💻 HTTP 메서드 📌 HTTP API를 만들어보자 ✏️API URI 고민 :URI(Uniform Resource Identifier 리소스의 의미는 무엇일까 ? 회원을 등록하고 수정하고 조회하는것이 리소스가 아님 ex) 미네랄을 캐라 -> 미네랄이 리소스 회원이라는 개념 자체가 바로 리소스이다. 리소스를 어떻게 식별할까 회원을 등록, 수정, 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 매핑 ✏️리소스와 행위를 분리 :가장 중요한 것은 리소스를 식별하는 것 URI는 리소스만 식별 ! 리소스와 해당 리소스를 대상으로 하는 행위를 분리 리소스: 회원 행위: 조회, 등록, 삭제, 변경 리소스는 명사, 행위는 동사 (미네랄 = 명사 , 캐라 = 동사) 📌 HTTP..