[면접 복기] 과제 리뷰 및 기초 전공 면접 (Placement)

면접에서 과제 리뷰 + CS 기초 위주로 질문을 받았고, 전반적으로 “설명 가능한 수준의 이해”를 확인하는 흐름이었습니다.
아래는 실제 질문과 함께, 제가 정리한 핵심 포인트 / 답변 구조 / 추가로 보완할 내용입니다.
1) 진행 분위기 & 구성
- 과제 리뷰: 결과물이 잘 작동하고 보고서를 잘 작성하였기에 과제 난이도 및 어려웠던 점에 대해서만 질문이 들어왔다.
- 기초 전공(CS/알고리즘): 개념 정의 → 비교 → 실무적 선택 기준(장단점)까지 설명 가능한지 확인
- 업무 적합성/태도: 역할이 제한적일 수 있는 상황에서의 수용성/커뮤니케이션 확인
2) 질문 리스트 (실제 받은 질문)
- AWS를 사용하여 진행한 프로젝트에 대해 간단하게 설명해주세요.
- EC2와 serverless인 Lambda를 사용했을 때 비용적인 측면에서 차이를 설명해주세요.
- 3개월 동안 데이터 추출 및 전처리만 맡게 될 수 있는데, 괜찮은가요? (실제로는 그렇지 않다는 것을 확인 받음)
- 정렬 알고리즘에서 Heap과 Merge sort에 대해 각각 설명해주세요.
- stable과 unstable sort에 대해 각각 설명해주세요.
- Quick Sort에 대해 스택 영역의 메모리를 적게 사용하는 방법에 대해 설명해주세요.
- 과제가 완벽하게 잘 된 것을 확인했어요. 과제를 진행하면서 어려웠던 점을 설명해주세요.
- 컴퓨터에서 커널 영역과 시스템 콜에 대해 설명해주세요.
3) 질문별 정리
Q1. AWS를 사용하여 진행한 프로젝트에 대해 간단하게 설명해주세요.
의도
- AWS를 “써봤다”가 아니라, 서비스 구조를 이해하고 운영 관점으로 설명 가능한지 확인
내 답변
- 프로젝트:
2025년 2학기 캡스톤 디자인 프로젝트 - 주요 AWS 구성:
EC2 / RDS / S3 - API 서버에 대해선 Django 프레임워크를 사용했으며 다른 GPU 서버를 이용하여 Paddle OCR을 처리하였다고 답변하였음.
Q2. EC2와 serverless인 Lambda를 사용했을 때 비용적인 측면에서 차이를 설명해주세요.
핵심 비교
- EC2: 인스턴스를 켜두는 동안 비용이 계속 발생(상시 비용)
- 트래픽이 “꾸준히” 있거나, 장시간 실행/상태 유지가 필요한 워크로드에 유리할 수 있음
- Lambda: 호출 수/실행 시간/메모리 등 사용량 기반 과금(스파이크/간헐적 트래픽에 유리)
- 호출이 적으면 저렴, 호출이 매우 많거나 실행이 길면 비용이 커질 수 있음
Q3. 3개월 동안 데이터 추출 및 전처리만 맡게 될 수 있는데, 괜찮은가요?
의도
- 단기간 역할이 단조롭거나 제한적일 때도 책임감/학습/개선 제안을 할 수 있는지 확인
내 답변
- “가능합니다. 다만 단순 전처리에서 그치지 않고 스스로 학습한 내용을 적용하여 나만의 결과물을 미리 보여드려 추가적인 학습으로 이어질 수 있도록 할 것입니다.”
Q4. 정렬 알고리즘에서 Heap과 Merge sort에 대해 각각 설명해주세요.
Heap Sort
- 시간복잡도: O(n log n) (평균/최악 동일)
- 공간복잡도: O(1) 추가 공간(제자리 정렬, in-place)
- 안정성: unstable
- 특징: 최악 보장이 필요하고 메모리 추가 사용을 줄이고 싶을 때 고려
Merge Sort
- 시간복잡도: O(n log n)
- 공간복잡도: 배열 기준 보통 O(n) 추가 공간 필요
- 안정성: stable
- 특징: 안정 정렬이 필요하거나, 외부 정렬/대용량 정렬(디스크 기반)에서 자주 활용
Q5. stable과 unstable sort에 대해 각각 설명해주세요.
- Stable sort(안정 정렬): 같은 키(값)를 가진 원소들의 상대적 순서가 정렬 후에도 유지
- 예: “학년으로 정렬 후, 같은 학년 내에서는 원래 이름 순서가 유지”
- 대표적으로: Merge sort(구현에 따라), Insertion sort 등
- Unstable sort(불안정 정렬): 같은 키를 가진 원소들의 상대적 순서가 바뀔 수 있음
- 대표적으로: Heap sort, Quick sort(일반 구현)
Q6. 과제가 완벽하게 잘 된 것을 확인했어요. 과제를 진행하면서 어려웠던 점을 설명해주세요.
의도
- “문제 해결 과정”을 보고 싶어함: 디버깅, 트레이드오프, 검증 방식
내 답변
- 과제 자체가 어렵진 않았으나 주어진 Hint가 적어 제출을 하기까지의 과정이 오래걸린 것 같습니다. 힌트를 얻는 방법을 얻고 나선 30분 내로 간단하게 풀 수 있었습니다.
Q7. 컴퓨터에서 커널 영역과 시스템 콜에 대해 설명해주세요.
커널 영역(Kernel space) vs 사용자 영역(User space)
- 사용자 프로그램은 보통 사용자 영역에서 실행되고, 제한된 권한만 가짐
- OS 핵심 기능(프로세스/메모리/파일/네트워크/드라이버)은 커널 영역에서 실행되며 높은 권한(보호된 자원 접근)을 가짐
- 이 분리는 보안/안정성(프로세스 격리)를 위해 중요
시스템 콜(System call)
- 사용자 프로그램이 커널 기능을 쓰기 위해 요청하는 공식 인터페이스
- 예:
open,read,write,fork,exec,mmap,socket등 - 동작 흐름(요지):
1) 사용자 코드가 시스템 콜 호출
2) CPU가 커널 모드로 전환(트랩/인터럽트 기반)
3) 커널이 작업 수행 후 결과 반환
4) 다시 사용자 모드로 복귀 - 이 과정에서 컨텍스트 전환 비용이 발생할 수 있음
4) 면접 후 느낀 점 / 다음 준비
- 과제는 “동작”만큼 설명 가능성(왜 이렇게 설계했는지, 어떻게 검증했는지)이 중요했다.
- CS 질문은 정의 → 비교 → 선택 기준 순서로 말하면 흔들리지 않는다.
- 다음엔 아래를 더 탄탄히 준비하면 좋겠다:
- EC2 vs Lambda 비용/운영 비교를 트래픽 패턴 기준으로 더 빠르게 말하기
- stable sort의 실무적 의미(다단계 정렬 예시) 즉시 꺼내기
- 시스템 콜의 흐름(유저→커널 모드 전환)을 한 문장으로 정리해두기
5) 추가 사항
- 해당 기업에는 합격 통보를 받았습니다.
Leave a comment