목록Computer Science (13)
mojo's Blog
운영체제와 컴퓨터 ※ 운영체제의 역할과 구조 운영체제의 역할은 크게 네 가지가 있다. CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리 메모리 관리 : 한정된 메모리를 어떤 프로세스에게 얼마큼 할당할지를 관리 디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 관리 I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리 운영체제의 구조는 다음과 같다. 유저 프로그램이 가장 위에 존재하며 그 다음으로 GUI, 시스템콜, 커널, 드라이버가 있으며 가장 밑에는 하드웨어가 있는 구조이다. GUI, 시스템콜, 커널, 드라이버 부분이 바로 운영체제를 지칭한다. 참고로 GUI 가 ..
데이터베이스의 기본 데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터 모음이다. 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS 라고 하며, 데이터베이스 안에 있는 데이터들을 특정 DBMS 마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 데이터베이스 위에 DBMS, DBMS 위에 응용 프로그램이 있으며 이러한 구조로 데이터를 주고 받는다. DBMS 는 예로 MySQL 이 있으며 응용 프로그램에 속하는 Node.js, php 에서 해당 데이터베이스 안에 있는 데이터를 가져와서 해당 데이터 관련 로직을 구축할 수 있다. ※ 엔티티 엔티티는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다. 예를 들어 회원은 이름, 아이디..
네트워크의 기초 네트워크란 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다. - 노드 : 서버, 라우터, 스위치 등 네트워크 장치 - 링크 : 유선 또는 무선 ※ 네트워크 토폴로지 네트워크 토폴로지는 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미한다. ① 트리 토폴로지 트리 토폴로지는 계층형 토폴로지이며 트리 형태로 배치한 네트워크 구성을 한다. 장점 : 노드의 추가, 삭제가 쉬움 단점 : 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼침 ② 버스 토폴로지 버스 토폴로지는 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성이며, 근거리 통신망(LAN) 에서 사용된다. 장점 : 설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선..
대칭키 & 공개키 ※ 대칭키(Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘이다. 동일한 키를 주고 받기 때문에 매우 빠르다는 장점이 있지만, 대칭키를 전달하는 과정에서 해킹 위험에 노출된다. ※ 공개키 (Public Key) 암호화와 복호화에 사용하는 암호키를 분리하는 알고리즘이다. 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화할 수 있는 암호키(공개키)를 대중에 공개한다. 공개키 암호화 방식 진행 과정은 다음과 같다. A가 웹 상에 공개된 "B의 공개키" 를 이용해 평문을 암호화하여 B에게 보낸다. B는 자신의 비밀키로 복호화한 평문을 확인하고 A의 공개키로 응답을 암호화하여 A에게 보낸다. A는 자신의 비밀키로 암호화된 응답문을 복호화한다. 대칭키의 단점..
UDP UDP 통신이란? UDP는 User Datagram Protocol 의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜이다. connectionless, unreliable 한 전송 프로토콜로 TCP 와 대비된다. Datagram 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층(transport layer)이다. 그리고 Transport layer 의 대표 프로토콜 중 하나라고 볼 수 있다. (TCP, UDP) TCP와 UDP가 나타난 이유는? 1. IP 의 역할은 Host-to-Host (장치-to-장치) 만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP 만으로 한계가 있다. 2. IP 에서 오류가 발생한다면 ICMP ..
[TCP] 3 way handshake & 4 way handshake 이란? 3 way handshake 는 연결을 성립하는 과정이고 4 way handshake 는 연결을 해제하는 과정을 의미한다. ※ 3 way handshake - 연결성립 TCP 는 정확한 전송을 보장해야 한다. 따라서 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 way handshake 과정을 진행한다. 클라이언트는 서버에게 SYN 패킷을 보낸다. (SYN(x) 는 sequence : x) 서버가 SYN(x)을 받고, 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보낸다. (sequence : y, ACK : x + 1) 클라이언트는 서버의 응답인 ACK(x + 1), SYN(y) 패킷을 받고, ACK(y + 1) ..