전체 글 40

웹 통신의 큰 흐름

웹이란? WWW (world wide web)의 약자이며 인터넷으로 연결된 컴퓨터를 통해 정보를 공유할 수 있는 공간을 뜻한다. 흔히 인터넷과 통용하여 사용하는데 엄연히 다른 개념이다. 인터넷 : 인터넷 프로토콜을 사용해 네트워크와 기기 간 통신하는 컴퓨터 네트워크들이 전세계적으로 상호 연결되어 이루는 시스템이다. 인터넷 vs 웹: 비유를 한 예: 인터넷이 도시라면, 웹은 도시 위에 있는 건물 하나 인터넷이 도로라면, 웹은 도로 위에 있는 자동차 한대 기본적으로 웹 통신은 HTTP 프로토콜을 사용하여 통신한다. 웹에 연결된 컴퓨터는 클라이언트(Client)와 서버(Server)로 구분한다. 클라이언트 : 사용자가 서버에 접속하기 위해 사용하는 프로그램 또는 서비스이다. ex) 웹 브라우저, 모바일 앱 등..

Network 2023.01.29

DNS와 DNS round robin 방식

DNS(Domain Name System) DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다. 도메인 네임 시스템은 흔히 "전화번호부"에 비유된다. 인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.google.com 이라는 도메인 이름을 DNS 서버에게 제공하면, 24.55.67.22 라는 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다. DNS 과정 1. DNS Query DNS 서버에서 도메인 이름에 해당하는 IP 주소를 요청하여 받아..

Network 2023.01.27

HTTP와 HTTPS 란? + SSL 동작 과정

HTTP (Hypertext Transfer Protocol) HTTP는 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜이다. 웹 서핑을 할 때 서버에서 자신의 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용된다. 인터넷 초기에 모든 웹 사이트에서 기본적으로 사용된 프로토콜이다. 자세한 HTTP의 동작 방식은 이전 글을 참고해 주길 바란다. 하지만 HTTP에는 단점이 존재했다. 평문 텍스트, 즉 암호화되지 않은 텍스트를 전송하는 프로토콜로, 중간자 공격에 취약하다. 변조, 위장, 도청에 취약하다. 이 말은 즉슨 데이터가 쉽게 도난 당할 수 있다는 것이다. 이 문제를 해결하기 위해 HTTPS가 등장했다. HTTPS (Hypertext Transfer Protocol Sec..

Network 2023.01.22

HTTP 요청 방식 - GET, POST

HTTP(Hyper Text Transfer Protocol) HTTP의 개념 HTTP는 하이퍼텍스트 전송 규약으로, 웹 브라우저(Web Browser) 같은 응용프로그램을 통해 웹 클라이언트(사용자)와 웹 서버(서비스 제공자) 사이 데이터를 전송하는 프로토콜이다. HTTP를 통해 주고 받는 대표적인 파일은 HTML 문서파일이 있다. HTTP의 특징 - TCP/IP를 이용하는 응용 프로토콜(application protocol)이다. - 연결 상태를 유지하지 않는 비연결성 프로토콜이다. - 요청/응답 (Request/Response) 방식으로 동작한다. 연결 상태를 유지하지 않기 때문에 정보를 저장하기 위해 쿠키(Cookie)와 세션(Session)이 등장했다. 쿠키란? 웹 서버가 웹 브라우저에게 보내어..

Network 2023.01.18

TCP / UDP 차이점

TCP (Transmission Control Protocol) TCP 특징 연결형 서비스 연결형 서비스로 가상회선방식을 사용한다. ex) 3-way-handshaking, 4-way-handshaking 자세한 내용은 위에 링크를 클릭해주길 바란다. 흐름제어 (Flow Control) 데이터의 처리속도를 제어한다. 이를 제어함으로써, 수신자가 데이터를 받는 데에 있어 오버플로우 발생을 방지한다. segment 구조에서 receive window가 receiver가 얼만큼의 데이터를 받을 수 있는지에 대한 정보를 나타낸다. 혼잡제어 (Congestion Control) 네트워크 내에서의 데이터 양을 제어함으로써 통신의 혼잡/부하가 생기는 것을 방지한다. 전이중,점대점 방식 전이중 방식: 양방향으로 전송/..

Network 2023.01.16

'TCP 3-way-handshake & 4-way-handshake'는 무엇일까?

TCP란? TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜 중 하나로, 신뢰성을 보장하는 연결형 서비스이다. TCP 특징 전송되는 데이터의 신뢰성 보장 (흐름 제어, 혼잡 제어, 오류 제어) 파일전송에 주로 사용 가상 회선을 만들어 신뢰성을 보장 ※ TCP가 가상회선 방식을 제공한다는 것은 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 말이다. 3-way-handshake 연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식으로, 3번의 확인 과정을 거친다고 해서 3 way handshake라고 부른다. TCP 3-way-handshake를 간단히 표현하면 다음과 같다. Client -> Server : 내 말 들려? Server -> ..

Network 2023.01.13

OSI 7계층

OSI(Open Systems Interconnection) 7계층 OSI 7계층이란? 통신이 일어나는 과정을 7단계로 정의한 국제 통신 표준 규약이다. 계급, 상하구조가 존재한다. ex)물리적 회선 연결이 있어야 데이터를 보낼 수 있다. 각 계층은 독립되어있다 따라서 용이성, 유지관리가 수월하다. 왜 7계층으로 나눌까? 통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 부분만 수정할 수 있기 때문이다. OSI 7계층 나열 1) 물리 계층 (Physical Layer) - 리피터, 케이블, 허브 등 데이터를 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간 데이터 단위: 데이터는 0과 1의 비트열, 즉 On,Off 전기적 신호 상태로 이루어진다. 데이터를 전달하기만 한다...

Network 2023.01.06

RISC-V 의 명령어들 속에 R-format

RISC-V의 명령어 오늘은 RISC-V의 많은 형태중 R-format , 즉 R의 형태를 띈 예시를 알아 볼 예정이다. 우선 R-format의 명령어들의 종류는 ADD ex) add x5, x6, x7 // x5 = x6 + x7 SUB ex) sub x5, x6 ,x7 // x5 = x6 - x7 SLL - Shift left logical ex) sll x5, x6, x7 // x5 = x6 > x7 OR ex) or x5, x6, x7 // x5 = x6 | x7 AND ex) and x5, x6, x7 // x5 = x6 & x7 등이 있다. 이게 왜 R-format 인지 궁금한 사람들이 있을 것이다. 다음에 소개할 I-format과 비교하면서 얘기할 예정이다. 우선은 이런 종류가 있다는 것만 ..

데이터베이스를 왜 사용할까? + 특성,구성요소,성능

데이터베이스 데이터베이스가 존재하기 이전에는 파일 시스템을 이용해서 데이터를 관리하였다. (이는 현재도 부분적으로 사용되고 있다.) 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 이 때의 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이다. 데이터베이스의 특징 즉 사용하는 이유 데이터의 독립성 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. 데이터의 무결성 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 ..

DataBase(MySQL) 2022.12.24

이분 탐색의 원리 + 백준 1920 수 찾기

이분 탐색의 이분은 '둘로 나눈다'는 뜻이다. 탐색할 자료를 둘로 나누어 찾는 값이 있을 법한 곳만 탐색하기 때문에 자료를 하나하나 찾아야 하는 순차 탐색보다 원하는 자료를 훨씬 빨리 찾을 수 있다. 600page 책을 펼치는 과정으로 예시를 들면 1. 책 510쪽을 펴야한다고 가정. 2. 책의 중간쯤 펼쳐 300쪽이 나옴 3. 찾고자 하는 510은 300쪽보다 뒤에 있음. 따라서 300쪽 앞인 1~300쪽은 더 이상 찾을 필요가 없다. 4. 301~600 사이에 중간쯤을 또 펼쳐 450p가 나옴. 510은 더 뒤에 있음. 301~450 배제. 5. 이 과정을 반복하며 원하는 510쪽이 나오면 탐색을 멈춘다. 이렇게 하게되면 이분 탐색의 계산 복잡도는 O(logn)으로, 순차 탐색의 계산 복잡도인 O(n..

Python Algorithm 2022.12.21