신입 개발자 면접에서 반복해서 나오는 자료구조·네트워크·데이터베이스·운영체제 핵심 개념 40장.
배열과 연결 리스트의 가장 큰 차이는?
배열은 메모리에 연속 배치돼 인덱스 임의 접근이 O(1)이지만 중간 삽입·삭제가 O(n)이다. 연결 리스트는 노드가 흩어져 있어 임의 접근이 O(n)이지만, 위치를 알고 있다면 삽입·삭제는 O(1)이다.
해시 테이블의 평균 조회 시간이 O(1)인 이유와, 최악이 O(n)이 되는 경우는?
키를 해시 함수로 버킷 인덱스로 바꿔 바로 접근하므로 평균 O(1)이다. 모든 키가 같은 버킷으로 충돌하면 그 버킷의 체인을 전부 훑어야 해 O(n)이 된다.
스택과 큐의 차이는?
스택은 LIFO(후입선출)로 함수 호출·되돌리기에 쓰이고, 큐는 FIFO(선입선출)로 작업 대기열·BFS에 쓰인다.
로그인 후 댓글을 남길 수 있습니다.
첫 댓글을 남겨보세요.
프로세스와 스레드의 차이는?
프로세스는 독립된 메모리 공간을 가진 실행 단위이고, 스레드는 한 프로세스 안에서 코드·데이터·힙을 공유하며 스택과 레지스터만 따로 갖는 실행 흐름이다. 스레드 간 통신은 싸지만 동기화 문제가 생긴다.
교착 상태(deadlock)의 네 가지 필요조건은?
상호 배제, 점유와 대기, 비선점, 순환 대기. 네 조건이 동시에 성립할 때만 발생하므로 하나만 깨도 예방된다.
TCP와 UDP의 차이는?
TCP는 연결 지향으로 3-way handshake·순서 보장·재전송·흐름 제어를 제공한다. UDP는 비연결형이라 헤더가 작고 지연이 낮지만 순서·도착을 보장하지 않는다. 실시간 스트리밍·DNS에 UDP를 쓴다.
HTTP와 HTTPS의 차이는?
HTTPS는 HTTP를 TLS 위에서 주고받아 암호화·무결성·서버 인증을 더한 것이다. 기본 포트는 HTTP 80, HTTPS 443이다.
쿠키·세션·JWT로 로그인 상태를 유지할 때 각각의 차이는?
세션은 서버가 상태를 저장하고 클라이언트는 세션 ID만 쿠키로 들고 다닌다(서버에서 즉시 무효화 가능). JWT는 서명된 토큰 자체에 정보가 들어 있어 서버가 상태를 안 가져도 되지만, 만료 전 강제 무효화가 어렵다.
데이터베이스 인덱스는 왜 조회를 빠르게 하고, 무엇을 대가로 치르는가?
정렬된 B-tree 구조로 탐색 범위를 로그 규모로 줄여 조회가 빨라진다. 대신 저장 공간을 더 쓰고, INSERT·UPDATE·DELETE 때 인덱스도 갱신해야 해서 쓰기가 느려진다.
트랜잭션의 ACID는 무엇의 약자인가?
Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성).
정규화를 하는 이유와, 일부러 반정규화하는 이유는?
정규화는 중복을 없애 갱신 이상을 막는다. 하지만 조인이 늘어 조회가 느려지므로, 읽기가 압도적으로 많은 화면에서는 일부러 중복 컬럼을 두는 반정규화로 조인을 줄인다.
REST API에서 PUT과 PATCH의 차이는?
PUT은 자원 전체를 보낸 값으로 교체하고(멱등), PATCH는 보낸 필드만 부분 수정한다. PUT은 같은 요청을 여러 번 보내도 결과가 같다.
시간 복잡도에서 입력이 커질수록 실행 시간이 절반씩 줄어드는 탐색의 복잡도를 빅오 표기로 쓰시오.
O(log n)
TCP가 연결을 수립할 때 주고받는 세 단계 절차의 이름은? (영문)
3-way handshake
HTTP 상태 코드 중 "요청한 자원을 찾을 수 없음"을 뜻하는 숫자는?
404
관계형 데이터베이스에서 다른 테이블의 기본 키를 참조해 무결성을 보장하는 키의 이름은?
외래 키
두 개 이상의 스레드가 서로의 자원을 기다리며 영원히 진행되지 않는 상태를 뜻하는 용어는? (한글)
교착 상태
캐시에서 찾는 데이터가 존재해 바로 응답할 수 있는 상황을 부르는 말은? (영문 2단어)
cache hit
자바에서 사용하지 않는 객체의 메모리를 자동으로 회수하는 기능의 이름은? (영문)
garbage collection
SQL에서 그룹별 집계 결과에 조건을 거는 절의 이름은?
HAVING