Kotlin 신입 개발자 CS 기초 면접

Kotlin 신입 · 취준 (0~1년) CS 기초 5문항 조회수 40 · 2026-08-04 (화) 12:13:36
1 자료구조
Easy

Q. Stack과 Queue의 차이점을 설명하고, 각각 어떤 상황에서 사용하면 좋을지 예시를 들어주세요.

데이터가 삽입되고 제거되는 순서(LIFO, FIFO)에 집중해보세요.

A. 모범답안

Stack은 후입선출(LIFO) 구조로 마지막에 들어온 데이터가 먼저 나가며, Queue는 선입선출(FIFO) 구조로 먼저 들어온 데이터가 먼저 나갑니다. Stack은 함수 호출 스택, 실행 취소(Undo) 기능, 괄호 검사 등에 사용됩니다. Queue는 프린터 대기열, 메시지 큐, BFS 알고리즘 등에 활용됩니다. Stack은 push/pop 연산을, Queue는 enqueue/dequeue 연산을 주로 사용합니다.

핵심 포인트
  • • LIFO(후입선출)와 FIFO(선입선출)의 차이
  • • Stack의 활용 예시 (함수 호출, Undo)
  • • Queue의 활용 예시 (대기열, BFS)
답변에 넣으면 좋은 키워드
LIFO FIFO push pop enqueue dequeue
실무에서는

웹 브라우저의 뒤로가기 기능은 Stack으로, 백엔드 메시지 처리 시스템은 Queue로 구현됩니다.

Follow-up 질문

Deque(Double-ended Queue)는 무엇이며, Stack이나 Queue와 어떤 차이가 있나요?

2 알고리즘
Easy

Q. 시간 복잡도 O(1), O(n), O(n²)이 각각 무엇을 의미하는지 설명하고, 각각의 예시를 하나씩 들어주세요.

입력 데이터 크기(n)가 증가할 때 실행 시간이 어떻게 변하는지 생각해보세요.

A. 모범답안

O(1)은 상수 시간으로 입력 크기와 무관하게 일정한 시간이 걸리며, 배열의 인덱스 접근이 대표적입니다. O(n)은 선형 시간으로 입력 크기에 비례하여 시간이 증가하며, 배열 전체를 순회하는 경우가 해당됩니다. O(n²)은 이차 시간으로 입력 크기의 제곱에 비례하여 증가하며, 중첩 반복문을 사용하는 버블 정렬이 예시입니다. 시간 복잡도는 알고리즘의 효율성을 평가하는 중요한 지표입니다.

핵심 포인트
  • • O(1)은 상수 시간, 입력 크기와 무관
  • • O(n)은 선형 시간, 입력에 비례
  • • O(n²)은 이차 시간, 중첩 반복문
답변에 넣으면 좋은 키워드
시간 복잡도 Big O 상수 시간 선형 시간 이차 시간
실무에서는

대용량 데이터 처리 시 O(n²) 알고리즘은 성능 문제를 일으킬 수 있어 더 효율적인 알고리즘 선택이 필요합니다.

Follow-up 질문

O(log n) 시간 복잡도는 어떤 의미이며, 어떤 알고리즘에서 나타나나요?

3 네트워크
Medium

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

데이터 암호화와 SSL/TLS 프로토콜을 생각해보세요.

A. 모범답안

HTTP는 평문으로 데이터를 전송하여 중간에 데이터를 가로챌 수 있지만, HTTPS는 SSL/TLS 프로토콜을 사용해 암호화된 통신을 제공합니다. HTTPS는 공개키와 개인키를 이용한 비대칭 암호화로 초기 연결을 수립하고, 이후 대칭키로 실제 데이터를 암호화합니다. 인증서를 통해 서버의 신원을 검증하여 중간자 공격을 방지합니다. HTTPS는 443번 포트를, HTTP는 80번 포트를 기본으로 사용합니다. 현재는 대부분의 웹사이트가 보안을 위해 HTTPS를 필수로 사용합니다.

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

로그인, 결제 등 민감한 정보를 다루는 모든 웹 서비스에서 HTTPS는 필수적으로 사용됩니다.

Follow-up 질문

대칭키 암호화와 비대칭키 암호화의 차이는 무엇인가요?

4 운영체제
Medium

Q. 프로세스와 스레드의 차이점을 설명하고, 멀티 프로세스와 멀티 스레드 방식의 장단점을 비교해주세요.

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

A. 모범답안

프로세스는 독립적인 메모리 공간을 가진 실행 단위이고, 스레드는 프로세스 내에서 메모리를 공유하는 실행 단위입니다. 멀티 프로세스는 독립적이라 안정성이 높지만 메모리 사용량이 많고 프로세스 간 통신(IPC)이 복잡합니다. 멀티 스레드는 메모리를 공유해 자원 효율적이고 통신이 간단하지만, 동기화 문제와 하나의 스레드 오류가 전체에 영향을 줄 수 있습니다. 컨텍스트 스위칭 비용은 스레드가 프로세스보다 낮습니다.

핵심 포인트
  • • 프로세스는 독립 메모리, 스레드는 공유 메모리
  • • 멀티 프로세스는 안정적이나 무거움
  • • 멀티 스레드는 효율적이나 동기화 필요
답변에 넣으면 좋은 키워드
프로세스 스레드 메모리 공유 컨텍스트 스위칭 동기화 IPC
실무에서는

웹 서버는 동시 요청 처리를 위해 멀티 스레드를 사용하며, Chrome 브라우저는 탭마다 독립 프로세스를 사용합니다.

Follow-up 질문

Race Condition이 무엇이며, 이를 해결하기 위한 방법에는 어떤 것들이 있나요?

5 데이터베이스
Easy

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

검색 속도와 데이터 변경 작업의 관계를 생각해보세요.

A. 모범답안

인덱스는 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조로, 책의 색인과 유사한 역할을 합니다. 장점으로는 SELECT 쿼리의 검색 속도가 크게 향상되고, WHERE 절이나 ORDER BY 절의 처리 성능이 개선됩니다. 단점으로는 인덱스를 저장할 추가 저장 공간이 필요하고, INSERT, UPDATE, DELETE 작업 시 인덱스도 함께 수정해야 하므로 쓰기 성능이 저하됩니다. 일반적으로 B-Tree 구조를 사용하여 구현됩니다.

핵심 포인트
  • • 검색 속도 향상을 위한 자료구조
  • • SELECT 성능 개선
  • • 쓰기 작업 시 성능 저하 가능
답변에 넣으면 좋은 키워드
인덱스 B-Tree 검색 성능 저장 공간 쓰기 성능
실무에서는

사용자 ID나 이메일처럼 자주 검색되는 컬럼에 인덱스를 생성하여 로그인 조회 성능을 개선합니다.

Follow-up 질문

모든 컬럼에 인덱스를 생성하면 안 되는 이유는 무엇인가요?

댓글 0

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

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