비전공자
-
7일차 - Process Syncronization(1)CS지식/운영체제 2021. 4. 25. 22:24
오늘은 프로세스 동기화에 대해서 배웠다. 프로세스는 여러 개 존재하고 여러 개의 프로세스가 하나의 데이터 공간에서 공유할 경우 발생할 수 있는 문제에 대해 알아보고 해결법에 대해 알 수 있었다. 1. 데이터 접근 process syncroization에 대해 배우기 전에 데이터의 접근 방법에 대해 알아보자. 데이터를 접근할 때는 다음과 같은 패턴을 가진다. 데이터 저장소에서 필요한 데이터를 가져오고 연산장치에서 연산을 한 후 연산결과를 다시 데이터 저장소에 보내게 된다. 데이터 저장소에는 memory, 디스크, 각 프로세스의 주소공간이 대표적인 예이고 연산장치에는 CPU, 컴퓨터 내부, 프로세스가 대표적인 예이다. 이렇게 데이터 저장소를 하나의 연산장치가 사용할 경우에는 별다른 문제가 없을 것이다. 하지..
-
6일차 - 관계 데이터 모델링CS지식/데이터베이스 2021. 4. 23. 23:39
오늘은 관계 데이터 모델링에 대해 배웠다. 지난 시간에 배운 개념 데이터 모델링의 결과물인 E-R다이어그램을 토대로 진행되는 것으로 데이터베이스 설계에서는 3단계(논리적 설계)에 해당하는 내용이다. 1. 관계 데이터 모델의 기본개념 관계 데이터 모델은 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델로 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장하는 것이다. 예를 들어 개념 데이터 모델링을 통해 학생이라는 개체가 나왔다면 이 학생이라는 하나의 개체에 대한 데이터를 모아서 릴레이션에 저장한다는 것이다. 릴레이션은 하나의 개체에 대한 데이터를 2차원 테이블 구조로 저장한 것이다. 2차원 테이블이라고 하면 표와 비슷한 구조인데 표는 행과 열로 구성되어 있다. 릴레이션에서는 행을 튜플이라 부르고 ..
-
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단계: 논리적..