CS지식
-
TCP 커넥션이란 무엇인가CS지식/네트워크 2021. 5. 27. 23:07
HTTP는 웹에서 클라이언트와 서버가 통신을 하기 위해 사용되는 프로토콜이다. HTTP를 사용한 통신에서 실제로 데이터가 클라이언트에서 서버로 가고 서버에서 클라이언트로 가는 것은 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP/IP를 통해 이루어진다. 클라이언트는 서버로 TCP/IP 커넥션을 맺을 수 있고 TCP/IP의 특성에 의해 통신되는 메시지들은 손실이나 순서가 바뀌지 않고 안전하게 전달된다. TCP 커넥션은 어떻게 이루어질까? 웹 브라우저(클라이언트)에서 URL을 입력받으면 URL에서 IP주소와 포트번호를 추출한다. 목적지의 IP주소와 포트번호를 가지고 TCP커넥션을 생성하게 된다. 먼저 클라이언트는 TCP커넥션을 생성하기 위해 작은 TCP 패킷을 서버에게 보낸다. 이 패킷에는 SYN이라..
-
데이터베이스 관리 시스템(DBMS)란 무엇인가CS지식/데이터베이스 2021. 5. 26. 23:13
데이터베이스 관리 시스템(DBMS)는 사용자 또는 응용 프로그램과 데이터베이 사이에 위치하여 데이터베이스를 공유할 수 있도록 관리하는 소프트웨어이다. 사용자가 원하는 정보를 검색하는 기능을 제공하고 데이터베이스에 접근하기 위해서는 DBMS를 통해서만 가능하다. 데이터베이스 관리 시스템(DBMS)가 개발되기 전에는 어떻게 데이터를 관리했을까? DBMS가 나오기 전에는 디스크의 파일에 데이터를 저장하고 이러한 파일들을 파일 시스템이 관리했다. 하지만 파일 시스템은 데이터 종속성과 데이터 중복성 문제가 있어 대체자가 필요하게 되었고 그 대체자로 DBMS가 나오게 된 것이다. 그러면 데이터 종속성과 데이터 중복성은 무엇일까? 데이터 종속성은 데이터와 응용 프로그램 간의 상호 의존 관계를 뜻한다. 즉, 데이터에 ..
-
시스템 콜(System Call)이란 무엇인가CS지식/운영체제 2021. 5. 25. 23:03
시스템 콜은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공한다. 즉, 자신이 하지 못하는 일(운영체제는 가능한 일)을 운영체제에게 맡겨 수행할 수 있도록 하기위해 시스템 콜을 사용한다. 시스템 콜이 어떻게 사용되는지 예시를 통해 알아보자. 프로세스A는 디스크에 존재하는 파일1에서 데이터를 읽어서 파일2로 복사하는 일을 수행해야한다고 생각해보자. 파일1, 파일2가 무엇인지 사용자로부터 입력받기 위해서는 시스템 콜이 필요하다. 키보드의 입력을 통해 파일의 이름을 얻거나 마우스를 통해 직접 파일을 선택해서 입력받을 수 있다. 이러한 I/O작업을 위해서는 시스템 콜이 필요하다. 파일1, 파일2이 무엇인지 입력을 받으면 파일1을 디스크에서 가져오고 복사하여 파일2에 저장하는 작업도 시스템 콜이..
-
HTTP 메세지란 무엇인가CS지식/네트워크 2021. 5. 24. 23:11
HTTP메세지는 HTTP를 통해 통신하는 클라이언트와 서버 사이에서 주고받는 데이터의 블록들이다. HTTP메세지는 클라이언트가 서버에게 보내는 요청 메세지와 서버가 클라이언트로 보내는 응답 메세지가 있다. 메세지는 시작줄, 헤더 블록, 본문 세 부분으로 이루어진다. 시작줄은 해당 메세지가 어떤 메세지인지 간략하게 서술하고 헤더 블록은 메세지의 속성을 말해주고 본문은 보내고자하는 데이터를 가지고 있고 생략이 가능하다. 요청 메시지의 형식은 응답 메시지의 형식은 으로 이루어져 있다. 각 부분에 대해 자세히 알아보자. - 메서드 메서드는 클라이언트 측에서 서버가 어떠한 동작을 해주기를 원하는지 알려주는 것이다. 대표적으로 사용되는 메서드는 아래의 표와 같다. - 요청 URL 요청 대상이 되는 리소스를 지정한 ..
-
데이터베이스란 무엇인가(With 기초가 튼튼한 데이터베이스)CS지식/데이터베이스 2021. 5. 23. 22:56
지난(5월 15일) KOCW에서 백현미 교수님의 강의를 완강하고 오늘부터는 조금 더 개념을 확실히 잡고 심화된 학습을 진행하기 위해 도서관에서 여러 책을 비교한 후 한 책을 선택했다. 책의 이름은 기초가 튼튼한 데이터베이스이다. 이 책을 고르기 전에 '개발자와 DBA를 위한 Real MySQL'라는 책으로 공부하려 했으나 내용이 너무 어려워서 조금 더 이해하기 쉬운 책을 찾게 되었다. 나의 목표는 하루에 한 장(종이 한 장이 아니라 목차에서 의미하는 장, 약 30~40페이지 정도)를 목표로 하고 이전 방식처럼 네트워크, 운영체제, 데이터베이스를 하루에 한 과목씩 로테이션으로 공부할 것이다. 데이터베이스를 공부하기 위해서는 데이터베이스가 정확히 무엇인지를 집고 넘어가야겠다는 생각을 했다. 데이터베이스를 간..
-
인터럽트(Interrupts)란 무엇인가(공룡책 공부 시작!!)CS지식/운영체제 2021. 5. 22. 22:21
지난(5월 18일) 반효경 교수님의 운영체제 강의를 완강하고 오늘부터는 강의를 통해 배운 내용을 다시 정리하고 추가적으로 더 공부하기 위해 운영체제의 바이블이라고 불리는 공룡책을 빌려서 공부를 시작했다. 나의 목표는 하루에 한 장(종이 한 장이 아니라 목차에서 의미하는 장, 약 50페이지 정도)를 목표로 하고 이전 방식처럼 네트워크, 운영체제, 데이터베이스를 하루에 한 과목씩 로테이션으로 공부할 것이다. 인터럽트라는 것은 무엇이고 무슨 역할을 할까? 우리는 실행 중인 프로그램을 프로세스라고 배웠다. 프로세스 중에는 디스크에서 정보를 읽거나 쓰는 일을 수행하기도 하고 키보드를 통해 입력을 원하기도 하고 모니터에 화면을 띄우는 일도 원하기도 한다. 이러한 경우에 프로세스가 I/O장치(키보드, 마우스 ,모니터..
-
URL은 무엇인가 (HTTP완벽 가이드 공부 시작!!)CS지식/네트워크 2021. 5. 21. 20:30
지난(5월 17일) '그림으로 배우는 HTTP & Network basic'을 다 읽고 오늘부터는 조금 더 심화된 학습을 진행하기 위해 박재성님이 다음으로 추천해주신 HTTP 완벽 가이드로 공부하기 시작했다. 박재성님은 스터디를 동해 읽는 것을 추천했지만 나는 나만의 커릴큘럼과 일정으로 진행하고자 힘들겠지만 혼자 공부하기를 시작했다. (참고한 유튜브: www.youtube.com/watch?v=ugP3iNPtf0w) 나의 목표는 하루에 한 장(종이 한 장이 아니라 목차에서 의미하는 장, 약 20~50페이지 정도)를 목표로 하고 이전 방식처럼 네트워크, 운영체제, 데이터베이스를 하루에 한 과목씩 로테이션으로 공부할 것이다. 우리는 웹 브라우저를 사용하면 주소창에 주소를 입력하여 웹 페이지에 접속한다. 여기..
-
15일차 - Disk Management and SchedulingCS지식/운영체제 2021. 5. 18. 22:55
지난 시간에는 디스크에 file이 어떻게 저장되는지에 대해 배웠다. 오늘은 디스크를 효율적으로 관리하는 법에 대해서 알아볼 수 있었고 디스크에 들어온 요청을 효율적으로 수행하기 위한 여러 알고리즘에 대해 배울 수 있었다. 1. 디스크 구조 우리는 이전 시간에 file을 디스크에 저장할 때 sector단위로 저장한다고 배웠다. sector는 디스크를 관리하는 최소단위로 디스크 내부에서 관리하는 단위를 의미한다. 디스크 외부에서는 sector를 어떻게 볼까? sector는 logical block단위로 외부에서 관리된다. logical block는 디스크 외부에서 보는 디스크의 정보 저장 공간들을 뜻한다. 주소를 가진 1차원 배열처럼 취급하여 외부에서 logical block으로 요청을 하면 그 요청에 대해..