3-Way Handshake에 대해 설명해 주세요. 3-Way Handshake란 TCP가 연결을 수행하는 과정이다. 클라이언트가 SYN 요청을 보내면 서버는 이를 받아 SYN에 ACK를 더한 응답을 보낸다.그후 클라이언트이 해당 응답을 받았다는 ACK를 보내면 연결이 완료되고 데이터를 송수신받을 준비가 끝난다. ACK, SYN 같은 정보는 어떻게 전달...
HTTP/1.1과 HTTP/2의 차이점은 무엇인가요? HTTP/1.1 연결 한 개당 하나의 요청을 처리하도록 설계됨 요청과 응답이 순차적으로 이루어짐 동시에 리소스를 주고 받는 것이 불가능 다수의 리소스를 처리하려면 대기시간이 길어짐 HOL(Head Of Line) Blocking이 발생할 수 있다 > HOL 블로킹이란 네트워크에서 같은 큐...
쿠키와 세션의 차이에 대해 설명해 주세요. 쿠키 클라이언트에 저장되는 키와 값이 들어있는 파일 세션 일정 기간동안 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 유지시키는 기술 쿠키를 기반으로 하지만 서버측에서 저장되고 관리 세션 ID를 이용해 클
TLB는 무엇인가요? 페이지 테이블은 메인 메모리에 존재해서 CPU는 메인메모리에 최소 2번은 접근해야 원하는 데이터를 얻을 수 있다. 페이지 테이블에 접근 해당 정보를 기반으로 실제 메모리에 접근 TLB(Translation Lookaside Buffer,
캐시 메모리 및 메모리 계층성에 대해 설명해 주세요. 컴퓨터의 메모리는 속도별로 레지스터,캐시, 주기억장치, 보조기억장치가 있다. 이 중 캐시메모리란 CPU와 메모리 사이의 병목현상을 줄이기 위한 아주 빠른 메모리를 말한다. L1,L2,L3메모리가있다. 캐시 메모리는 어디에 위치해 있나요? 캐시 메모리는 L1은 CPU 내부 L2는 CPU 회로판에 별도의...
Deadlock 에 대해 설명해 주세요. 프로세스가 한정되어 있는 자원을 얻지 못해 다음 처리를 하지 못해 무한히 기다리는 상태 Deadlock 이 동작하기 위한 4가지 조건에 대해 설명해 주세요. circular wait : 프로세스가 원형으로 서로의 자원을 요구할 때 mutual exclusion : 자원은 하나의 프로세스만 가질 수 있을 때 no p...
프로세스 주소공간 프로세스가 메모리를 할당 받으면 자신만의 방법으로 메모리를 관리하기 위해 이 공간들을 어떠한 구조로 관리하는데 이를 프로세스 주소 공간이라 부른다. 초기화 하지 않은 변수들은 어디에 저장될까요? 초기화 하지 않은 변수들은 BSS 영역에 저장된다. 일반적인 주소공간 그림처럼, Stack과 Heap의 크기는 매우 크다고 할 수 있을까요? ...
암호화 알고리즘에 대해 설명해 주세요. 암호화 알고리즘은 대표적으로 대칭키 암호화와 비대칭키 암호화가 있다. 대칭키 암호화는 같은 키를 사용해 암호화와 복호화를 하는 방법으로 이는 수신측에 키를 전달하는 과정에서 유출될 우려가 있다. 그에 반해 비대칭키 이와 다르게 공개키와 개인키가 있다. 이 방법은 공개키로 암호화하고 개인키로 복호화를 하는 방법이다. ...
재귀함수에 대해 설명해 주세요. 재귀함수란 함수안에서 자기 자신을 호출하는 함수를 의미한다. 재귀 함수의 동작 과정을 Call Stack을 활용해서 설명해 주세요. 재귀함수의 동작은 stack에 함수가 계속 쌓여가다가 return을 시작하면서 stack에서 다시 쌓였던 함수를 call하며 최종 결과를 도출한다. 언어의 스펙에 따라, 재귀함수의 최적화를...
힙에 대해 설명해 주세요. 완전 이진 트리의 일종으로 반정렬 상태를 유지하여 최대 혹은 최소의 값을 빠르게 반환할 수 있는 자료구조이다. 주로 우선순위 큐를 구현하기 위해 이용된다. 힙을 배열로 구현한다고 가정하면, 어떻게 값을 저장할 수 있을까요? 루트 노드를 첫번째 인덱스에 저장하고 부모 노드의 인덱스를 기준으로 2i에 왼쪽 자식 2i+1에 오른쪽 ...
시간복잡도와 공간복잡도에 대해 설명해 주세요. 시간 복잡도는 알고리즘이 수행되는 시간을 의미하고 공간복잡도는 알고리즘이 수행될 때 차지하는 공간의 크기를 의미한다. Big-O, Big-Theta, Big-Omega 에 대해 설명해 주세요. Big-O : 복잡도의 상한선을 의미한다. 즉 최악의 경우이다. Big-Omega : 복잡도의 하한선을 의미한다. 알...
Key (기본키, 후보키, 슈퍼키 등등...) 에 대해 설명해 주세요. 키란 데이터의 식별자의 역할을 하는 것을 의미한다. 기본키 후보키들 중에 하나를 선택한 키로 최소성과 유일성을 만족 NULL을 가질 수 없다 오직 한개 중복되어서도 안된다. 슈퍼키 각 행을 유일하게 식별할 수 있는 하나 혹은 그 이상의 속성들의 집합 유일성을 만족한다. 후보키 각 행...