Group Study (2022-2023)/Computer Science 11

[Computer Science] 10주차 스터디 - DFS와 BFS, Greedy 알고리즘, 최소 신장 트리

BFS, DFS BFS와 DFS는 그래프를 탐색하는 알고리즘 기법이다. 깊이 우선 탐색(Depth-First Search) DFS는 하나의 방향을 결정하면 그 방향을 따라 끝까지 도달한다. 한 노드를 시작으로 인접한 다른 노드를 재귀적으로 탐색해가고 끝까지 탐색하면 다시 위로 와서 다음을 탐색한다. 즉, 그래프에서 깊은 부분을 우선적으로 탐색한다. 사용하는 경우: 모든 노드를 방문하고자 하는 경우에 이 방법을 선택 스택(stack)을 사용해서 구현하며, 자기 자신을 호출하는 순환 알고리즘의 형태를 갖고 있다. 어떤 노드를 방문했는지 여부를 반드시 검사해야 한다. 검사하지 않을 경우 무한루프에 빠진다. 탐색 순서 0번을 시작으로 왼쪽에 위치한 1번 노드를 우선적으로 탐색 3번 노드가 끝이기에 이전 단계로 ..

[Computer Science] 9주차 스터디 - 정렬, Big O 시간복잡도

⭐ 9주차 주제: 정렬, BigO [알고리즘] 알고리즘이란? : 컴퓨터 프로그램이 어떤 문제를 해결하기 위해 필요한 명령어들의 집합 좋은 알고리즘을 찾고 언제 써야 할지 알아야 중요한 프로그램을 만들 수 있습니다. Ex) 구글 행아웃은 어떻게 실시간 영상을 전송하지? 오디오, 비디오 압축 알고리즘을 사용 구글 맵스가 어떻게 숙명여대까지의 경로를 찾지? 경로 찾기 알고리즘을 사용 픽사는 어떻게 가상 공간에 캐릭터의 3D 모델 조명을 반영해 색칠하지? 렌더링 알고리즘을 사용 나사는 태양광 패널을 어디로 언제 움직일지 알까? 최적화 & 스케줄 알고리즘을 사용 정렬 리스트의 항목을 오름차순 또는 내림차순으로 정렬해 놓으면 사람이나 컴퓨터가 리스트에서 어떤 항목을 찾을 때 이진검빠르고 편리하게 찾을 수 있습니다...

[Computer Science] 7주차 스터디 - GET과 POST, CORS, REST와 RESTFUL

GET, POST HTTP Method HTTP Method는 클라이언트와 서버 사이에 요청과 응답을 전송하는 방식을 말한다. 주요 메소드 GET 리소스 조회 POST 요청 데이터 등록 PUT 해당 리소스 대체, 해당 리소스가 없다면 생성 (리소스 전체 변경) PATCH 리소스 부분 변경 DELETE 리소스 삭제 GET 방식 주로 데이터를 읽거나 검색할 때 사용되는 메소드이다. 데이터 조회에 대한 정보는 body에 넣지 않고 쿼리 스트링을 통해 보낸다. (*쿼리 스트링 : URL 끝에 ?뒤에 key1=value1&key2=value2 구조로 쌍을 이루는 요청 파라미터) GET /members/100?username=inpa&height=200 GET방식은 이렇게 url에 담겨가기 때문에 전송할 수 있는 ..

[Computer Science] 8주차 스터디 - Cookie와 Session, 주소 체계(MAC주소, IP주소)

Cookie와 Session 6주차에서 공부했던 HTTP와 HTTPS 내용에서 HTTP는 두 가지의 큰 특징을 가졌다. 비연결 지향 (Connectionless) 클라이언트가 request를 보내고 그에 대한 response를 서버가 보내면 바로 연결 종료 상태 정보 유지X (Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나고 상태 정보를 유지하지 않음 이러한 특징때문에 HTTP프로토콜을 사용한 연결은 다음과 같은 단점을 가졌다. 모든 요청 간 의존 관계가 없음 연결을 유지하지 않기 때문에 현재 접속한 사용자와 이전에 접속한 사용자가 같은 사용자인지 아닌지 구별할 방법 없음 계속해서 연결을 유지하지 않기 때문에 통신할 때마다 클라이언트는 매 요청마다 인증을 해야 함 따라서 이러한 문제..

[Computer Science] 6주차 스터디 - HTTP와 HTTPS, URI와 URL과 URN, 포트와 소켓

HTTP와 HTTPS HTTP HypterText Transfer Protocal 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 80번포트를 사용함. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며 클라이언트는 80번 포트로 요청을 보내게 됨. 팀 버너스 리에 의해 처음 설계 WWW 기반에서 세계적인 정보를 공유하는데 큰 역할을 함. 텍스트 교환이므로 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안이슈 존재 구조 애플리케이션 레벨의 프로토콜. TCP/IP위에서 작동. 상태를 가지고 있지 않은 Stateless프로토콜 stateless프로토콜? 서버 사이드에 클라이언트와 서버의 동작과 상태정보를 저장하지 않는 형태. 서버 응답이 클라이언트와의 세션 상태에 독..

[Computer Science] 5주차 스터디 - TCP/IP(흐름제어, 혼잡제어, 3way handshake, 4way handshake) , TCP VS UDP

TCP/IP (흐름/혼잡 제어, 3-way/4-way handshake) TCP/IP TCP와 IP의 개념에 대해서 먼저 알아보자! TCP/IP는 OSI 7계층 에서 3계층과 4계층을 다루는 프로토콜(통신 규약)이다. TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다. IP OSI 7계층에서 3계층(Network Layer) 한 EndPoint가 다른 EndPoint로 가고자 하는 경우 경로와 목적지를 찾아줌 = Routing 패킷 전달 여부 보증 X 패킷을 보낸 순서와 받는 순서가 다를 수 있음 TCP OSI 7계층에서 4계층(Transport Layer) 송신자와 수신자의 논리적 연결(Connection)을 담당, 신뢰성 있는 연결 유지하도록 도움 ..

[Computer Science] 4주차 스터디 - OSI 7계층, 서브넷 마스크, DNS

OSI 7계층 OSI (Open Systems Interconnection) 은 개방형 시스템간 상호 접속. 즉, 서로 다른 컴퓨터나 네트워크간의 상호 접속을 용이하게 하기 위해 ISO (국제표준화기구) 가 규정한 네트워크 프로토콜을 말한다. 기종이나 언어가 다른 컴퓨터들을 서로 연결해 통신하려면 연결 방식을 표준화해야 한다. 따라서 다음과 같은 OSI 7계층 모델을 제안하였다. 7단계로 나눈 이유는 통신이 일어나는 과정을 나누어서 나중에 이상이 생기면 어떤 단계에서 문제가 생겼는지를 파악하기 위함이다. ■ 물리 계층: 네트워크 선 깔기 ■ 데이터 링크 계층: 물리적 전송 오류를 감지(Sense)하는 기능을 제공해 송수신 호스트가 오류를 인지할 수 있게 해준다. ■ 네트워크 계층: IP 주소체계, 데이터..

[Computer Science] 3주차 스터디 - 동시성과 병렬성, 동기 비동기

동시성과 병렬성 동시성 동시성은 여러 작업이 겹치는 기간에 실행될 수 있음을 의미한다. 동시에 실행하는 것이 아니라 CPU가 작업마다 시간을 분할하여 적절하게 context switching을 통해 동시에 실행되는 것처럼 보이게 하는 것이다. 동시성의 핵심 목표는 유휴 시간을 최소화하는 것이다. (유휴 시간: 컴퓨터가 작동가능하나 작업이 없는 시간) 구현과 디버그가 어렵다는 단점이 있다. 현재 프로세스/스레드가 I/O 작업, DB 트랜잭션 등 외부 프로그램 실행을 기다리는 동안에 다른 프로세스/스레드가 CPU 할당을 받는다. 병렬성 병렬성은 동일한 시간에 독립적인 작업을 실행할 수 있음을 의미한다. 동시성과는 달리 여러 작업을 다른 코어, 다른 프로세스, 별도의 컴퓨터 등에서 동시에 실행할 수 있다. 그..

[Computer Science] 2주차 스터디 - Context Switching + CPU 스케줄링 + Deadlock

Context Switching ✅ 문맥? CPU가 하나의 프로세스를 실행하기 위해 기억해야 할 프로세스 정보 문맥은 PCB에 저장된다. ✅ PCB(Process Control Block)? : 프로세스와 관련된 정보를 저장하는 자료 구조 해당 프로세스를 식별하기 위해 꼭 필요한 정보를 저장 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기 →PCB에 담기는 정보 프로세스 ID(PID) 특정 프로세스를 식별하기 위해 부여하는 고유 번호 레지스터 값 프로세스는 이전 작업을 이어가기 위해 레지스터의 중간값을 복원한다. 따라서 카운터(다음 실행할 명령어의 주소)와 레지스터 값이 저장된다 프로세스 상태 생성, 준비, 수행, 대기, 중지 CPU 스케줄링 정보 프로세스가 언제, 어떤 순서로 CPU를 할당받을지에 대..