메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

[CS기술 면접] 자주 출제되는 컴퓨터 과학 지식 카테고리

한빛미디어

|

2024-08-30

|

by 강민철

4,701

다수의 국내외 개발자 채용 과정에서 출제되는 기술 면접 문항들을 카테고리별로 살펴보면 주로 어떤 분야에서 기술 면접을 시행하는지, 대부분의 기술 면접에서 강조하는 컴퓨터 과학적 지식이 무엇인지를 엿볼 수 있습니다.

 

 

 

 

 

 

크게 9가지로 분류된 카테고리들을 하나씩 살펴보면  ❶ 컴퓨터 구조 ~ ❺ 데이터베이스까지는 비교적 대다수 직군에서 공통적으로 출제되는 카테고리,  ❻ 프로그래밍 언어 ~ ❾ 이력서 및 직무 전문성까지는 개별 직군 및 기업이 사용하고 있는 기술 스택, 지원자의 경력이나 지원한 기업의 성격에 따라 질문의 내용이 달라질 수 있는 카테고리입니다.

 

 

 

 

 

 

 


컴퓨터 구조


‘컴퓨터 구조’에서 학습해야할 내용 중 하나는 컴퓨터가 이해하는 정보, 또 다른 하나는 컴퓨터의 핵심 부품입니다. 컴퓨터가 이해하는 정보는 크게 데이터와 명령어로 구성됩니다. 개발자가 만들고 실행하는 프로그램 역시 데이터와 명령어로 이루어져 있습니다. 또한 세상에 있는 다양한 종류의 컴퓨터들은 종류를 막론하고 핵심 부품인 CPU, 메모리, 보조기억장치, 입출력장치로 구성되어 있습니다. 


따라서 컴퓨터 구조를 이해하기 위해 가장 먼저 데이터와 명령어에 대해 알아보고, 컴퓨터의 핵심 부품의 역할과 작동 방법에 대해 학습해두면 좋습니다. 메모리를 공부할 때 캐시 메모리도 함께 공부하면 좋습니다.

 

 

 

 

 

 

 

운영체제

 

컴퓨터를 작동시키는 핵심 부품이 하드웨어라면, 딱딱한 하드웨어에 생명을 불어넣는 프로그램인 운영체제가 있습니다. 윈도우, 맥OS, 리눅스, 안드로이드, iOS와 같은 프로그램이 바로 운영체제인데요. 운영체제는 컴퓨터를 작동시키는 가장 중요한 프로그램이라고 해도 과언이 아닙니다. 개발자가 만들고 실행하는 모든 프로그램들은 직·간접적으로 운영체제의 도움을 받으며 실행되죠.

 

운영체제는 방대한 프로그램이지만, 운영체제의 핵심은 바로 커널입니다. 따라서 가장 먼저 커널이란 무엇인지부터 학습하고, 실행하는 프로그램이 운영체제(커널)에게 어떤 도움을 어떻게 받으면서 실행되는지, 관련하여 시스템 콜이 무엇인지에 대해 학습해두시면 좋습니다. 

 

또 개발에 있어 매우 중요한 개념인 프로세스와 스레드란 무엇인지 이해해 보고, 운영체제가 이들을 어떻게 관리하는지, 운영체제의 CPU 관리 방법인 CPU 스케줄링과 메모리 관리 방법인 가상 메모리, 파일/디렉터리 관리 방법인 파일 시스템에 대해 차례로 살펴보세요.

 

 

 

 

 

 

 

자료구조

 

‘자료구조’는 말 그대로 자료를 효율적으로 관리하는 구조적 방법을 의미합니다. 즉, 자료구조를 학습한다는 것은 여러 데이터를 효율적으로 관리하는 방법을 익히는 것과 같습니다. 자료구조에서는 우선 시간 복잡도와 공간 복잡도의 개념을 통해 코드의 성능을 평가하는 방법에 대해 학습하고, 배열과 연결 리스트, 스택과 큐, 해시 테이블, 트리와 그래프 등 대표적인 자료구조들을 살펴보시면 좋습니다.

 

 

 

참고로, 자료구조와 함께 학습하면 좋은 과목으로 알고리즘이 있습니다. 알고리즘은 프로그램의 목적을 이루기 위해 효율적으로 연산하는 절차를 다루는 학문으로, 자료구조와 프로그래밍 언어에 대한 이해가 선행되어야 하는 분야이기도 합니다. 알고리즘에 대한 이야기는 자료구조 내용에 일부 포함되어 있기는 하지만, 기술 면접보다는 코딩 테스트에서 주로 평가합니다.

 

 

 

 

 

네트워크

 

많은 컴퓨터들은 서로 연결되어 통신을 주고받습니다. 개발자가 만들고 실행하는 대부분의 프로그램 또한 네트워크를 통해 인터넷 세상과 연결됩니다. 그래서 기술 면접에서는 네트워크에 대한 관련 지식을 묻는 경우가 많습니다. 컴퓨터 간의 통신을 가능하게 만드는 네트워크는 대표적으로 다음과 같은 계층적인 구조(OSI 7계층, TCP/IP 4계층)를 이루고 있습니다.

 

 

 

 

이러한 네트워크 계층 구조가 무엇인지 이해하며 네트워크의 큰 그림을 그려 보고, 두 컴퓨터가 통신을 주고받는 규칙인 프로토콜의 개념을 알아두시면 좋습니다. IP, TCP, UDP, HTTP를 비롯한 계층별 주요 프로토콜과 알아 두면 좋은 네트워크 장비를 공부한 다음, 추가로 프록시의 개념과 안정적으로 트래픽을 다루는 방법도 익혀두면 좋습니다.

 

 

 

 

 

 

 

데이터베이스

 

데이터베이스는 프로그래밍 언어와 프레임워크, 라이브러리를 막론하고 웹/앱 개발에 있어 거의 대부분 활용됩니다. 따라서 웹/앱 개발 관련 직군을 희망한다면 데이터베이스에 대해 명확하게 알아두는 것이 좋습니다.  ‘데이터베이스’에서는 가장 먼저 데이터베이스와 그를 관리하는 DBMS가 무엇인지 알아보고, 데이터베이스에 무엇을 어떻게 저장할 것인지와 관련해 엔티티와 스키마가 무엇인지 학습해 보세요. 또한 데이터베이스에 대한 작업 단위인 트랜잭션의 개념과 트랜잭션이 지켜야 하는 ACID 원칙을 알아두시는 것도 중요합니다.


오늘날 자주 사용되는 데이터베이스 유형인 관계형 데이터베이스와 이를 다루기 위한 언어인 SQL, 그리고 데이터베이스에 대한 효율적인 질의 방법(효율적 쿼리)과 설계 방법도 정리해 보세요. 이 외에도 최근 부상하는 데이터베이스 유형인 NoSQL 데이터베이스의 개념과 특징, 대표적인 NoSQL 데이터베이스의 일종인 MongoDB와 Redis의 사용법까지 알아두시면 좋습니다.

 

 

 

 

 

 

 

+) CS Note: 개발자를 위한 컴퓨터 과학 용어집

 

컴퓨터 과학 학습의 본질은 용어 암기가 아니지만, 컴퓨터 과학이라는 방대한 주제를 배우다 보면 어쩔 수 없이 많은 용어와 마주하게 됩니다. 컴퓨터 과학 학습에 익숙하지 않은 분들이 관련 용어를 암기하는 데 치우치지 않도록 다음 링크에 컴퓨터 과학 주요 용어들을 미리 정리해 두었습니다. https://csnote.net/

 

 

 

 

 


 

위 콘텐츠는 『이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접』의 내용을 재구성하여 작성하였습니다.

 

 

댓글 입력
자료실

최근 본 책0