본문 바로가기

Study5

[Protocol] HTTP 정리 HTTP : HyperText Transfer Protocol의 약자로, 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜 TCP/IP를 이용하는 응용 프로토콜 HTTP의 특징 client-server 구조 무상태 프로토콜(Stateless) 연결 상태를 유지하지 않는 비연결성(Connectionless) 프로토콜 HTTP 메세지 단순함. 확장 가능 무상태 프로토콜(Stateless) : 통신에 필요한 모든 상태 정보들을 서버에서 보존하지 않고 클라이언트에서 가지고 있다가 서버와 통신할 때 데이터를 실어보내는 것 [Web] Stateful / Stateless 차이 상태 프로토콜 (Stateful) : client-server 관계에서 서버가 클라이언트의 상태를 보존함을 의미 클.. 2023. 10. 16.
[HTTP] HTTP message HTTP message : 서버와 클라이언트 간 데이터가 교환되는 방식 HTTP message 유형으로는 요청(Request)과 응답(Response)가 있음. HTTP message 구성 요청 Method GET, POST, DELETE, PUT 등과 같은 HTTP 메소드 Request-URI 서버의 리소스를 식별하는 URI Protocol version HTTP 버전 Headers HTTP request 메세지에 대한 metadate를 key-value의 형태로 나타냄 클라이언트(브라우저) 타입, 클라이언트가 원하는 형식, 메세지 본문 형식, 캐시 설정 등의 내용이 포함되어 있음 Body 메세지 내용 또는 리소스 표현 응답 Protocol version HTTP 버전 Status code 요청된 리소.. 2023. 10. 13.
[Web] Stateful / Stateless 차이 상태 프로토콜 (Stateful) : client-server 관계에서 서버가 클라이언트의 상태를 보존함을 의미 클라이언트의 정보를 기억한다 ▶ 어딘가 정보를 저장하고 통신할 때마다 읽는다는 뜻 보통 브라우저의 쿠키에 저장되거나, 서버의 세션 메오리에 저장되어 상태 유지 Stateful 구조를 따르는 프로토콜 예로 TCP의 3-way handshaking 과정을 이야기할 수 있음 단점 해당 서버가 멈추거나 못쓰게 되면 다른 서버는 해당 서버의 상태값들을 가지고 있기 않기 때문에 대체가 불가능 용량 한계 존 무상태 프로토콜 (Stateless) : 통신에 필요한 모든 상태 정보들을 서버에서 보존하지 않고 클라이언트에서 가지고 있다가 서버와 통신할 때 데이터를 실어보내는 것 UDP와 HTTP가 대표적인 St.. 2023. 10. 11.
[JSON] JSON 정리 JSON : 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 JavaScript Object Notation(자바 스크립트 객체 표기법)의 약자 텍스트 기반이기 때문에 어떤 프로그래밍 언어에서도 데이터를 읽고 사용 가능 XML보다 좀 더 쉽게 데이터를 교환, 저장하기 위해 고안 XML EXtensibleMarkup Language의 약자로, HTML과 매우 비슷한 문자 기반의 마크업 언어 데이터를 저장하고 전달할 목적으로 만들어짐 HTML태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의 가능 JSON 특징 JS를 확장하여 만들어짐 JS 객체 표기법을 따름 사람과 기계가 모두 읽기 편하도록 고안 프로그래밍 언어와 OS에 독립접 JSON vs XML JSON XML 공통점 데이터.. 2023. 10. 11.
[Firebase] Realtime Database & Firestore Realtime Database 데이터를 하나의 큰 JSON 트리로 저장 단순한 데이터 → 매우 쉽게 저장 복잡한 계층적 데이터 → 대규모로 정리하기 어려움 로컬에 저장하고 있다가 네트워크가 연결되면 저장했던 데이터를 동기화 시켜 오프라인 상태에서 데이터 유지 (Apple, Android) 클라이언트의 접속 상태 지원됨 제한적인 정렬 및 필터링 기능을 갖춘 깊은 쿼리 쿼리에서 속성을 정렬 또는 필터링할 수 있으나, 두 가지를 함께 진행하는 것은 불가 깊은 쿼리가 수행되어 항상 전체 하위 트리를 반환 불필요하게 큰 데이터까지 매번 가져와야 하기 때문에 매우 심각한 성능 저하 발생 가능성 O 확장을 하려면 DB를 여러 개로 나눠야 함(샤딩) 한 번에 많은 사용자와 데이터를 주고 받는 것이 가능하지만, 초당 .. 2023. 10. 10.