인덱스 Q. 인덱스에 대해 설명해주세요.A. 인덱스는 데이터베이스에서 원하는 데이터를 검색할 때 속도를 향상시키기 위해 사용하는 자료구조입니다. Q. 인덱스를 사용했을 때의 장점과 단점에 대해 설명해주세요.A. 인덱스를 사용하면 검색 속도를 단축시킬 수 잇습니다. 또한, DML 연산 속도를 향상시킬 수 있습니다. 또한, 전반적인 시스템의 부하를 줄일 수 있다는 장점이 있습니다. 하지만 인덱스를 관리하기 위해 10%의 저장공간을 필요로 하는 단점이 있습니다. 또한, 인덱스를 위해 추가 작업을 진행해야 하며 인덱스를 DML이 빈번한 속성에 사용한다면 오히려 성능이 떨어지는 단점이 있습니다. Q. 인덱스 자료구조 종류에 대해 설명해주세요.A. 먼저 해시 테이블로 인덱스를 구현할 수 있습니다. ..
면접질문
HTTP & HTTPSQ. HTTP/2를 설명하고 장점 두가지를 설명해주세요.Q. HTTP와 HTTPS의 차이점은 무엇인가요?TCP vs UDPQ. TCP와 UDP의 차이를 설명해주세요.Q. TCP의 Flow Control 방법에 대해 알려주세요. TCP HandShakeQ. 3-way handshake 과정에 대해 설명해주세요A. 3-way handshake는 TCP를 통한 데이터 전송 과정에서 신뢰성 있는 연결을 수립하는 절차입니다.1. 먼저, 클라이언트가 서버에게 연결을 요청하며 클라이언트의 SYN(시작 시퀀스 번호)를 보냅니다.2. 서버가 클라이언트의 연결 요청을 받고 클라이언트에 SYN-ACK(서버의 시작 시퀀스 번호 - 클라이언트 시작 시퀀스 번호 + 1) 패킷을 보내 요청..
프로세스 vs 스레드 Q. 프로세스는 무엇인가요? A. 프로세스는 OS 입장에서 실행중인 작업의 단위입니다. 모든 프로세스는 독립적인 메모리 공간을 가지며, 최소 한 개의 메인스레드를 포함합니다. Q. 스레드는 무엇인가요? A. 하나의 프로세스 내에서 하나 이상으로 쪼개지는 작업의 단위입니다. Q. 프로세스와 스레드의 차이에 대해 설명해주실래요? A. 프로세스는 각 프로세스마다 독립적인 메모리 공간을 가지고 있기 때문에 프로세스 간 자원공유가 어렵습니다. 하지만 스레드는 프로세스 내에서 stack외에 메모리 공간을 공유하기 때문에 자원공유가 쉽습니다. 또한, 프로세스는 현재 실행중인 프로세스를 교체할 때 상대적으로 높은 context switching 비용이 발생합니다 Q. 멀티프로세싱과 멀티스레딩에 대..
메모리Q. 통상적인 메모리 구조 내의 4가지 구성에 대해 간단하게 설명해주세요A. 메모리는 code, data, heap, stack 영역으로 구성되어 있습니다. code 영역에는 코드 내부의 함수나 명령문 혹은 상수가 저장됩니다. data 영역에는 프로그램의 전역변수나 정적변수가 저장됩니다. heap 영역에는 사용자가 동적으로 생성하는 변수가 저장됩니다. 마지막으로 stack 영역에는 함수를 실행할 때 생성되는 매개변수나 지역변수가 저장됩니다. Q. BSS와 Data의 영역을 나누는 이유에 대해 간단하게 설명해주세요.A. Data 영역은 초기화 된 변수와 초기화 되지 않은 변수를 저장하는 BSS 로 나뉘어집니다. BSS 영역이 존재하는 이유는 초기화된 변수와 초기화 되지 않은 변수를 구분해 관..