Rust 신입 개발자 CS 기초 면접

Rust 신입 · 취준 (0~1년) CS 기초 5문항 조회수 37 · 2026-08-04 (화) 12:15:21
1 자료구조
Easy

Q. 스택(Stack)과 큐(Queue)의 차이점을 설명하고, 각각의 대표적인 사용 사례를 말씀해주세요.

데이터가 삽입되고 삭제되는 순서에 주목해보세요.

A. 모범답안

스택은 LIFO(Last In First Out) 방식으로 마지막에 들어온 데이터가 먼저 나가는 구조입니다. 큐는 FIFO(First In First Out) 방식으로 먼저 들어온 데이터가 먼저 나가는 구조입니다. 스택은 함수 호출 스택, 되돌리기(Undo) 기능, 괄호 검사 등에 사용됩니다. 큐는 작업 대기열, 프린터 출력 순서, BFS 알고리즘 등에 활용됩니다. 두 자료구조 모두 삽입과 삭제가 O(1) 시간복잡도를 가집니다.

핵심 포인트
  • • LIFO와 FIFO의 차이
  • • 각 자료구조의 실제 사용 사례
  • • 시간복잡도 이해
답변에 넣으면 좋은 키워드
스택 큐 LIFO FIFO 시간복잡도 함수 호출 스택
실무에서는

웹 서버에서 요청을 순서대로 처리하거나, 브라우저의 뒤로가기 기능을 구현할 때 사용됩니다.

Follow-up 질문

Rust에서 Vec을 사용해 스택을 구현한다면 어떤 메서드를 주로 사용하게 될까요?

2 알고리즘
Medium

Q. 정렬되지 않은 배열에서 특정 값을 찾는 선형 탐색과 정렬된 배열에서 값을 찾는 이진 탐색의 시간복잡도를 비교하고, 이진 탐색이 더 효율적인 이유를 설명해주세요.

탐색 범위가 매 단계마다 어떻게 변하는지 생각해보세요.

A. 모범답안

선형 탐색의 시간복잡도는 O(n)이고, 이진 탐색의 시간복잡도는 O(log n)입니다. 선형 탐색은 배열의 처음부터 끝까지 순차적으로 비교하므로 최악의 경우 모든 요소를 확인해야 합니다. 이진 탐색은 정렬된 배열의 중간값과 비교하여 탐색 범위를 매번 절반으로 줄이기 때문에 훨씬 빠릅니다. 예를 들어 1000개의 요소가 있다면 선형 탐색은 최대 1000번, 이진 탐색은 최대 10번만 비교하면 됩니다. 단, 이진 탐색은 배열이 정렬되어 있어야 한다는 전제조건이 필요합니다.

핵심 포인트
  • • 선형 탐색 O(n)과 이진 탐색 O(log n)의 차이
  • • 탐색 범위 감소 방식
  • • 이진 탐색의 전제조건
답변에 넣으면 좋은 키워드
시간복잡도 선형 탐색 이진 탐색 O(n) O(log n) 정렬
실무에서는

대용량 데이터베이스 인덱스 검색이나 사전 애플리케이션에서 단어를 빠르게 찾을 때 이진 탐색이 활용됩니다.

Follow-up 질문

만약 배열이 정렬되어 있지 않다면, 정렬 후 이진 탐색하는 것과 그냥 선형 탐색하는 것 중 어느 것이 더 효율적일까요?

3 네트워크
Easy

Q. HTTP와 HTTPS의 차이점을 설명하고, HTTPS가 보안을 제공하는 방식을 간단히 말씀해주세요.

데이터 전송 과정에서 암호화 여부에 주목해보세요.

A. 모범답안

HTTP는 평문으로 데이터를 전송하는 프로토콜이고, HTTPS는 SSL/TLS를 통해 암호화된 통신을 제공하는 프로토콜입니다. HTTPS는 데이터를 암호화하여 중간에 누군가 패킷을 가로채더라도 내용을 알 수 없게 합니다. 또한 인증서를 통해 접속한 서버가 신뢰할 수 있는 서버인지 확인할 수 있습니다. HTTPS는 기본적으로 443 포트를 사용하며, HTTP는 80 포트를 사용합니다. 로그인, 결제 등 민감한 정보를 다루는 웹사이트는 반드시 HTTPS를 사용해야 합니다.

핵심 포인트
  • • HTTP는 평문, HTTPS는 암호화 통신
  • • SSL/TLS 프로토콜 사용
  • • 인증서를 통한 서버 신뢰성 검증
답변에 넣으면 좋은 키워드
HTTP HTTPS SSL TLS 암호화 인증서 포트
실무에서는

웹 API 서버를 개발할 때 사용자 인증 토큰이나 개인정보를 안전하게 전송하기 위해 HTTPS를 필수로 적용합니다.

Follow-up 질문

대칭키 암호화와 비대칭키 암호화의 차이를 아시나요? HTTPS는 어떤 방식을 사용할까요?

4 운영체제
Medium

Q. 프로세스와 스레드의 차이점을 설명하고, 멀티 스레드 프로그래밍의 장단점을 말씀해주세요.

메모리 공유 여부와 컨텍스트 스위칭 비용을 생각해보세요.

A. 모범답안

프로세스는 독립적인 메모리 공간을 가진 실행 단위이고, 스레드는 프로세스 내에서 메모리를 공유하는 실행 단위입니다. 프로세스 간에는 IPC를 통해서만 통신이 가능하지만, 스레드는 같은 메모리를 공유하므로 데이터 교환이 쉽습니다. 멀티 스레드의 장점은 컨텍스트 스위칭 비용이 적고, 자원을 효율적으로 사용하며, 응답성이 향상된다는 것입니다. 단점은 동기화 문제로 인한 데드락이나 레이스 컨디션이 발생할 수 있고, 디버깅이 어렵다는 점입니다. Rust는 소유권 시스템으로 컴파일 타임에 많은 동시성 문제를 방지할 수 있습니다.

핵심 포인트
  • • 프로세스는 독립적 메모리, 스레드는 메모리 공유
  • • 멀티 스레드의 효율성과 응답성
  • • 동기화 문제와 안전성
답변에 넣으면 좋은 키워드
프로세스 스레드 메모리 공유 컨텍스트 스위칭 동기화 데드락 레이스 컨디션
실무에서는

웹 서버에서 여러 클라이언트 요청을 동시에 처리하거나, 대용량 파일 처리 작업을 병렬화할 때 멀티 스레드를 사용합니다.

Follow-up 질문

Rust의 소유권 시스템이 멀티 스레드 환경에서 어떻게 안전성을 보장하는지 설명해주실 수 있나요?

5 데이터베이스
Medium

Q. 데이터베이스 인덱스(Index)가 무엇인지 설명하고, 인덱스를 사용했을 때의 장단점을 말씀해주세요.

책의 색인과 비슷한 개념으로, 조회와 수정 성능에 각각 어떤 영향을 주는지 생각해보세요.

A. 모범답안

인덱스는 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조로, 특정 컬럼의 값과 해당 레코드의 위치를 저장합니다. 주로 B-Tree나 Hash 구조로 구현되며, 책의 색인처럼 원하는 데이터를 빠르게 찾을 수 있게 합니다. 장점은 SELECT 쿼리의 성능이 크게 향상되고, WHERE, ORDER BY, JOIN 연산이 빨라진다는 것입니다. 단점은 인덱스를 저장할 추가 저장공간이 필요하고, INSERT, UPDATE, DELETE 시 인덱스도 함께 수정해야 하므로 쓰기 성능이 저하됩니다. 따라서 조회가 많은 컬럼에만 선택적으로 인덱스를 생성해야 합니다.

핵심 포인트
  • • 인덱스는 검색 속도 향상을 위한 자료구조
  • • 조회 성능 향상, 쓰기 성능 저하
  • • 선택적 사용의 필요성
답변에 넣으면 좋은 키워드
인덱스 B-Tree SELECT WHERE 조회 성능 쓰기 성능 저장공간
실무에서는

수백만 건의 사용자 데이터에서 이메일로 특정 사용자를 빠르게 찾거나, 날짜 범위로 주문 내역을 조회할 때 인덱스를 활용합니다.

Follow-up 질문

모든 컬럼에 인덱스를 생성하면 안 되는 이유를 구체적으로 설명해주실 수 있나요?

댓글 0

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

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