분류 전체보기

DNS와 DHCP란?
DNS와 DHCP는 모두 클라이언트 - 서버 아키텍처에서 작동하지만 서로 다른 용어이다. DNS는 도메인 이름을 IP 주소로 매핑하지만, DHCP는 정적 또는 동적으로 네트워크의 호스트에 IP를 할당하는 프로토콜이다. 또한 호스트에 DNS 서버를 설정할 때에도 사용된다. DNS의 정의 DNS(Domain Name System)는 인터넷상의 호스트 이름과 고유한 숫자 주소(논리적 주소)를 매핑하는 디렉토리 검색 서비스를 제공하는 메커니즘이다. DHCP의 정의 DHCP(Dynamic Host Configuration Protocol)는 네트워크에 연결된 호스트에 정적 및 동적 주소 할당을 부여하기 위해 구성되었다. 여기에는 컴퓨터의 IP 주소 및 서브넷 마스크, 라우터의 IP 주소 및 이름 서버의 IP 주소..
동기와 비동기, 블로킹과 논-블로킹이란?
I/O 작업은 user space에서 직접 수행할 수 없기 때문에 user process가 kernel에 I/O 작업을 요청하고 응답을 받는 구조이다. 응답을 어떤 순서로 받는지, 어떤 타이밍에 받는지에 따라 여러 모델로 분류되는 것이다. 동기 프로그래밍과 비동기 프로그래밍? 동기 작업이란 한 번에 하나씩 수행되는 것을 의미한다. 즉, 해당 작업이 끝나기 전까지는 현재 진행중인 작업 외의 다른 작업을 수행하지 못함을 의미한다. (HTTP 요청은 요청을 하면 무조건 응답을 받는다. 이것이 동기적이라고 할 수 있다.) 다른 말로는 모든 I/O 요청-응답 작업이 일련의 순서를 따르는 것이다. 즉, 작업의 순서가 보장된다. 비동기 작업이란 한 번에 하나 이상이 수행될 수 있음을 의미한다. 즉, 현재 작업을 진행..
대표적인 SQL의 종류 3가지와 종류별 명령어는?
대표적인 SQL의 종류에는 DML, DDL, DCL이 있다. DML은 Data Manipulation Language의 약자로 테이블의 데이터를 조작하는 명령어이다. 종류는 다음과 같다. 데이터베이스 객체에 데이터를 삽입하는 INSERT, 데이터베이스 객체에 데이터를 삭제하는 DELETE, 데이터베이스 객체 안의 데이터를 수정하는 UPDATE, 데이터베이스 객체 안의 데이터를 조회하는 SELECT DDL은 Data Definition Language의 약자로 데이터베이스와 테이블의 스키마를 정의, 수정, 삭제하는 명령어이다. 종류는 다음과 같다. 데이터베이스 객체를 생성하는 CREATE, 데이터베이스 객체를 삭제하는 DROP, 기존에 존재하는 데이터베이스 객체를 다시 정의하는 ALTER DCL은 Data..
http의 문제점은 무엇일까?
HTTP의 문제점 도청이 가능하다. (평문 통신) 위장이 가능하다. (통신 상대 확인X) 변조가 가능하다. (완전성 증명 불가) - 다른 암호화하지 않은 프로토콜에도 공통되는 문제점들임 1. TCP/IP는 도청 가능한 네트워크이다. TCP/IP 구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청을 할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야 한다. 보완방법 통신 자체를 암호화 SSL(Secure Socket Layer) or TLS(Transport Layer Security) 라는 다른 프로토콜을 조합함으로써 HTTP의 통신 내용을 암호화할 수 있다. SSL을 조합한 HTTP를 HTTPS(HTTP Secure) or ..

AVL 트리란?
이진 트리의 문제점 이진 트리의 문제점은 한쪽으로 치우친 형태로 트리 구조가 만들어질 수 있다는 것이다. 이렇게 되면 트리 구조가 아닌 일반적인 연결 리스트와 별 차이가 없는 구조가 되어 이진 트리의 장점을 발휘할 수 없게 된다. 이와 같이 이진 트리가 구성되면 검색 시 성능이 O(logN)이라는 이진 트리의 장점을 보장할 수 없게 된다. 최악의 경우에는 성능이 O(N)이 되기도 한다. AVL 트리 AVL 트리는 전체 트리의 구조가 균형이 맞도록 하는 트리이다. 즉, 트리 구조가 한쪽으로 쏠리는 것을 막고자 하는 것이 가장 기본적인 개념이다. G.M Adelson-Velski와 E.M Landi 두 사람이 발표한 논문에서 유래되었고 발표한 사람의 이름 첫 글자를 모아 AVL 트리라고 이름 지어졌다. AV..
CORS(Cross-Origin Resource Sharing)란 무엇일까?
CORS는 무엇일까? : 브라우저에서 cross-origin 요청을 안전하게 할 수 있도록 하는 메커니즘 브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요하다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절한다. 이러한 허락을 구하고 거절하는 메커니즘은 HTTP-header를 이용해서 가능한데, 이를 CORS(Cross-Origin Resource Sharing)라고 부른다. cross-origin이란 다음 중 한 가지라도 다른 경우를 말한다. 프로토콜 - http와 https는 프로토콜이 다르다. 도메인 - domain.com과 other-domain.com은 다..
[운영체제]03_프로세스 관리#3(작성중)
목차 운영체제 개요 컴퓨터시스템의 구조 프로세스 관리 CPU 스케줄링 병행 제어 데드락 메모리 관리 가상 메모리 파일 시스템 입출력 시스템 디스크 관리 프로세스 생성 Copy-on-write (COW) 부모 프로세스(Parent process)가 자식 프로세스(Chidren process) 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait) 모델 주소공간(Address space) 자식은 부모의 공간을 복사함 (binar..
[자바의 정석] 지네릭스(Generics)
1. 지네릭스란? 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다는 뜻이다. 2. 지네릭 클래스의 선언 지네릭 타입은 클래스와 메서드에 선언할 수 있다. // Box 클래스 정의 class Box { Object item; void setItem(Object item) {this.item = item;} Object getItem() {return item;} } // Box 클래스를 지네릭 클래스로 변경..
![[운영체제]03_프로세스 관리#2](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIL1we%2FbtrFzSvFPdN%2FtjkY6kU1zZJ1y2jkkT6rfk%2Fimg.png)
[운영체제]03_프로세스 관리#2
목차 운영체제 개요 컴퓨터시스템의 구조 프로세스 관리 CPU 스케줄링 병행 제어 데드락 메모리 관리 가상 메모리 파일 시스템 입출력 시스템 디스크 관리 Thread "A thread(or lightweight process) is a basic unit of CPU utilization" - thread는 cpu를 수행하는 단위이다. Thread의 구성 program counter register set stack space Thread가 동료 Thread와 공유하는 부분(=task) code section data section OS resources 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다. 다중 thread로 구성된 task 구조..