JavaScript 주니어 CS 기초 면접

JavaScript 주니어 (1~3년) CS 기초 5문항 조회수 89 · 2026-07-26 (일) 11:10:38
1 자료구조
Easy

Q. 해시 테이블(Hash Table)의 개념과 동작 원리를 설명하고, JavaScript에서 해시 테이블로 사용할 수 있는 자료구조는 무엇인지 말씀해주세요.

A. 모범답안

해시 테이블은 키-값 쌍으로 데이터를 저장하는 자료구조로, 해시 함수를 사용해 키를 배열의 인덱스로 변환하여 O(1)의 시간 복잡도로 데이터를 저장하고 검색할 수 있습니다. JavaScript에서는 Object와 Map이 해시 테이블의 역할을 수행하며, Map은 키로 모든 타입을 사용할 수 있고 순서를 보장하는 장점이 있습니다. 해시 충돌이 발생할 경우 체이닝이나 개방 주소법 등으로 해결하지만, JavaScript의 내장 객체들은 이를 자동으로 처리합니다.

핵심 포인트
  • • 키를 해시 함수로 변환하여 O(1) 검색 제공
  • • JavaScript에서 Object와 Map이 해시 테이블 역할
  • • 해시 충돌 처리 메커니즘 존재
Follow-up 질문

Map과 Object의 차이점과 각각을 사용하기 적합한 상황에 대해 설명해주세요.

2 네트워크
Medium

Q. TCP와 UDP의 차이점을 설명하고, 각각 어떤 상황에서 사용하는 것이 적절한지 말씀해주세요.

A. 모범답안

TCP는 연결 지향 프로토콜로 3-way handshake를 통해 연결을 수립하고, 데이터의 순서 보장과 에러 검출, 재전송 기능을 제공하여 신뢰성 있는 통신을 보장합니다. UDP는 비연결형 프로토콜로 연결 수립 과정 없이 데이터를 전송하며, 속도는 빠르지만 데이터 손실이나 순서가 보장되지 않습니다. TCP는 HTTP, 이메일, 파일 전송 등 신뢰성이 중요한 경우에 사용하고, UDP는 실시간 스트리밍, 온라인 게임, DNS 조회 등 속도가 중요한 경우에 사용합니다.

핵심 포인트
  • • TCP는 연결 지향, 신뢰성 보장, UDP는 비연결형, 빠른 속도
  • • TCP는 3-way handshake, 순서 보장, 재전송 지원
  • • TCP는 신뢰성 중요 시, UDP는 실시간성 중요 시 사용
Follow-up 질문

WebSocket은 TCP 기반인데, 실시간 채팅에서 왜 일반 HTTP보다 WebSocket을 사용하는 것이 유리한지 설명해주세요.

3 데이터베이스
Medium

Q. 데이터베이스 트랜잭션의 ACID 속성에 대해 설명하고, 각 속성이 왜 중요한지 말씀해주세요.

A. 모범답안

ACID는 트랜잭션의 안정성을 보장하는 4가지 속성입니다. Atomicity(원자성)는 트랜잭션의 모든 작업이 완전히 수행되거나 전혀 수행되지 않음을 보장하고, Consistency(일관성)는 트랜잭션 실행 전후로 데이터베이스가 일관된 상태를 유지함을 의미합니다. Isolation(격리성)은 동시에 실행되는 트랜잭션들이 서로 영향을 주지 않도록 격리하며, Durability(지속성)는 커밋된 트랜잭션의 결과가 영구적으로 저장됨을 보장합니다. 이러한 속성들은 데이터 무결성과 신뢰성을 보장하여 은행 거래, 주문 처리 등 중요한 비즈니스 로직에서 필수적입니다.

핵심 포인트
  • • Atomicity: 전부 실행 또는 전부 취소
  • • Consistency: 일관된 상태 유지
  • • Isolation: 트랜잭션 간 격리
  • • Durability: 영구 저장 보장
Follow-up 질문

트랜잭션의 격리 수준(Isolation Level)에는 어떤 것들이 있으며, 격리 수준이 높아질수록 어떤 트레이드오프가 발생하나요?

4 알고리즘
Easy

Q. 선형 탐색(Linear Search)과 이진 탐색(Binary Search)의 차이점을 설명하고, 이진 탐색을 사용하기 위한 전제 조건은 무엇인지 말씀해주세요.

A. 모범답안

선형 탐색은 배열의 처음부터 끝까지 순차적으로 탐색하는 방법으로 시간 복잡도가 O(n)이며, 정렬되지 않은 데이터에서도 사용할 수 있습니다. 이진 탐색은 정렬된 배열에서 중간값과 비교하여 탐색 범위를 절반씩 줄여나가는 방법으로 시간 복잡도가 O(log n)입니다. 이진 탐색을 사용하기 위해서는 반드시 데이터가 오름차순 또는 내림차순으로 정렬되어 있어야 하며, 배열과 같이 인덱스로 중간 요소에 바로 접근할 수 있는 자료구조여야 합니다.

핵심 포인트
  • • 선형 탐색: O(n), 정렬 불필요
  • • 이진 탐색: O(log n), 정렬 필수
  • • 이진 탐색은 정렬된 배열에서만 사용 가능
Follow-up 질문

JavaScript 배열에서 특정 값을 찾을 때 사용할 수 있는 내장 메서드들과 각각의 시간 복잡도에 대해 설명해주세요.

5 운영체제
Medium

Q. 데드락(Deadlock)이 무엇인지 설명하고, 데드락이 발생하기 위한 4가지 필요조건에 대해 말씀해주세요.

A. 모범답안

데드락은 두 개 이상의 프로세스나 스레드가 서로가 점유한 자원을 기다리며 무한정 대기하는 상태를 말합니다. 데드락 발생의 4가지 필요조건은 상호 배제(자원을 한 번에 한 프로세스만 사용), 점유와 대기(자원을 보유한 채 다른 자원 대기), 비선점(다른 프로세스의 자원을 강제로 빼앗을 수 없음), 순환 대기(프로세스들이 순환 형태로 자원을 대기)입니다. 이 4가지 조건이 모두 만족될 때 데드락이 발생하며, 이 중 하나라도 제거하면 데드락을 예방할 수 있습니다.

핵심 포인트
  • • 두 개 이상의 프로세스가 서로의 자원을 무한정 대기
  • • 4가지 필요조건: 상호배제, 점유와 대기, 비선점, 순환대기
  • • 조건 중 하나를 제거하면 데드락 예방 가능
Follow-up 질문

JavaScript의 비동기 프로그래밍에서 Promise를 사용할 때 데드락과 유사한 상황이 발생할 수 있는 경우와 이를 방지하는 방법에 대해 설명해주세요.

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!