PyTorch 주니어 CS 기초 기술면접

PyTorch 주니어 (1~3년) CS 기초 7문항 조회수 20 · 2026-08-18 (화) 02:11:03
1 자료구조
Easy

Q. 스택(Stack)과 큐(Queue)의 차이점을 설명하고, 각각의 시간 복잡도를 말씀해주세요.

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

A. 모범답안

스택은 LIFO(Last In First Out) 구조로 마지막에 삽입된 데이터가 가장 먼저 제거됩니다. 큐는 FIFO(First In First Out) 구조로 먼저 삽입된 데이터가 먼저 제거됩니다. 스택의 push, pop 연산은 모두 O(1)의 시간 복잡도를 가집니다. 큐의 enqueue, dequeue 연산도 O(1)의 시간 복잡도를 가집니다. 스택은 함수 호출 스택이나 되돌리기 기능에, 큐는 작업 스케줄링이나 BFS에 주로 사용됩니다.

핵심 포인트
  • • LIFO vs FIFO 구조
  • • 모든 기본 연산의 시간 복잡도는 O(1)
  • • 각각의 대표적인 사용 사례
답변에 넣으면 좋은 키워드
LIFO FIFO push pop enqueue dequeue O(1)
실무에서는

PyTorch DataLoader에서 배치 데이터를 순차적으로 처리할 때 큐 구조가 내부적으로 활용됩니다.

Follow-up 질문

딥러닝 학습 과정에서 배치 데이터를 처리할 때 큐 자료구조가 어떻게 활용될 수 있을까요?

2 알고리즘
Medium

Q. 정렬 알고리즘 중 퀵소트(Quick Sort)와 머지소트(Merge Sort)의 시간 복잡도를 비교하고, 각각의 장단점을 설명해주세요.

평균과 최악의 경우를 구분하고, 메모리 사용량도 고려해보세요.

A. 모범답안

퀵소트는 평균 시간 복잡도가 O(n log n)이지만 최악의 경우 O(n^2)입니다. 머지소트는 평균과 최악 모두 O(n log n)으로 안정적입니다. 퀵소트는 in-place 정렬로 추가 메모리가 O(log n)만 필요하지만, 머지소트는 O(n)의 추가 메모리가 필요합니다. 퀵소트는 캐시 효율이 좋고 평균적으로 빠르지만 불안정 정렬이며, 머지소트는 안정 정렬이지만 메모리 사용량이 큽니다. 실무에서는 데이터 크기와 메모리 제약에 따라 선택합니다.

핵심 포인트
  • • 시간 복잡도: 퀵소트는 최악 O(n^2), 머지소트는 항상 O(n log n)
  • • 공간 복잡도: 퀵소트 O(log n), 머지소트 O(n)
  • • 안정성과 메모리 트레이드오프
답변에 넣으면 좋은 키워드
퀵소트 머지소트 O(n log n) in-place 안정 정렬 시간 복잡도 공간 복잡도
실무에서는

대용량 데이터셋의 인덱스를 정렬하거나 top-k 샘플을 선택할 때 정렬 알고리즘의 선택이 성능에 영향을 줍니다.

Follow-up 질문

대용량 텐서 데이터를 정렬해야 할 때 어떤 알고리즘을 선택하시겠습니까?

3 네트워크
Easy

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

데이터 암호화와 인증서의 역할을 생각해보세요.

A. 모범답안

HTTP는 평문으로 데이터를 전송하는 프로토콜이고, HTTPS는 SSL/TLS를 통해 암호화된 통신을 제공합니다. HTTPS는 데이터를 암호화하여 중간에서 가로채도 내용을 알 수 없게 합니다. 서버 인증서를 통해 접속한 서버가 신뢰할 수 있는지 확인할 수 있습니다. HTTPS는 443번 포트를 사용하며 HTTP는 80번 포트를 사용합니다. 최근에는 개인정보 보호와 SEO 최적화를 위해 HTTPS가 표준으로 자리잡았습니다.

핵심 포인트
  • • HTTP는 평문, HTTPS는 암호화 통신
  • • SSL/TLS 프로토콜 사용
  • • 서버 인증과 데이터 무결성 보장
답변에 넣으면 좋은 키워드
HTTP HTTPS SSL TLS 암호화 인증서 443포트
실무에서는

학습된 모델을 REST API로 서빙할 때 민감한 입력 데이터를 보호하기 위해 HTTPS를 필수로 적용합니다.

Follow-up 질문

모델 서빙 API를 배포할 때 HTTPS를 적용하지 않으면 어떤 보안 위험이 있을까요?

4 운영체제
Medium

Q. 프로세스(Process)와 스레드(Thread)의 차이를 설명하고, 멀티프로세싱과 멀티스레딩의 장단점을 비교해주세요.

메모리 공유 방식과 컨텍스트 스위칭 비용을 고려해보세요.

A. 모범답안

프로세스는 독립적인 메모리 공간을 가진 실행 단위이고, 스레드는 프로세스 내에서 메모리를 공유하는 실행 단위입니다. 멀티프로세싱은 각 프로세스가 독립적이라 안정적이지만 메모리 사용량이 크고 IPC 오버헤드가 있습니다. 멀티스레딩은 메모리를 공유해 효율적이고 컨텍스트 스위칭이 빠르지만, 동기화 문제와 한 스레드의 오류가 전체에 영향을 줄 수 있습니다. Python의 GIL로 인해 CPU 집약적 작업은 멀티프로세싱이, I/O 작업은 멀티스레딩이 유리합니다. 딥러닝에서는 데이터 로딩에 멀티프로세싱을 많이 활용합니다.

핵심 포인트
  • • 메모리 독립성 vs 공유
  • • 안정성 vs 효율성 트레이드오프
  • • Python GIL과 작업 특성에 따른 선택
답변에 넣으면 좋은 키워드
프로세스 스레드 멀티프로세싱 멀티스레딩 GIL 컨텍스트 스위칭 메모리 공유
실무에서는

PyTorch DataLoader에서 num_workers를 설정해 데이터 전처리를 병렬화할 때 멀티프로세싱을 사용합니다.

Follow-up 질문

PyTorch DataLoader의 num_workers 파라미터는 프로세스와 스레드 중 어떤 방식을 사용하며, 그 이유는 무엇일까요?

5 데이터베이스
Easy

Q. 관계형 데이터베이스(RDBMS)의 ACID 속성에 대해 설명해주세요.

각 알파벳이 의미하는 속성과 그것이 보장하는 것을 생각해보세요.

A. 모범답안

ACID는 데이터베이스 트랜잭션의 안정성을 보장하는 네 가지 속성입니다. Atomicity(원자성)는 트랜잭션이 모두 성공하거나 모두 실패하도록 보장합니다. Consistency(일관성)는 트랜잭션 전후로 데이터베이스가 일관된 상태를 유지하도록 합니다. Isolation(격리성)은 동시에 실행되는 트랜잭션들이 서로 영향을 주지 않도록 합니다. Durability(지속성)는 커밋된 트랜잭션의 결과가 영구적으로 저장되도록 보장합니다.

핵심 포인트
  • • Atomicity: 전부 성공 또는 전부 실패
  • • Consistency: 데이터 일관성 유지
  • • Isolation: 트랜잭션 간 독립성
  • • Durability: 결과의 영구 저장
답변에 넣으면 좋은 키워드
ACID Atomicity Consistency Isolation Durability 트랜잭션
실무에서는

모델 학습 이력과 하이퍼파라미터를 데이터베이스에 저장할 때 ACID 속성이 데이터 무결성을 보장합니다.

Follow-up 질문

실험 결과를 데이터베이스에 저장할 때 ACID 속성이 왜 중요할까요?

6 자료구조
Medium

Q. 해시테이블(Hash Table)의 동작 원리를 설명하고, 해시 충돌(Hash Collision)이 발생했을 때 해결 방법을 두 가지 이상 말씀해주세요.

해시 함수의 역할과 충돌 시 데이터를 어디에 저장할지 생각해보세요.

A. 모범답안

해시테이블은 해시 함수를 사용해 키를 인덱스로 변환하여 O(1)에 데이터를 저장하고 검색하는 자료구조입니다. 해시 충돌은 서로 다른 키가 같은 인덱스로 매핑될 때 발생합니다. 체이닝(Chaining)은 같은 인덱스에 연결 리스트로 여러 값을 저장하는 방법입니다. 개방 주소법(Open Addressing)은 충돌 시 다른 빈 인덱스를 찾아 저장하는 방법으로 선형 탐사, 이차 탐사 등이 있습니다. Python의 딕셔너리는 개방 주소법을 사용하며, 로드 팩터가 일정 수준을 넘으면 재해싱을 수행합니다.

핵심 포인트
  • • 해시 함수로 O(1) 접근 제공
  • • 체이닝: 연결 리스트 사용
  • • 개방 주소법: 다른 빈 슬롯 탐색
  • • 로드 팩터와 재해싱
답변에 넣으면 좋은 키워드
해시테이블 해시 함수 해시 충돌 체이닝 개방 주소법 O(1) 로드 팩터
실무에서는

PyTorch의 state_dict는 해시테이블 기반 딕셔너리로 레이어 이름을 키로 가중치에 빠르게 접근합니다.

Follow-up 질문

모델의 가중치를 딕셔너리로 관리할 때 해시테이블의 어떤 특성이 유용할까요?

7 네트워크
Medium

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

연결 방식과 신뢰성, 속도의 관점에서 비교해보세요.

A. 모범답안

TCP는 연결 지향 프로토콜로 3-way handshake를 통해 연결을 수립하고 데이터 전송의 신뢰성을 보장합니다. UDP는 비연결형 프로토콜로 연결 수립 과정 없이 데이터를 전송하며 빠르지만 신뢰성을 보장하지 않습니다. TCP는 순서 보장, 흐름 제어, 오류 검출 기능을 제공하지만 오버헤드가 큽니다. UDP는 오버헤드가 적고 실시간성이 중요한 스트리밍, 온라인 게임, DNS 질의에 적합합니다. TCP는 파일 전송, 웹 통신, 이메일처럼 정확성이 중요한 곳에 사용됩니다. 모델 서빙 API는 일반적으로 TCP 기반 HTTP를 사용합니다.

핵심 포인트
  • • TCP: 연결 지향, 신뢰성 보장
  • • UDP: 비연결형, 빠른 속도
  • • 신뢰성 vs 속도 트레이드오프
  • • 사용 사례에 따른 선택
답변에 넣으면 좋은 키워드
TCP UDP 3-way handshake 연결 지향 비연결형 신뢰성 실시간
실무에서는

분산 학습에서 그래디언트를 동기화할 때 정확성이 중요해 TCP 기반 통신을 주로 사용합니다.

Follow-up 질문

분산 학습 환경에서 노드 간 통신에 TCP와 UDP 중 어떤 것을 선택하시겠습니까?

댓글 0

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

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