Ruby on Rails 신입 CS 기초 면접

Ruby on Rails 신입 · 취준 (0~1년) CS 기초 10문항 조회수 58 · 2026-09-10 (목) 12:11:13
1 자료구조
Easy

Q. 스택(Stack)과 큐(Queue)의 차이점을 설명하고, 각각 어떤 실무 상황에서 사용되는지 예를 들어주세요.

데이터를 넣고 꺼내는 순서가 어떻게 다른지 생각해보세요.

A. 모범답안

스택은 LIFO(Last In First Out) 방식으로 마지막에 들어간 데이터가 먼저 나오는 자료구조입니다. 큐는 FIFO(First In First Out) 방식으로 먼저 들어간 데이터가 먼저 나옵니다. 스택은 함수 호출 스택, 브라우저 뒤로가기 기능, 실행 취소 기능 등에 사용됩니다. 큐는 작업 대기열, 메시지 큐, 프린터 출력 순서 관리 등에 사용됩니다.

핵심 포인트
  • • 스택은 LIFO 구조
  • • 큐는 FIFO 구조
  • • 각각의 실무 활용 사례
답변에 넣으면 좋은 키워드
LIFO FIFO push pop enqueue dequeue
실무에서는

비동기 작업 처리 시스템에서 작업 순서를 관리할 때 큐 자료구조를 활용합니다.

Follow-up 질문

Rails에서 백그라운드 작업을 처리하는 Sidekiq는 어떤 자료구조를 사용할까요?

2 네트워크
Easy

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

데이터가 전송될 때 암호화 여부를 생각해보세요.

A. 모범답안

HTTP는 평문으로 데이터를 전송하는 프로토콜이고, HTTPS는 SSL/TLS를 통해 암호화된 통신을 제공합니다. HTTPS는 데이터를 암호화하여 중간에서 데이터를 가로채도 내용을 알 수 없게 만듭니다. 또한 인증서를 통해 접속한 서버가 신뢰할 수 있는 서버인지 확인할 수 있습니다. 로그인, 결제 등 민감한 정보를 다룰 때는 반드시 HTTPS를 사용해야 합니다.

핵심 포인트
  • • HTTP는 평문 전송
  • • HTTPS는 암호화 통신
  • • SSL/TLS 프로토콜 사용
답변에 넣으면 좋은 키워드
SSL TLS 암호화 인증서 보안 443포트
실무에서는

사용자 로그인 정보나 결제 데이터를 주고받을 때 HTTPS로 데이터를 보호합니다.

Follow-up 질문

Rails 애플리케이션에서 HTTPS를 강제하려면 어떻게 설정하나요?

3 자료구조
Easy

Q. 해시 테이블(Hash Table)이 무엇인지 설명하고, 시간 복잡도 측면에서 배열과 비교했을 때 어떤 장점이 있는지 말씀해주세요.

키를 통해 값을 찾을 때 걸리는 시간을 생각해보세요.

A. 모범답안

해시 테이블은 키와 값을 쌍으로 저장하는 자료구조로, 해시 함수를 사용하여 키를 인덱스로 변환합니다. 데이터 검색 시 평균적으로 O(1)의 시간 복잡도를 가집니다. 배열에서 특정 값을 찾으려면 O(n)이 걸리지만, 해시 테이블은 키를 알고 있다면 즉시 접근할 수 있습니다. Ruby의 Hash나 Python의 Dictionary가 해시 테이블을 구현한 예입니다.

핵심 포인트
  • • 키-값 쌍 저장
  • • 평균 O(1) 검색 시간
  • • 해시 함수 사용
답변에 넣으면 좋은 키워드
해시 함수 키-값 O(1) 충돌 Hash
실무에서는

사용자 세션 정보를 빠르게 조회하거나 캐싱 시스템에서 데이터를 저장할 때 사용합니다.

Follow-up 질문

해시 충돌(Hash Collision)이 발생하면 어떻게 처리하나요?

4 네트워크
Medium

Q. REST API에서 GET, POST, PUT, DELETE 메서드의 차이점과 각각의 용도를 설명해주세요. 또한 멱등성(Idempotent)의 관점에서 어떤 차이가 있나요?

각 메서드가 서버의 상태를 변경하는지, 같은 요청을 여러 번 보냈을 때 결과가 같은지 생각해보세요.

A. 모범답안

GET은 리소스를 조회할 때 사용하며 서버 상태를 변경하지 않습니다. POST는 새로운 리소스를 생성할 때 사용합니다. PUT은 리소스를 전체 수정하거나 없으면 생성할 때 사용합니다. DELETE는 리소스를 삭제할 때 사용합니다. 멱등성 측면에서 GET, PUT, DELETE는 같은 요청을 여러 번 보내도 결과가 동일하지만, POST는 요청할 때마다 새로운 리소스가 생성되므로 멱등하지 않습니다.

핵심 포인트
  • • 각 HTTP 메서드의 용도
  • • 멱등성 개념 이해
  • • POST는 비멱등적
답변에 넣으면 좋은 키워드
REST GET POST PUT DELETE 멱등성 CRUD
실무에서는

Rails 컨트롤러에서 RESTful 라우팅을 구성할 때 각 액션에 적절한 HTTP 메서드를 매핑합니다.

Follow-up 질문

PATCH 메서드는 PUT과 어떻게 다른가요?

5 알고리즘
Easy

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

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

A. 모범답안

O(1)은 상수 시간으로 입력 크기와 관계없이 항상 일정한 시간이 걸립니다. 배열의 인덱스 접근이 예시입니다. O(n)은 선형 시간으로 입력 크기에 비례하여 시간이 증가합니다. 배열 전체를 순회하는 것이 예시입니다. O(n²)은 이차 시간으로 입력 크기의 제곱에 비례합니다. 이중 반복문을 사용하는 버블 정렬이 예시입니다. 알고리즘 효율성을 평가할 때 중요한 지표입니다.

핵심 포인트
  • • 빅오 표기법 이해
  • • 각 복잡도의 의미
  • • 실제 알고리즘 예시
답변에 넣으면 좋은 키워드
빅오 시간 복잡도 O(1) O(n) O(n²) 효율성
실무에서는

대량의 데이터를 처리하는 배치 작업에서 알고리즘 선택 시 시간 복잡도를 고려합니다.

Follow-up 질문

데이터베이스에서 인덱스를 사용하면 시간 복잡도가 어떻게 개선되나요?

6 데이터베이스
Medium

Q. 관계형 데이터베이스에서 정규화(Normalization)가 무엇인지 설명하고, 왜 필요한지 말씀해주세요.

데이터 중복과 이상 현상을 생각해보세요.

A. 모범답안

정규화는 데이터베이스 테이블을 구조화하여 데이터 중복을 최소화하고 무결성을 유지하는 과정입니다. 중복 데이터가 있으면 수정 시 여러 곳을 변경해야 하고, 일부만 변경되면 데이터 불일치가 발생합니다. 정규화를 통해 삽입, 수정, 삭제 이상 현상을 방지할 수 있습니다. 일반적으로 제1정규형부터 제3정규형까지 적용하며, 각 정규형은 특정 규칙을 만족해야 합니다. 과도한 정규화는 조인이 많아져 성능 저하를 일으킬 수 있어 상황에 따라 비정규화도 고려합니다.

핵심 포인트
  • • 데이터 중복 제거
  • • 무결성 보장
  • • 이상 현상 방지
답변에 넣으면 좋은 키워드
정규화 중복 무결성 이상 현상 제1정규형 제3정규형
실무에서는

사용자 테이블과 주문 테이블을 설계할 때 정규화를 통해 사용자 정보 중복을 제거합니다.

Follow-up 질문

반대로 비정규화(Denormalization)는 언제 사용하나요?

7 운영체제
Easy

Q. 프로세스(Process)와 스레드(Thread)의 차이점을 설명해주세요.

각각이 독립적으로 가지는 자원과 공유하는 자원을 생각해보세요.

A. 모범답안

프로세스는 실행 중인 프로그램의 인스턴스로 독립적인 메모리 공간을 가집니다. 스레드는 프로세스 내에서 실행되는 작업 단위로 같은 프로세스의 스레드들은 메모리를 공유합니다. 프로세스 간 통신은 IPC를 사용해야 하지만, 스레드는 메모리를 공유하므로 통신이 쉽습니다. 스레드는 프로세스보다 생성과 전환 비용이 적어 효율적입니다. 하지만 스레드 간 자원 공유로 인해 동기화 문제가 발생할 수 있습니다.

핵심 포인트
  • • 프로세스는 독립적 메모리 공간
  • • 스레드는 메모리 공유
  • • 스레드가 더 가벼움
답변에 넣으면 좋은 키워드
프로세스 스레드 메모리 공유 동시성 멀티스레드
실무에서는

웹 서버에서 여러 요청을 동시에 처리할 때 스레드를 사용하여 효율성을 높입니다.

Follow-up 질문

Rails 애플리케이션은 멀티스레드 환경에서 안전한가요?

8 네트워크
Medium

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

연결 설정 방식과 신뢰성, 속도를 비교해보세요.

A. 모범답안

TCP는 연결 지향 프로토콜로 3-way handshake를 통해 연결을 설정하고 데이터 전송을 보장합니다. 순서 보장, 오류 검출, 재전송 기능을 제공하여 신뢰성이 높지만 상대적으로 느립니다. UDP는 비연결형 프로토콜로 연결 설정 없이 데이터를 전송하며 빠르지만 신뢰성은 보장하지 않습니다. TCP는 HTTP, 이메일, 파일 전송 등 정확성이 중요한 경우에 사용하고, UDP는 실시간 스트리밍, 온라인 게임 등 속도가 중요한 경우에 사용합니다.

핵심 포인트
  • • TCP는 신뢰성 있는 연결형
  • • UDP는 빠른 비연결형
  • • 사용 사례 구분
답변에 넣으면 좋은 키워드
TCP UDP 연결 지향 비연결형 3-way handshake 신뢰성
실무에서는

Rails 애플리케이션은 HTTP를 사용하므로 기본적으로 TCP 위에서 동작합니다.

Follow-up 질문

웹 브라우저가 서버와 TCP 연결을 맺는 3-way handshake 과정을 설명해주세요.

9 데이터베이스
Easy

Q. SQL의 JOIN 중에서 INNER JOIN과 LEFT JOIN의 차이점을 설명해주세요.

매칭되는 데이터가 없을 때 결과에 어떤 차이가 있는지 생각해보세요.

A. 모범답안

INNER JOIN은 두 테이블에서 조건에 맞는 행만 반환합니다. 한쪽 테이블에 매칭되는 데이터가 없으면 결과에 포함되지 않습니다. LEFT JOIN은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에 매칭되는 데이터가 없으면 NULL로 채웁니다. 예를 들어 사용자와 주문 테이블을 조인할 때, INNER JOIN은 주문한 사용자만 나오지만 LEFT JOIN은 주문하지 않은 사용자도 나옵니다.

핵심 포인트
  • • INNER JOIN은 교집합
  • • LEFT JOIN은 왼쪽 테이블 전체 포함
  • • 매칭 없을 때 NULL
답변에 넣으면 좋은 키워드
INNER JOIN LEFT JOIN NULL 교집합 외부 조인
실무에서는

게시글 목록을 보여줄 때 댓글이 없는 게시글도 포함하려면 LEFT JOIN을 사용합니다.

Follow-up 질문

Rails의 includes와 joins의 차이점은 무엇인가요?

10 알고리즘
Medium

Q. 정렬 알고리즘 중 버블 정렬, 퀵 정렬, 병합 정렬의 시간 복잡도를 비교하고, 실무에서 어떤 정렬을 선택해야 할지 설명해주세요.

각 알고리즘의 최선, 평균, 최악의 경우를 생각해보세요.

A. 모범답안

버블 정렬은 평균과 최악의 경우 O(n²)으로 비효율적입니다. 퀵 정렬은 평균 O(n log n)이지만 최악의 경우 O(n²)이 될 수 있습니다. 병합 정렬은 항상 O(n log n)을 보장하지만 추가 메모리가 필요합니다. 실무에서는 대부분 언어나 프레임워크에서 제공하는 내장 정렬 함수를 사용하는 것이 좋습니다. Ruby의 sort는 퀵 정렬과 병합 정렬을 혼합한 최적화된 알고리즘을 사용합니다. 데이터 크기가 작으면 알고리즘 선택이 큰 차이를 만들지 않습니다.

핵심 포인트
  • • 각 정렬의 시간 복잡도
  • • 실무에서는 내장 함수 사용
  • • 데이터 크기에 따른 선택
답변에 넣으면 좋은 키워드
버블 정렬 퀵 정렬 병합 정렬 O(n log n) 시간 복잡도 안정 정렬
실무에서는

사용자 목록을 이름순으로 정렬하거나 상품을 가격순으로 정렬할 때 정렬 알고리즘이 사용됩니다.

Follow-up 질문

안정 정렬(Stable Sort)이란 무엇이고 왜 중요한가요?

댓글 0

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

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