CS 56

DNS 서버

1. 도메인 네임 1. 개념 - IP주소를 보기 쉽게 변환한 서버 주소 ex) www.google.com - 실제로는 IP로 변환되어 접속된다. 2. DNS 서버 1. 개념 - 도메인 이름을 IP로 변환해주는 서버 - 분산 데이터베이스 시스템 2. 호스트 에일리어싱 (host aliasing) - 복잡한 정식 호스트 이름(canonical hostname) => 여러 개의 별칭 호스트 이름을 가질 수 있다. ex) www.naver.com => naver.com 3. 부하 분산 (load distribution) - 하나의 호스트 이름 => 여러 개의 IP주소로 맵핑 - 시간마다 다른 IP를 return해서 사용자들이 골고루 분배하여 사용하도록 함 4. 분산하는 이유 1) 서버 하나가 고장 나도 전체 시..

CS/네트워크 2021.09.22

Network Layer

1. Network Layer 1. 특징 - 모든 host와 router에서 사용된다. 즉, 모두가 IP주소를 확인한다. 2. 주요 기능 2가지 1) Routing 알고리즘 : 목적지까지 가기 위한 경로 설정 2) Forwarding table : router의 input에 맞는 outlink를 알려준다. 2. IP주소 부족 해결 방안 1. DHCP (Dynamic Host Configuration Protocol) - host가 한 네트워크에 접속할 때마다 동적으로 IP주소 할당하고 다 쓰면 반납 - 이동성이 높은 모바일에도 효율적으로 사용 가능 2. NAT (Network Address Translation) - 내부 네트워크에서는 사설 IP 사용 - 외부 네트워크 나갈 때 공인 IP주소로 변환 - ..

CS/네트워크 2021.09.22

TCP/IP 프로토콜

1. TCP/IP 계층 구조 +) 계층별 캡슐 이름 - TCP = segment - IP = datagram - link = frame 2. 계층별 설명 1. Application 계층 - 응용프로그램의 프로토콜을 구성 - socket을 이용하면 아래 계층을 신경쓰지 않고 구현 가능하다. 2. Transport 계층 - TCP/UDP - port번호 식별 - TCP connection 1) connection setup = 3-way handshaking (연결요청 => 승인 => 승인을 잘 받았다 대답) 2) connection close = 4-way handshaking (종료 요청 => 확인, 남은 거 처리 => 나도 종료 => 알겠다) - Congestion control : 많은 데이터를 네트..

CS/네트워크 2021.09.22

IP주소와 Port 번호

1. IP주소 1. 개념 - 컴퓨터를 구분하기 위해 사용되는 주소 - 네트워크 주소(subnet part) + 호스트 주소(host part) 2. 종류 1) IPv4 : 4bytes(32bits) - 주소는 8bits씩 묶어 .으로 구분하여 표시 ex) 223.1.1.1 = 11011111 00000001 00000001 00000001 2) IPv6 : 16 bytes => tunneling : IPv4영역에 IPv6를 감싸서 속여서 보내기 3. 주소 체계 1) Classful Addressing - IP주소를 규격화된 크기(class)별로 구분하는 주소체계 - 첫 번째 바이트의 비트 정보로 어떤 class를 쓰고 있는지 알 수 있다. 2) CIDR (Classless InterDomain Routi..

CS/네트워크 2021.09.22

OSI 7계층과 Socket Programming

1. OSI(Open System Interconnection) - 호스트 간의 통신을 위해 기능들을 계층 별로 구분하여 정의한 것 1. Physical Layer (물리 계층) - 물리적 연결 형태(유선 or 무선) 2. Data Link Layer (데이터 링크 계층) - MAC 주소(host의 물리적 주소) 사용 - 물리적 전송 오류 문제 해결 ex) 0101 => 1101 으로 변경된 경우 3. Network Layer (네트워크 계층) - 데이터 전송 경로 결정 - IP주소(인터넷 접속시 할당되는 논리적 주소) 사용 - Router가 IP주소를 보고 목적지까지 안내 4. Transport Layer (전송 계층) - Port 번호(process 구분) 사용 5. Session Layer (세션 ..

CS/네트워크 2021.09.22

[Python] REST API 사용법

1. GET 1) 홈페이지 화면 불러오기 우리는 종종 url을 통해, 화면에 접속한다. 이때 url은 해당 페이지의 html 문서와 그와 관련된 데이터들의 정보를 가진 id라고 볼 수 있다. 아래의 코드를 보면, url을 통해 html 파일을 받아오는 것을 확인할 수 있다. import requests #browser의 역할 : url => html문서, 필요한 데이터 등을 받아옴 => 화면에 띄우기 response = requests.get('https://google.com') print(reponse.text) 2) API로 데이터 받아오기 앞서 설명에서 봤듯이, source들은 자신만의 고유의 id인 uri가 있다. client는 원하는 데이터의 uri를 통해 데이터를 json형식으로 받아올 수 ..

CS/기타 2021.09.19

MySQL 문법

1. MySQL Data Types 1) int, smallint 2) float, double 3) char, varchar 4) date, datetime 2. database 관련 commands 1. database 생성 - create database DB이름; 2. database 삭제 - drop database DB이름; - drop database if exists DB이름; -- 해당 DB가 존재하면 삭제 3. database 사용하기 - use DB이름; 4. database들 보기 - show databases; - database들의 이름을 리스트로 보여준다. 3. table 관련 commands 1. 테이블 상세 정보 보기 - desc Table이름; 2. 특정 database에..

CH4) Threads

1. Thread 1. Thread의 개념 - 실행의 가장 작은 단위 - stack과 register는 분리해서 가짐 : thread마다 독립적으로 실행 흐름을 갖기 위해서 - 메모리는 공유하고 있어서 process간 통신이 많은 경우 유리한 구조 2. Thread를 사용하는 이유 1) 병렬성을 높일 때 효율적 - process 생성은 memory to memory copy라서 thread 생성이 더 빠르고, 가벼워서 많이 생성 가능 - 처리 가능한 동시 접속자 수 증가 2) 자원을 효율적으로 사용 : thread는 process의 메모리 안에서 해결 3) IPC를 사용하지 않고 data 공유 가능 2. Multicore Programming 1. 개념 - core 1개에 thread 1개 mapping..

CS/운영체제 2021.09.12

CH3) Process

1. Process란? 1. process의 개념 : 프로그램이 메모리에 올라가서 수행 중인 상태, 프로그램의 instance 2. process가 필요한 이유 진행되는 상태를 표현해야 한다. 다른 프로세스들과 번갈아가면서 진행시키기 때문에 상태를 저장해놔야지 다시 수행할 수 있다. Process가 저장하는 대표적인 정보는 다음과 같다. 1) Current instruction(PC) = 다음에 수행해야 하는 instruction의 위치 2) Register 값 3) (가상)메모리 값 4) Parent info = 자신을 생성한 parent를 가리키는 포인터 2. Process의 가상 메모리 1. 가상 메모리의 개념 - 사용할 수 있는 공간이 4GB가 있다고 하면, 그중 극히 일부만 사용한다. - 프로그..

CS/운영체제 2021.09.05