목록전체 글 (66)
맨틀 이야기
HTTP 통신은 무상태성이다—클라이언트와 서버가 대화를 완료하고 HTTP 연결을 끊으면 서버는 더이상 클라이언트에 대해 알고 있지 않는다. 따라서 로그인한 사용자 정보 등의 상태를 따로 저장해야 하는데, 이때 쿠키나 세션 같은 기술을 사용한다. 쿠키 (Cookie)쿠키는 클라이언트의 로컬 환경에 저장하는 텍스트 정보로, 각 브라우저별로 쿠키를 저장한다. (크롬에서 저장한 쿠키는 파이어폭스에서 사용할 수 없다) HTTP 요청에 쿠키가 들어있으면 서버는 해당 쿠키의 내용을 읽어 클라이언트에 대한 정보를 알 수 있다. 쿠키는 다음과 같은 특징을 갖고 있다:저장 형태: 쿠키의 데이터는 key=value 형식으로 저장된다 (예: name=Bob)전송 방식: 매 HTTP 요청에 자동으로 실려서 전송된다쿠키가 파기되..
SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 인터넷 상에서 데이터를 암호화하고 인증하기 위한 프로토콜이다. 둘 다 HTTPS의 기반이 되며, TLS는 SSL의 개선된 버전으로 주로 사용된다. TLS는 데이터를 암호화하여 중간에서 탈취당하더라도 해독이 불가능하게 하고, 서버와 클라이언트 간에 보안 채널을 설정하여 통신의 기밀성과 무결성을 보장한다. 대칭키 암호화대칭키 암호화는 데이터를 암호화하고 복호화할 때 동일한 "비밀 키"를 사용하는 방식이다. 송신자와 수신자가 같은 키를 사용하기 때문에 데이터 전송 속도가 빠르고 처리 효율이 높다. 대칭키 암호화는 속도가 빠르지만, 키를 송신자와 수신자가 모두 알아야 하므로 키를 안전하게 전달하는 문제가 있다..
DNS(Domain Name Server)는 웹사이트의 도메인 이름(http://www.site.com 부분)을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 일종의 전화번호부 같은 시스템이다. 192.0.2.1 같은 IP 주소는 사람이 쉽게 외울 수 있는 형식이 아니다. 때문에 숫자 대신 우리가 알아보기 쉬운 알파벳 단어로 이루어진 도메인 이름을 사용할 수 있게 하고, DNS는 이 도메인 이름을 IP 주소로 변환해서 리소스에 접근할 수 있게 해준다. DNS의 동작 방식사용자가 도메인 이름을 입력: 사용자가 브라우저에 도메인 이름(예: http://www.example.com)을 입력한다.로컬 DNS 캐시 확인: 브라우저와 운영체제는 최근에 방문한 사이트의 IP 주소를 캐시하고 있으므로, 우선 캐시에 해..
HTTP는 인터넷 상에서 웹 클라이언트(브라우저 등)와 웹 서버 간 데이터를 전송할 때 사용하는 프로토콜이다. 크롬이나 파이어폭스 같은 웹 브라우저 애플리케이션이 HTTP 프로토콜을 통해 서버와 웹 페이지, 이미지, 영상 등의 데이터를 주고 받는다. HTTP/0.9태초의 버전이지만 당시에는 따로 버전 라벨이 없었기 때문에 나중에 0.9를 붙여줬다. 한줄짜리 GET 요청만 썼었고, 리소스 주소도 프로토콜, 서버, 포트 번호가 필요 없었기 때문에 전체 주소를 쓰지 않았다.응답도 굉장히 간단하게 요청한 파일 그 자체만 들어있었고, HTML 파일만 전송 가능했다. 헤더, 상태, 에러코드의 개념이 없었다. 문제가 발생하면 상황을 알리는 특수한 HTML 파일이 생성되는 방식이었다. 요청ㅡ응답 예시:요청:GET /m..
컴퓨터 프로토콜이란?기기들이 통신할 때 통신을 허용할지, 연결된 기기에게 무엇을 요청할지, 데이터를 어떤 형식으로 보낼지 등의 소통이 오가는데, 이때 사용하는 것이 프로토콜이다. 프로토콜은 컴퓨터 네트워크의 노드들이 서로와 통신하기 위해 따르는 규칙들이다. 우리가 소통할 때 상대의 메세지에 적절한 응답을 주고 받는 것처럼 프로토콜도 메세지 포맷, 전달 순서, 취할 액션 등이 규정되어 있다. 소통 방식에 따라 다양한 프로토콜이 존재한다. TCP/IPTCP/IP는 패킷 통신의 규약인 IP(Internet Protocol)와 전송 조절에 대한 규약인 TCP(Transmission Control Protocol)를 합쳐서 부르는 프로토콜 스위트(같은 통신 목적에 사용되는 여러 프로토콜의 집합)이자 계층화된 통신..
컴퓨터 네트워크는 서로 통신하고 데이터를 주고 받는 기기들로 이루어진 연결 시스템이다. 컴퓨터 네트워크의 기기는 PC뿐만 아니라 스마트폰, 서버, 프린터 등 유선이나 무선 네트워크에 연결해 통신할 수 있는 모든 기기들을 뜻하며, 다른 말로 노드(node)라고도 부른다. 노드들은 커뮤니케이션 링크(communication link)라고 부르는 연결고리로 연결돼있는데, 이 링크를 타고 데이터가 전송된다. 네트워크 구조Network edge: 말 그대로 네트워크의 가장 끝쪽에 해당하는 영역으로, 여기에 연결돼있는 노드를 host 또는 end system이라고 한다. End system은 즉 네트워크에 연결하는 단말기인데, 우리가 서비스를 제공할 때 사용자를 end user라고 부르는 것과 같은 맥락이다. Ac..
초반에 개발을 배우기 시작했을 땐 객체지향 프로그래밍은 곧 SOLID 원칙을 따르는 프로그래밍인줄로만 알고 있었는데 Java 공부를 하면서 SOLID 이전에 기본적으로 4가지의 특징이 따로 있다는 걸 알게 됐다. 캡슐화 (Encapsulation)캡슐화는 객체의 속성과 메소드를 하나로 묶고 외부에서의 직접적인 접근을 제한하는 것이다. 따라서 데이터를 보호하고 객체의 상태를 관리하는 방법을 제공한다. 이를 통해 데이터의 무결성을 유지하고 원치 않는 외부 영향을 막을 수 있다. 자바에서는 아래와 같은 접근 제어자(access modifier)를 사용해 캡슐화를 구현할 수 있다:private: 클래스 내부에서만 접근 가능public: 모든 클래스에서 접근 가능protected: 같은 패키지나 상속받은 클래스에..
Insomnia는 백엔드 RESTful API를 테스트해볼 수 있는 다양한 툴 중 하나다. 작성한 API를 JSON 파일 형태로 손쉽게 공유가 가능해서 같은 Insomnia 워크스페이스 멤버가 아니더라도 API를 테스트할 수 있다. 만약 백엔드로부터 Insomnia에서 돌리는 JSON 파일만 받은 상황이라면 아래 순서대로 불러오면 된다. 1. Collection 접근워크스페이스 멤버로 초대된 경우 해당 워크스페이스의 Collection을 클릭해 들어간다. 따로 워크스페이스가 없을 경우 무료로 제공되는 내 워크스페이스에서 새 Collection을 직접 생성해서 들어가도 무방하다. 2. JSON 파일 importCollection명을 클릭해 메뉴에서 [From File] 옵션을 선택하면 JSON 파일을 가져..