CS/스터디

    [10주차] DFS&BFS, Greedy 알고리즘, 최소 신장 트리

    [10주차] DFS&BFS, Greedy 알고리즘, 최소 신장 트리

    DFS & BFS 그래프 알고리즘으로, 경로를 찾는 문제 시 상황에 맞게 DFS와 BFS를 활용하면 된다. 그래프는 정점(node)와 그 정점을 연결하는 간선(edge)로 이루어진 자료구조이며, 그래프를 탐색한다는 것은 하나의 정점에서 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다. 두 알고리즘 모두 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사해야 한다. (검사하지 않을 경우 무한루프 위험성) 깊이 우선 탐색 (DFS) 루트 노드(혹은 임의의 노드)에서 시작해서 다음 브랜치로 넘어가기 전에, 해당 브랜치를 모두 탐색하는 방법 (미로찾기와 유사) 스택 또는 재귀함수로 구현 (순환 알고리즘의 형태) 모든 경로를 방문해야 할 경우에 적합 시간 복잡도 (V는 정점, E는 간..

    [6주차] HTTP와 HTTPS, URI, URL, URN, 포트와 소켓

    HTTP HyperText Transfer Protocol: 하이퍼텍스트 전송 프로토콜 인터넷을 작동시키는 역할을 하며 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 응용계층 프로토콜이다. HTTPS HyperText Transfer Protocol Secure: 하이퍼텍스트 전송 프로토콜 보안 표준 HTTP와 동일한 방식으로 작동하나, 서버와 주고받는 데이터가 암호화되기 때문에 웹사이트에 추가적인 보호를 제공한다. SSL 인증서를 사용하는 HTTP이다. (SSL: 일반 HTTP 요청 및 응답을 암호화) HTTP vs HTTPS HTTP와 HTTPS 모두 인터넷에서 데이터를 전송하는 데 사용되는 프로토콜이다. HTTPS는 데이터를 암호화하는 데 SSL(Secure Socket Layer)이나 T..

    [5주차] TCP/IP(흐름제어, 혼잡제어, 3way handshake, 4way handshake) , TCP vs UDP

    TCP/IP 인터넷 프로토콜 슈트(Internet Protocol Suite)의 핵심 프로토콜로서, 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다. (프로토콜: 데이터 통신을 원할하게 하기 위한 통신 규약) IP는 OSI 7계층에서 3계층(Network Layer)에 해당하며, 한 Endpoint가 다른 Endpoint로 가고자 하는 경우 경로와 목적지를 찾아주는 역할을 한다. (이를 Routing이라 한다.) IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다. TCP는 OSI 7계층에서 4계층(Transport Layer)에 해당하며, 송신자와 수신자의 논리적 연결을 담당하며 신뢰성있는 연결을 유지할 수 있도록 도와준다. 즉..

    [4주차] OSI 7계층, 서브넷 마스크, DNS

    OSI(Open Systems Interconnection) 7계층 네트워크 프로토콜 스택에서 통신을 수행하는 각 계층을 정의하는 모델이다. 이 모델은 통신을 가능하게 하는 공통 프로토콜을 정의하고, 이러한 프로토콜이 서로 상호작용하여 데이터를 전송할 수 있도록 한다. 계층을 나눈 이유는 통신이 일어나는 과정을 7단계로 크게 구분하여 단계별로 파악할 수 있기 때문이다. 1. 물리 계층 (Physical Layer) 이 계층은 데이터를 전송하는 데 사용되는 물리적 매체, 예를 들어 케이블이나 무선 링크 등과 같은 것을 다룹니다. 이 계층은 전기 신호, 광 신호 등과 같은 이진 데이터 스트림을 전송합니다. 2. 데이터 링크 계층 (Data Link Layer) 이 계층은 네트워크 상에서 신호를 전송하는 데 ..

    [2주차] Context Switching / CPU 스케줄링 / Deadlock

    [2주차] Context Switching / CPU 스케줄링 / Deadlock

    Context CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들 Context는 프로세스의 PCB(Process Control Block)에 저장되고, Context Switching 시에 PCB의 정보를 읽어서 CPU가 전에 프로세서가 하던 일을 이어서 수행이 가능하다. 프로그래밍에서 컨텍스트(Context)는 실행되는 프로그램의 상황이나 정보를 나타냅니다. 예를 들어, 함수가 호출될 때 해당 함수가 실행되기 위해 필요한 정보들을 저장하는 공간이 컨텍스트입니다. 함수 호출 시에는 보통 호출하는 함수와 호출된 함수 사이에 스택(Stack)이 사용됩니다. 호출하는 함수의 상태 정보를 스택에 저장하고, 호출된 함수의 상태 정보를 스택에서 불러와 실행합니다. 이때, 상태 정보에는 호출된 함수가 실..

    [1주차] 프로세스와 스레드, 페이징과 세그멘테이션

    [1주차] 프로세스와 스레드, 페이징과 세그멘테이션

    프로세스 실행 중인 프로그램 메모리에 적재되어 CPU의 할당을 받을 수 있는 것 운영체제로부터 주소 공간, 파일, 메모리 등의 시스템 자원을 할당받는 작업의 단위 함수의 매개변수, 복귀주소, 로컬변수와 같은 임시 자료를 갖는 프로세스 스택과 전역변수들을 수록하는 데이터 섹션, 그리고 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 프로세스는 최소 하나의 스레드(메인 스레드)를 보유하고 있음 프로세스 간에는 메모리 등의 자원을 공유하지 않음 (독립적으로 자기만의 영역을 가지고 있음) 프로세스 제어 블록(PCB): 특정 프로세스에 대한 중요 정보를 저장하고 있는 운영체제의 자료구조 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB를 생성함. 프로세스 전환 발생 시 진행..