Spring 신입 개발자 CS 기초 면접

Spring 신입 · 취준 (0~1년) CS 기초 3문항 조회수 62 · 2026-09-09 (수) 22:10:35
1 자료구조
Easy

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

데이터가 메모리에 저장되는 방식과 접근/삽입/삭제 연산의 시간복잡도를 생각해보세요.

A. 모범답안

ArrayList는 내부적으로 배열을 사용하여 데이터를 연속된 메모리 공간에 저장하며, 인덱스를 통한 조회가 O(1)로 빠릅니다. 반면 중간에 데이터를 삽입하거나 삭제할 때는 뒤의 요소들을 이동시켜야 하므로 O(n)의 시간이 걸립니다. LinkedList는 각 노드가 다음 노드의 참조를 가지는 형태로, 중간 삽입/삭제가 O(1)로 빠르지만 특정 인덱스 조회 시 처음부터 순회해야 하므로 O(n)이 걸립니다. 따라서 조회가 빈번한 경우 ArrayList를, 삽입/삭제가 빈번한 경우 LinkedList를 사용하는 것이 유리합니다.

핵심 포인트
  • • ArrayList는 배열 기반으로 조회가 O(1)
  • • LinkedList는 노드 기반으로 삽입/삭제가 O(1)
  • • 사용 목적에 따라 적절한 자료구조 선택 필요
답변에 넣으면 좋은 키워드
ArrayList LinkedList 시간복잡도 O(1) O(n) 조회 삽입 삭제
실무에서는

Spring에서 데이터베이스 조회 결과를 List로 받을 때, 조회 위주의 작업이면 ArrayList가 기본으로 사용됩니다.

Follow-up 질문

그렇다면 ArrayList의 크기가 가득 찼을 때 새로운 요소를 추가하면 내부적으로 어떤 일이 발생하나요?

2 네트워크
Medium

Q. HTTP와 HTTPS의 차이점을 설명하고, HTTPS가 데이터를 안전하게 전송하는 방식에 대해 설명해주세요.

암호화 방식과 SSL/TLS 프로토콜의 역할을 중심으로 생각해보세요.

A. 모범답안

HTTP는 평문으로 데이터를 전송하기 때문에 중간에서 데이터를 가로채면 내용을 그대로 볼 수 있습니다. HTTPS는 HTTP에 SSL/TLS 프로토콜을 추가하여 데이터를 암호화해서 전송합니다. HTTPS는 대칭키와 비대칭키 암호화를 함께 사용하는데, 먼저 서버의 공개키로 대칭키를 안전하게 전달한 후, 이후 통신은 빠른 대칭키 암호화를 사용합니다. 또한 인증서를 통해 서버의 신원을 검증하여 중간자 공격을 방지합니다. 기본 포트는 HTTP가 80번, HTTPS가 443번을 사용합니다.

핵심 포인트
  • • HTTP는 평문 전송, HTTPS는 암호화 전송
  • • SSL/TLS 프로토콜을 사용하여 보안 강화
  • • 대칭키와 비대칭키를 혼합하여 사용
  • • 인증서를 통한 서버 신원 검증
답변에 넣으면 좋은 키워드
HTTP HTTPS SSL/TLS 암호화 대칭키 비대칭키 인증서 443포트
실무에서는

Spring Boot로 REST API를 개발할 때 로그인, 결제 등 민감한 정보를 다루는 엔드포인트는 반드시 HTTPS로 통신해야 합니다.

Follow-up 질문

대칭키 암호화와 비대칭키 암호화의 장단점은 무엇이며, 왜 HTTPS는 두 방식을 혼합해서 사용하나요?

3 데이터베이스
Medium

Q. 데이터베이스의 인덱스(Index)란 무엇이며, 인덱스를 사용하면 조회 성능이 향상되는 이유와 단점에 대해 설명해주세요.

책의 목차나 색인을 생각해보면 이해하기 쉽고, 저장 공간과 쓰기 연산에 미치는 영향을 고려해보세요.

A. 모범답안

인덱스는 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조로, 특정 컬럼의 값과 해당 레코드의 위치를 저장합니다. 인덱스는 주로 B-Tree 구조로 구현되어 있어 정렬된 상태로 데이터를 관리하므로, 전체 테이블을 스캔하지 않고 빠르게 원하는 데이터를 찾을 수 있습니다. 하지만 인덱스를 생성하면 추가적인 저장 공간이 필요하고, INSERT, UPDATE, DELETE 시 인덱스도 함께 수정해야 하므로 쓰기 성능이 저하될 수 있습니다. 따라서 조회가 빈번한 컬럼에만 선택적으로 인덱스를 생성하는 것이 중요합니다.

핵심 포인트
  • • 인덱스는 검색 속도 향상을 위한 자료구조
  • • B-Tree 구조로 정렬된 데이터 관리
  • • 추가 저장 공간 필요 및 쓰기 성능 저하가 단점
  • • 조회가 빈번한 컬럼에 선택적으로 사용
답변에 넣으면 좋은 키워드
인덱스 B-Tree 검색 성능 저장 공간 쓰기 성능 SELECT INSERT UPDATE DELETE
실무에서는

Spring Data JPA에서 특정 필드로 자주 조회하는 엔티티의 경우, 해당 필드에 @Index 어노테이션을 사용하여 성능을 개선할 수 있습니다.

Follow-up 질문

그렇다면 WHERE 절에 사용되는 모든 컬럼에 인덱스를 생성하면 안 되는 이유는 무엇인가요?

댓글 0

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

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