CS지식
-
관계 대수란 무엇인가?CS지식/데이터베이스 2021. 6. 4. 23:20
관계 대수는 릴레이션을 처리하는 연산의 집합으로 일반 집합 연산자와 순수 관계 연산자가 있다. 우리가 수학시간에 집합A와 집합B의 교집합, 합집합, 차집합 등을 배웠듯이 데이터베이스에서도 릴레이션을 피연산자로 하여 연산을 하는 연산자가 있다는 것이다. 관계 대수 연산자의 종류를 아래의 정리된 표로 알아보자. 그러면 지금부터 하나씩 자세히 알아보도록 하자. 1) 합집합 연산자 합집합 연산자는 두 개의 릴레이션을 합하여 하나의 릴레이션을 반환하는 연산자이다. 두 개의 릴레이션을 합하여 나온 것 중 중복된 튜플이 있다면 한 번만 나타나게 된다. 예시를 보면 다음과 같다. 2) 교집합 연산자 교집합 연산자는 두 릴레이션에 모두 존재하는 튜플들을 반환하는 연산자이다. 예시를 보면 다음과 같다. 3) 차집합 연산자..
-
CPU 스케줄러란 무엇인가CS지식/운영체제 2021. 6. 3. 22:19
프로세스를 배우면서 프로세스는 생성, 준비, 실행, 대기와 같은 여러 상태를 가지며 작업이 이루어진다고 했다. (프로세스 개념: https://straw961030.tistory.com/71?category=925290 ) 프로세스(Process)란 무엇인가 프로세스가 무엇인지 찾아보면 흔히 실행 중인 프로그램이라고 말한다. 이렇게 개념을 기억하고 넘어가기에는 부족하고 프로세스가 정확히 무엇인지 알고싶었다. 프로세스라는 단어가 나오게 straw961030.tistory.com 메모리에는 여러 프로세스가 존재할 수 있고 여러 프로세스의 상태를 관리해주는 역할을 하는 것이 필요하다. 이러한 역할을 해주는 것이 CPU 스케줄러이다. CPU 스케줄러는 프로세스가 생성되고 종료될 때까지 모든 상태 변화를 관리하는..
-
프락시(Proxy)란 무엇인가?CS지식/네트워크 2021. 6. 2. 22:50
프락시는 클라이언트와 서버 사이에 위치하여 HTTP메시지를 정리하는 중개자 역할을 한다. 프락시가 없다면 클라이언트는 서버와 직접 통신하게 되는 것이고 프락시가 있다면 프락시가 클라이언트의 입장에서 서버와 통신해주는 역할을 한다. 이러한 프락시는 웹 서버처럼 보이기도 하고 웹 클라이언트처럼 보이기도 한다. 그 이유는 클라이언트의 요청을 받아 프락시는 서버에게 응답을 받아 돌려주므로 웹 서버처럼 동작하는 것과 같고 프락시가 클라이언트의 요청을 서버에게 보내기도 하므로 웹 클라이언트처럼 동작하는 것과 같기도 하기 때문이다. 프락시는 하나의 클라이언트만을 위한 개인 프락시와 여러 클라이언트가 사용가능한 공용 프락시가 있다. 그러면 클라이언트와 서버가 직접 통신하면 되지 왜 프락시를 사용하는 것일까? 그 이유는..
-
키(key)란 무엇인가?CS지식/데이터베이스 2021. 6. 1. 23:01
오늘은 릴레이션의 키(key)와 무결성 제약조건에 대해 정리해보려고 한다. 먼저, 릴에이션에 사용되는 키(key)가 무엇인지 알아보자. 보통 키라는 단어를 쓸 때를 생각해보면 자물쇠를 여는 키나 자동차 키를 생각할 수 있다. 이러한 실생활의 예를 떠올리면 A 자물쇠만 풀 수 있는 A키가 있고 B 자물쇠만 풀 수 있는 B키가 있다. 그리고 A키로 B자물쇠를 열 수 없을테고 B키로 A 자물쇠를 없는게 키의 특징이다. 이처럼 키(key)라는 것은 무언가를 식별하는 고유한 식별자(identifier)기능을 한다. 릴레이션에서 사용되는 키는 대표적으로 수퍼키, 후보키, 기본키, 대체키, 외래키가 있다. 그러면 각각의 키에 대해 자세히 알아보자. 수퍼키(super key)는 하나의 릴레이션을 구성하는 속성들 중에서..
-
스레드란 무엇인가(공룡책에서 귀여운 곰책으로 변경)CS지식/운영체제 2021. 5. 31. 23:13
오늘은 지난 시간까지 운영체제를 공룡책으로 공부하다가 효율성이 떨어져 책을 변경했다. 효율성이 떨어진다고 생각하는 이유는 내가 독학으로 책을 읽으며 '아 이렇구나'하면서 읽히는 수준이 아니다.. 그러면 3일동안은 어떻게 공부했나? 일단은 반효경교수님의 강의를 들은 상태여서 3장(프로세스)까지는 책을 읽으면서 새로운 지식을 얻을 수 있는 정도였다. 하지만, 그 뒤로는 너무 내용이 심오하고 번역본이라 이해하기 힘들게 쓰여진 것도 있고 너무 어렵게 느껴졌다. 그래서 책을 바꿔야겠다는 생각을 가지고 도서관을 갔다. 운영체제 책 종류가 많지는 않았지만 나에게 맞는 책을 발견해 빌려왔다. 책의 목차를 보면 알아야할 내용은 다 담고 있는 것같았고 설명도 전공책처럼 딱딱하게 쓰여지지 않고 예시를 들며 설명을 해줘서 이..
-
웹 서버(Web server)란 무엇인가CS지식/네트워크 2021. 5. 30. 23:17
웹 서버는 클라이언트의 HTTP 요청을 처리하고 응답을 제공하는 역할을 한다. 웹 서버가 하는 일은 어떤게 있을까? 먼저, 클라이언트가 요청을 보내고 응답을 받기 위해 커넥션을 맺기를 원한다. 클라이언트로부터 커넥션 요청이 오면 커넥션을 받아들이거나 원치않은 커넥션이라면 커넥션을 받아들이지 않는다. 클라이언트와 커넥션을 맺게되면 클라이언트의 HTTP 요청 메세지를 읽어 들인다. 요청 메세지를 읽어 들이면 무슨 요청인지 해석하고 어떠한 행동을 해야하는지 파악한 후 행동을 취한다. 만약에 어떠한 리소스를 접근하는 요청이라면 해당 리소스에 접근하여 요청을 처리하고 HTTP 응답 메세지를 생성한다. 그 후에 HTTP 응답메세지를 클라이언트에 보내고 로그파일에 트랜잭션 완료에 대한 기록을 남긴다. 그러면 조금 더..
-
데이터 모델이란 무엇인가CS지식/데이터베이스 2021. 5. 29. 23:24
데이터 모델은 데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구이다. 데이터 모델은 데이터구조, 연산, 제약조건으로 구성된다. 데이터구조는 데이터베이스에 저장되는 데이터가 무엇인지와 데이터 간의 관계를 표현한 것이다. 연산은 데이터 구조에 따라 데이터의 실제 값을 처리하는 작업과 같은 데이터 조작 기법을 의미한다. 제약조건은 데이터베이스에 정확하고 유효한 데이터가 유지될 수 있도록 하기 위해 데이터를 조작하는데 한계를 규정한 것이다. 데이터 모델에는 개념적 데이터 모델과 논리적 데이터 모델이 존재한다. 먼저, 개념적 데이터 모델에 대해 알아보자. 개념적 데이터 모델은 개체(entity), 속성(attribute), 관계(relationship)을 이용하여 데이터를 개념적 구조로..
-
프로세스(Process)란 무엇인가CS지식/운영체제 2021. 5. 28. 22:48
프로세스가 무엇인지 찾아보면 흔히 실행 중인 프로그램이라고 말한다. 이렇게 개념을 기억하고 넘어가기에는 부족하고 프로세스가 정확히 무엇인지 알고싶었다. 프로세스라는 단어가 나오게 된 배경은 모든 CPU 활동들을 어떻게 부를지에 대한 의문이 생겼고 그 해답으로 프로세스라는 말을 사용한 것이다. 우리가 사용하는 PC에서는 브라우저, 카카오톡, 워드 프로세서 등 여러 프로그램을 한 번에 실행할 수 있다. 이러한 상황 외에 다중 태스킹을 지원하지 않는 임베디드 장치에서도 내부 프로그램을 지원하며 동작한다. 여기서 CPU가 하는 모든 활동들을 프로세스라고 부르는 것이다 프로세스는 자신이 어떠한 활동을 하는지 현재 상태를 나타내기 위해 프로그램 카운터와 프로세서 레지스터를 사용한다. 프로그램 카운터는 다음에 실행될..