CS지식
-
3일차 - HTTP 메시지CS지식/네트워크 2021. 4. 22. 23:10
오늘은 HTTP 통신에서 정보를 주고 받을 때 사용하는 HTTP 메시지에 대해 간략하게 배우고 통신을 할 때 유용하게 사용하는 기능들에 대해 배웠다. 책을 읽으면서 이 기능이 왜 존재하는지에 대한 예시를 잘 들어줘서 이해하기 편했다. 1. HTTP 메시지 HTTP는 클라이언트에서 리퀘스트를 전송하고 그에 응답하는 리스폰스를 서버 측에서 보낸다고 배웠다. 이렇게 리퀘스트와 리스폰스를 주고 받을 때 교환하는 정보를 담는 것을 HTTP 메시지라고 한다. HTTP 메시지는 여러 행의 데이터로 구성된 텍스트 문자열이고 메시지 헤더와 메시지 바디로 구성된다. 여기서, 메시지 헤더 부분과 메시지 바디 부분의 구분하는 경계선을 나타내는 것은 [CR+LF]이다. (CR: 16진수 0x0d, LF: 16진수 0x0a) 모..
-
6일차 - CPU SchedulingCS지식/운영체제 2021. 4. 21. 22:58
오늘은 CPU 스케쥴링에 대해서 배웠다. 앞에서 배운 내용은 CPU와 프로세스에 대한 간단한 개념을 배웠는데 프로세스가 CPU를 할당받는다고 했다. 할당받을 때 규칙이 존재하고 오늘은 그 규칙에 대해 배울 수 있었다. 1. CPU 스케쥴링의 필요성 운영체제는 왜 CPU 스케쥴링이 필요할까? 우선, 필요한 이유를 설명하기 전에 필요한 개념부터 말하려고 한다. 프로그램이 실행(execution) 된다는 것은 CPU burst와 I/O burst의 연속을 의미한다. CPU burst는 CPU를 사용하여 무언가는 하는 시간이고 I/O burst는 I/O의 결과를 기다리는 시간이다. 이러한 점에서 우리는 프로세스를 2가지로 특성 분류할 수 있다. 1) I/O bound process CPU를 잡고 계산하는 시간보..
-
5일차 - 개념적 데이터 모델링: 실습CS지식/데이터베이스 2021. 4. 20. 22:10
오늘은 저번 시간에 이론적으로 배운 개념적 데이터 모델링에 대해서 실습해보는 시간을 가졌다. 프로그래밍 언어를 통해 실습을 하는 시간은 아니지만 요구사항 명세서를 바탕으로 개념적 모델링을 해보면서 데이터베이스 설계의 초반 단계를 실습할 수 있어 필요한 시간이라고 생각한다. 1. 개념적 설계 저번 시간에 데이터베이스 설계에는 총 5단계로 이루어져 있고 그 중 2단계를 개념적 설계라고 하였다. 개졈적 설계는 1단계인 요구사항 분석의 결과물을 바탕으로 개념적 데이터 모델을 이용해 개념적 구조로 표현하는 것으로 일반적으로 E-R모델을 많이 사용한다. E-R모델을 구성하는 요소인 개체, 관계, 속성 3가지가 key point이다. 개념적 설계는 3단계로 나누어 얘기할 수 있다. 첫번째 단계는 개체 추출과 각 개체..
-
2일차 - 간단한 프로토콜 HTTPCS지식/네트워크 2021. 4. 19. 21:49
오늘은 HTTP의 구조에 대해 배웠다. HTTP를 통한 통신의 특징을 배울 수 있었고 HTTP를 보완하기 위한 쿠키에 대해 알게 되었다. 1. HTTP 통신 HTTP의 통신의 기본적인 구조는 클라이언트와 서버간의 통신이다. 클라이언트는 리소스를 요구하는 쪽이고 서버는 요구한 리소스를 제공하는 쪽이다. 이렇게 클라이언트라 리소스를 요구할 때는 리퀘스트(Resquest)를 송신하고 서버는 리소스를 제공할 때 리스폰스(Response)로 보낸다. 여기서 알아두어야 할 것은 반드시 리퀘스트를 보내는 클라이언트로부터 통신이 시작되고 서버는 리퀘스트 없이 리스폰스를 보낼 일은 없다. HTTP는 상태를 계속 유지하지 않는 stateless 프로토콜이다. 이렇게 보면 잘 이해가 되지 않을 것이다. 쉽게 말해서 클라이언..
-
5일차 - 프로세스 관리(Process Management)CS지식/운영체제 2021. 4. 18. 22:18
오늘은 프로세스가 어떻게 생성되고 종료되는지 구체적으로 배웠다. 이전에 사용자 프로세스가 I/O에게 요청을 직접하지 못하고 운영체제에게 시스템콜을 해서 한다고 배웠다. 오늘도 많은 내용을 배웠지만 사용자 프로세스가 직접 무엇을 하는 권한은 없고 왠만한 기능을 수행하 때에는 운영체제에 시스템 콜을 한 후 진행된다고 느꼈다. 1. 프로세스 생성 프로세스의 생성은 기본적으로 부모 프로세스가 자식 프로세스를 생성하게 된다. 여기서 부모 프로세스는 하나 뿐이고 자식 프로세스는 여러 개가 될 수 있고 이러한 이유로 프로세스의 트리(계층 구조)를 형성하게 된다. 생성된 프로세스는 CPU나 메모리와 같은 자원이 필요한데 자원은 운영체제로부터 받게 된다. 프로세스의 모델은 자원의 공유 시점과 수행(execution) 시..
-
4일차 - 데이터 모델링CS지식/데이터베이스 2021. 4. 17. 13:43
오늘은 데이터 모델링에 대해 배웠다. 데이터베이스를 관리하기 전에 이론 상, 그림으로 모델링을 하는 법과 그것을 이해하기 위한 개념을 배울 수 있었다. 1. 데이터베이스 설계 데이터 모델링을 배우기 전에 데이터베이스 설계에 대해 배웠다. 데이터 모델링은 데이터베이스를 설계하는 데 있어 핵심과정이므로 데이터베이스의 전반적인 설계에 대해 알아보는게 좋다. 데이터베이스 설계는 말그대로 사용자의 다양한 요구사항을 고려하여 데이터베이스를 생성하는 과정을 말한다. 설계과정에서는 E-R모델과 릴레이션 변환 규칙을 이용한다. 여기서 E-R모델과 릴레이션 변화 규칙은 추후에 배우므로 그 때 설명하겠다. 데이터베이스 설계과정은 총 5단계로 이루어져있다. 1단계: 요구사항분석 -> 2단계: 개념적 설계 -> 3단계: 논리적..
-
1일차 - 웹과 네트워크의 기본CS지식/네트워크 2021. 4. 16. 21:27
오늘부터 네트워크 공부도 시작을 했다. 데이터베이스와 운영체제는 KOCW강의를 토대로 공부를 하고 있지만 네트워크는 다른 방식으로 공부를 시작했다. 왜냐하면, 대학교에서 데이터 통신과목과 컴퓨터 네트워크 과목을 수강해서 어느정보 기본지식은 가지고 있는 상태이기 때문이다. 그래서 네트워크 공부를 위해 어떻게 공부를 할까 생각을 하다가 유튜브에서 책을 추천받았다. (참고한 유튜브1: www.youtube.com/watch?v=ugP3iNPtf0w) 먼저, 그림으로 배우는 HTTP & Network basic이라는 책으로 공부를 시작하려고 한다. 책은 총 11장으로 구성되어 하루에 1장을 공부하는 것으로 목표로 하여 시작했다. 1. 웹을 나타내는 법 우리는 웹 브라우저에서 원하는 웹 페이지의 주소를 입력하면 ..
-
4일차 - 스레드(Thread)CS지식/운영체제 2021. 4. 15. 21:41
오늘은 저번시간에 이어 쓰레드에 대해 배웠다. 기술면접에서 스레드와 프로세스의 차이점에 대해 물어본다는 얘기를 들은 적이 있다. 그것도 대비하고 정확히 차이점을 알기 위해 집중해서 들었다. 1. 쓰레드란? 쓰레드의 정의를 먼저 얘기해보면 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 이렇게 정의만 봤을 때는 정확히 무엇을 의미하는지 잘 모르겠다. 간단히 얘기하면, 프로세스 하나에 CPU 수행단위를 여러 개 둘 수 있는데 그 하나의 단위를 쓰레드라고 한다. CPU수행단위를 여러 개 둔다는 것은 또 뭘까? 예를 들어서 설명해보자. 만약, 우리가 Chrome이라는 웹 브라우저 프로그램을 실행하여 네이버에 접속했다고 하자. 이것은 프로세스가 된다. 그리고 다른 웹에 접속하기 위해..