CS
-
[Network] DNS 동작 원리CS/Network 2021. 9. 29. 12:51
DNS (Domain Name System) DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소(IP)로 바꾸거나 그 반대의 변환을 수행하는 시스템이다. 분산 데이터베이스를 사용한다. 계층 구조를 가지고 있다. DNS 서버는 네 가지 카테고리, 즉 Local DNS name server, Root dns server, Top-level domain(TLD) server, Authoritative DNS server로 분류된다. 캐싱이 없는 일반적인 DNS 조회에서는 이 네 가지 DNS 서버가 함께 작동하여 지정된 도메인의 IP주소를 클라이언트에게 전달하는 작업을 완료한다. Root DNS server Root DNS server는 요청받은 쿼리의 도메인의 확장자(.com, .net, .org ...)..
-
[Network] HTTP vs HTTPSCS/Network 2021. 9. 29. 11:49
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. HTTP(Hypertext Transfer Protocol) 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. HTTP 동작 클라이언트가 브라우저를 통해서 어떠한 서비스를 URL을 통하거나 다른 것을 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다. HTTP 특징 TCP를 사용한다. stateless 서버는 클라이언트의 요청(request)에 대한 정보를 유지하지 않는다. → 서버에는 수많은..
-
[Network] TCP vs UDPCS/Network 2021. 9. 28. 23:30
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. TCP(Transmission Control Protocol) TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로서, 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 이다. TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 바이트 스트림을 안정적으로, 순서대로, 에러없이 전송할 수 있게 한다. 특징 연결형 서비스: 가상 회선 방식 제공 3-way handshake를 통해 연결 성립(Establishment) 4-way ha..
-
[Network] TCP 연결과 해제CS/Network 2021. 9. 28. 20:07
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. 연결 성립 (Connection Establishment) SYN(Synchronize): 클라이언트는 서버에 접속을 요청하는 SYN 플래그 비트가 설정된 세그먼트를 보낸다. 해당 세그먼트는 통신의 시작을 알리며, 세그먼트 내 순서 동기화를 위한 Sequence number인 M(임의명)를 담아 보낸다. 이때 클라이언트는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYS_SENT 상태가 된다. SYN + ACK(Acknowledgement): 서버는 클라이언트의 요청인 SYN(M)을 받고 클라이언트에게 ..
-
[Network] HTTP Methods - GET, POST, PUT, PATCH, DELETECS/Network 2021. 9. 27. 23:13
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. HTTP를 사용하여 데이터가 서버로 전달될 때 method라는 속성을 반드시 가지게 된다. method는 데이터를 보내는 목적을 표시해주는 역할을 하고, method에 따라 서버에서 데이터를 다르게 처리한다. GET 서버로 resource를 요청할 때 사용 서버의 resource는 클라이언트로 전달만 될 뿐 변경되지 않음 GET method로 데이터를 보내려면 URL 뒤에 붙여 보낼 수 있음 ex) www.example.com?id=test&password=1234 key, value 쌍으로 데이터를 넣어야..
-
[OS] Synchronization과 AsynchronizationCS/Operating System 2021. 9. 20. 20:26
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. Synchronization vs Asychronization Synchronization: 메소드를 실행했을 때 값이 반환되기 전까지 blocking되어 메소드 실행과 동시에 반환 값이 기대되는 경우를 말한다. Asynchronization: 메소드를 실행했을 때 blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task를 위임하고 다음 코드를 수행하기 때문에 반환 값을 바로 반환하지 않는다. 프로세스 동기화 Critical Section (임계영역) 동일한 자원을 동시에 접근하는 작업 (e...
-
[OS] CPU SchedulerCS/Operating System 2021. 9. 20. 19:28
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. CPU 스케줄러 스케줄링 대상은 Ready Queue에 있는 프로세스들이다. FCFS(First Come First Served) 특징 먼저 온 순서대로 처리 비선점형(Non-Preemptive) 스케줄링: 일단 CPU를 잡으면 CPU burst가 완료될 때까지 CPU를 반환하지 않는다. 할당되었던 CPU가 반환될 때만 스케줄링이 이루어진다. 문제점 convoy effect: CPU burst가 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다. SJF(Shortest Job First) 특징 CPU bu..
-
[OS] SchedulerCS/Operating System 2021. 9. 20. 19:17
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 스케줄러 (Scheduler) 프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue: Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기 스케줄러(Long-term scheduler or job scheduler)..