본문 바로가기
728x90
반응형
SMALL

IT 지식28

[Network] TCP의 3-way handshake / 4-Way Handshake TCP와 UDP를 비교하는 글에서 간단하게 3-way handshake라는 과정을 소개했다. https://suzzeong.tistory.com/95 TCP vs UDP TCP와 UDP는 OSI 7 계층 중 4번째, 전송 계층에서 사용되는 프로토콜이다. 전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층이다. IP에 의해 전달되는 패킷의 suzzeong.tistory.com 3-way handshake란 무엇인지? 4-Way Handshake란 무엇인지? 이제 조금 더 깊게 알아볼 것이다. 그 전에 TCP에 대해 다시 정리해 보자. TCP(Transmission Control Protocol)란? TCP(전송 제어 프로토콜)는 두개의 호스트를 연결하고 데이터 스트림을 교환하.. 2023. 1. 12.
[Data Structure] ADT(추상적 자료형): 큐와 스택 추상적 자료형(Abstract Data Type, ADT)은 컴퓨터 과학에서 자료들과 그 자료들에 대한 연산들을 명기한 것이다. 즉, 어떤 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것을 말한다. 추상적 자료형의 예로는 복소수, 리스트, 스택, 큐, 맵, 우선순위 큐, 집합 등이 있는데, 이 중, 대표적으로 큐와 스택에 대해 알아보겠다. 1. 큐 (Queue) 데이터를 집어넣을 수 있는 선형(linear) 자료형 FIFO(First In First Out) - 먼저 집어넣은 데이터가 먼저 나옴 데이터를 집어 넣는 enqueue, 데이터를 추출하는 dequeue 등의 작업을 할 수 있음큐는 순서대로 처리해야 하는 작업을 임시로 저장해두는 버퍼(b.. 2023. 1. 10.
시간 복잡도와 공간 복잡도 동일한 기능을 수행하는 알고리즘이 있을 때 복잡도가 낮을수록 좋은 알고리즘이라고 한다. 복잡도는 알고리즘의 성능을 나타내는 척도다. 복잡도는 시간 복잡도와 공간 복잡도로 나눌 수 있다. 효율적인 알고리즘이란? 알고리즘이 수행을 시작하여 결과가 도출될 때까지 실행에 걸리는 시간이 짧고 연산하는 컴퓨터내의 메모리와 같은 자원을 덜 사용하는 것이 효율적이라고 할 수 있다. 1. 시간 복잡도(Time Complexity) 시간 복잡도란 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석, 알고리즘을 실행하여 종료할 때까지 걸리는 시간을 의미한다. 즉, 알고리즘을 위해 필요한 연산의 횟수를 말한다. Big-O(빅 오)표기법 시간 복잡도를 표기하는 방법 중에 가장 많이 사용하는 표기법은 Big-O(빅 오)표기법.. 2023. 1. 9.
[Network] TCP vs UDP TCP와 UDP는 OSI 7 계층 중 4번째, 전송 계층에서 사용되는 프로토콜이다. 전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층이다. IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당한다. 1. TCP(Transmission Control Protocol) TCP는 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜이다. 일반적으로 TCP와 IP가 함께 사용된다. IP는 데이터의 전송을 처리, TCP는 패킷 추적 및 관리를 한다. TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작하는데, 흐름제어와 혼잡 제어를 지원하며 데이터의 순서를 보장한다. - 흐름 제어: 보내는 측과 받는 측의 데이터 처리속도 차이를 .. 2022. 12. 16.
[Network] HTTP vs HTTPS HTTP란 뭔가요? HTTP는 HyperText Transfer Protocol의 약자로 데이터를 주고받기 위해 정의한 통신 프로토콜이다. 웹을 기준으로 브라우저와 서버 간에 데이터를 주고받기 위항 방식으로 HTTP 프로토콜을 사용하고 있다. HTTP 프로토콜의 가장 큰 특징은 뭔가요? HTTP 프로토콜은 상태가 없는 (stateless) 프로토콜이다. 여기서 상태가 없다는 말은 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말이다. 이전에 보냈던 데이터 요청과 다음에 보낼 데이터 요청이 서로 관련이 없다는 의미다. 이러한 특징 덕분에 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점이 생긴다. .. 2022. 10. 19.
[Operating System] 프로세스와 스레드 프로세스(process)란? 프로세스는 운영체제로부터 자원을 할당 받은 작업의 단위입니다. 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성됩니다. 스레드(thread)란? 스레드는 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위입니다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있고 이러한 실행 방식을 멀티스레드라고 합니다. 프로그램 → 프로세스 → 스레드 프로그램이란? 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말합니다. 즉, 프로그램이라는 단어는 아직 실행되지 않은 파일 그 자체를 가리키는 말입니다. 프로그램 → 프로세스 프로그램을 실행하는 순간 해당 파일은.. 2022. 10. 13.
728x90
반응형
LIST