분류 전체보기81 TCP와 UDP 전송 계층은 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 한다. 전송 계층의 대표적인 프로토콜에는 TCP와 UDP가 있다. 이 두 가지에 대해 알아보도록 하겠다. 연결형 vs 비연결형 연결형 : 송신자와 수신자 사이의 논리적인 연결을 확립하고 데이터를 전송하는 방법으로 패킷들의 순서가 맞지 않을 위험이 적고 오류 발생 시 재전송을 하여 신뢰성 있는 전송이라고 할 수 있다. 비연결형 : 송신자와 수신자 사이에 연결을 확립하지 않고 데이터를 전송하는 방법이다. 따라서 오류 확인을 하지 못하므로 신뢰성 없는 전송이라고 할 수 있다. 하지만 연결확립에 걸리는 시간이 없어 전송 속도가 빠르다. TCP TCP는 네트워크 계층 .. 2023. 3. 12. 네트워크 계층 구조 OSI 7계층 OSI 7계층 모델은 네트워크 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 통신이 일어나는 과정을 단계별로 파악하기 용이하고, 특정 계층에서 이상이 생겼을 때 다른 계층은 놔두고 문제가 있는 계층만 고쳐서 문제를 해결할 수 있기 때문에 계층을 나누어 네트워크 모델을 정의한다. 1-1) 물리 계층 (Physical Layer) 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한다. 사용되는 통신 단위는 비트(bit)이며, 0또는 1만 나타낼 수 있다. 단지 데이터를 전달만 할 뿐 전송하려는, 또는 받으려는 데이터가 무엇인지는 전혀 신경쓰지 않는다. 대표적인 장치로 통신 케이블, 리피터, 허브 등이 있다. 1-2) 데이터 링크 계층 (Data Link Layer) .. 2023. 3. 12. REST의 정의와 HTTP 메소드 REST(Representational State Transfer)란? REST는 URI와 HTTP를 이용한, 통신 목적의 아키텍처 스타일을 말한다. RESTful 하다고 하기 위해선, 다음의 6가지 조건을 만족시켜야 한다. 일관된 인터페이스 : 지정된 인터페이스를 준수한다. 그 인터페이스에는 URI 사용, HTTP 메소드 사용, Self-Descriptive Message, HATEOAS 등이 있다. 특히 뒷 부분 두 가지에 대한 설명을 아래에서 이어가겠다. 클라이언트/서버 : 클라이언트는 서버에 요청 메시지를 전송하고, 서버는 요청에 대한 응답 메시지를 전송한다. 서로 독립적이다. 비연결성 : 세션 등 이전 상황 없이도 통신할 수 있다. 클라이언트에서 서버로 가는 요청에는 그 요청에 필요한 모든 정보.. 2023. 3. 10. CORS 에러 해결하기 1. CORS를 이해하기 위한 기본 개념 - Origin Origin은 URL에서 프로토콜, 도메인, 포트 번호를 합친 부분을 의미한다. 예를 들어, 다음과 같은 URL이 있다고 해보자. URL : https://it-eldorado.com:80/posts/123456?data=789#abc 여기서 프로토콜(Scheme이라고도 함)에 해당하는 부분은 https://이고, 도메인에 해당하는 부분은 it-eldorado.com이며, 포트 번호에 해당하는 부분은 :80이다. 따라서 Origin은 https://it-eldorado.com:80이다. 2. CORS를 이해하기 위한 기본 개념 - SOP (Same Origin Policy) SOP는 다른 Origin으로 요청을 보낼 수 없도록 금지하는 브라우저의 .. 2023. 3. 9. HTTP와 HTTPS HTTP 프로토콜 HTTP(Hyper Text Transfer Protocol)은 서버와 클라이언트간에 데이터를 주고 받을 때 쓰는 통신 규약을 말한다. HTTP는 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless의 특징을 가지고 있습니다. 장점 통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단하다. 각각의 HTTP 요청에 독립적으로 응답만 보내주면 된다. 단점 이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 한다. 이를 해결하기 위해 쿠키(cookie)나 세션(session)을 사용해서 데이터를 처리한다. HTTP 통신은 클라이언트와 서버간의 통신에 있어서 별다른 보안 조치가 없기때문에.. 2023. 3. 9. 컴파일 언어 vs 인터프리터 언어 컴파일 언어 컴파일 언어는 작성한 소스 코드 전체를 한 번에 기계어로 번역한 뒤, 이 번역된 코드를 한번에 실행하는 두 단계를 거쳐 진행된다. 즉 번역과 실행이 완전히 따로 이루어진다는 뜻이다. 번역은 컴파일러를 통해 수행되고, 대표적인 예시로는 C, C++, Go 등이 있다. 규모가 큰 프로그램은 컴파일 시 오래 걸릴 수 있다. 컴파일 후에는 모든 소스코드가 기계어로 변환되어 있기 때문에 실행 시간이 빠르다. 코드를 수정하면 다시 컴파일 과정을 거쳐야 한다. 인터프리터 언어 인터프리터 언어는 소스 코드를 한 줄씩 읽어들이면서 번역과 실행을 동시에 진행한다. 번역은 인터프리터를 통해 수행되며, 대표적인 예시로는 스크립트 언어인 Python, R, JavaScript 등이 있다. 빌드 과정 없이 바로 실행.. 2023. 2. 12. 이전 1 ··· 9 10 11 12 13 14 다음