devInfo

    HTTP와 HTTPS

    HTTP 웹 서버와 클라이언트 간의 문서를 교환하기 위한 통신 규약 웹에서만 사용하는 프로토콜로 TCP/IP 기반으로 서버와 클라이언트 간의 요청과 응답을 전송한다. HTTP의 특징 TCP 기반의 통신 방식 비연결 지향 브라우저를 통해 사용자의 요청으로 서버와 접속하여 요청에 대한 응답의 데이터를 전송후, 연결을 종료한다. 간단하기 때문에 자원이 적게드는 장점이 있다. 하지만, 연결이 지속적이지 않기 때문에 사용자와 연결 종료후 추가적인 요청시 어떤 사용자의 요청인지 모른다는 점이 존재한다. 즉, 여러 사용자가 요청할 시 각각의 사용자 요청을 구분할 수 없어서 제대로 된 응답 데이터를 전송할 수 없다는 단점이 있다. 해결 방법으로는 쿠키, 세션, 히든 폼 필드 등이 있다. 단방향성 사용자의 요청 한개에 ..

    [뻘글]백준 solved.ac Class 2++ 달성!

    코딩테스트 대비한다고 어려운 문제들만 풀다가 생각나서 하루에 한두개씩 천천히 풀기 시작했는데 드디어 class 2++ 달성했다. class 2문제는 가끔 어려운 문제가 있는 정도라 어렵진 않았지만 문제가 꽤 많아 오래걸린 것 같다. 바로 class3 달성을 목표로 시작해야겠다. class3 문제부터는 슬슬 어려워지는 것 같아 도움이 많이 될 것 같다.

    [백준] 18111번 마인크래프트 _ Node.js

    문제 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 문제 풀이 해당 문제는 문제가 길지만 정리하면 간단한 수학 문제이다. 땅을 캐는데는 2라는 시간이 소모되고, 땅을 채우는데는 1이라는 시간이 소모된다. 이 때 땅을 채우기 위해서는 인벤토리에 땅 블록이 있어야지만 가능하다. 문제는 최대 층에서 최소층까지 진행하며 해당 층을 만들기 위해서는 얼마의 시간이 필요한지 확인하면 된다. x라는 층을 만들기 위해서는 x보다 높은 블록을 제거하고, x ..

    3-handshake와 4-handshake

    3-handshake와 4-handshake는 TCP/IP 프로토콜을 이용하여 통신할 때 사용되는 방식이다. 해당 방식들은 각각 통신을 연결할 때와 연결을 끊을 때 사용된다. 아래 설명을 통해 이 두 방식을 이해해보자. 3 way handshake TCP/IP 프로토콜을 이용하여 통신을 진행할 때, 두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정이다. 연결 과정 SYN : Synchronize Sequence Number ACK : Acknowledgement 클라이언트는 서버에 접속을 요청하는 SYN(a) 패킷을 보낸다. 서버는 클라이언트의 요청인 SYN(a) 패킷에 대한 요청 수락 응답으로 ACK(a+1) 패킷과 클라이언트도 포트를 열어달라는 SYN(b) 패킷을 보낸다. 클라이언..

    UDP

    UDP UDP를 해석하면 사용자 데이터그램 프로토콜(규약)이라는 뜻으로 데이터를 데이터그램 단위로 처리하는 프로토콜으로 풀어 사용할 수 있다. 여기서 데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻으로, UDP의 동작방식을 설명하자면 다음과 같다. 위에서 대충 눈치채셨듯이 TCP와 달리 UDP는 비연결형 프로토콜이다. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하게 되고, 이러한 프로토콜을 UDP라고 합니다. UDP 특징 비연결형 서비스로 데이터그램 방식을 제공한다 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다. UDP헤더의..

    TCP

    TCP 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다. 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜이다. 사전에 3-way handshake라는 과정을 통해 연결을 설정하고 통신을 시작한다. 4-way handshake 과정을 통해 연결을 해제(가상 회선 방식)한다. 흐름 제어, 혼잡 제어, 오류 제어를 통해 신뢰성을 보장한다. 그러나 이 때문에 UDP보다 전송 속도가 느리다는 단점이 있다. 데이터의 전송 순서를 보장하며 수신 여부를 확인할 수 있다. TCP를 사용하는 예로는 대부분의 웹 HTTP 통신, 이메일, 파일 전송에 사용된다. TCP가 가상회선 방식을 제공한다는 것은 송신측과 수신측을 연결하여 패킷을 전송하기 위한 논..