CS 지식의 정석

Sep 2, 2026·
In Hyuk
In Hyuk
· 2 min read
blog
CS 강의는 네트워크 - 자료구조 - 운영체제 - 데이터베이스 - 개발자 필수지식 순으로 공부하자.
강의 내용을 전부 필기하기 보다는, AI Engineer 직군에 필요한 질문들 위주로 정리하자.

네트워크

Q1. 네트워크에 대해 아는 것이 있나요?

네트워크에서는 TCP/IP 기반 통신과 HTTP 통신에 대한 기본적인 내용을 알고 있습니다. TCP와 UDP는 전송 계층 프로토콜입니다. TCP는 연결 지향 방식으로 데이터의 순서와 전달을 보장하기 위해 Sequence Number, ACK, 재전송 같은 매커니즘을 사용합니다. 반면에 UDP는 비연결형으로 전달이나 순서를 보장하지 않는 대신 오버헤드가 작다는 특징이 있습니다. 애플리케이션 계층에서는 HTTP/HTTPS가 있고, 프로젝트에서 REST API를 구현하면서 클라이언트와 서버 간 Request/Response 방식으로 통신하는 경험을 했습니다.

Q2. `OSI 7 Layer에 대해서는 아시나요?

네. OSI 7 Layer는 네트워크 통신 과정을 7개의 계층으로 나눈 모델입니다. 아래부터 Physical, DataLink, Network, Transport, Session, Presentation, Application 계층으로 구성됩니다. 대표적으로 Network 계층인 3계층에서는 IP를 통해 목적지까지 데이터를 전달하고, Transport 계층인 4계층에서는 TCPUDP를 통해 프로세스 간 데이터 전송을 담당합니다. Application 계층인 7계층에는 HTTPDNS처럼 애플리케이션에서 사용하는 프로토콜이 있습니다.

Q3. 자료구조나 알고리즘에 대해 아는 것이 있나요?

네. 자료구조는 데이터를 효율적으로 저장하고 접근하기 위한 구조로 알고 있습니다. 대표적으로 Array, Linked List, Stack, Queue, Hash Table, Tree, Graph 등이 있습니다.

Python에서는 ListDictionary를 많이 사용했습니다. List는 동적 배열 기반이라 인덱스를 이용한 조회는 O(1) 이지만, 중간에 데이터를 삽입하거나 삭제하는 경우는 O(n) 이 걸릴 수 있습니다.

DictionaryHash Table 기반의 Key-Value 자료구조이고, 일반적으로 조회, 삽입, 삭제가 평균 O(1) 입니다.

알고리즘에서는 정렬, 탐색, BFS/DFS 등을 알고 있으며, 문제에 맞는 알고리즘을 선택할 때는 데이터의 특성과 크기, 시간복잡도와 공간복잡도를 고려합니다.

Q4. 어떤 알고리즘을 사용하는 것이 더 좋은지 어떻게 판단하나요?

알고리즘을 선택할 때는 먼저 입력 데이터의 크기와 특성을 확인하고, Big-O 표기법을 통해 시간복잡도와 공간복잡도를 비교합니다.

예를 들어 데이터가 많다면 O(n^2) 알고리즘보다 O(nlogn) 알고리즘이 일반적으로 확장성 측면에서 유리합니다.

다만 Big-O가 더 좋다고 해서 항상 최적의 알고리즘인 것은 아니기 때문에, 실제 데이터의 크기나 메모리 사용량, 평균 및 최악의 시간복잡도, 구현 복잡도 등을 함께 고려해서 선택합니다.

In Hyuk
Authors
Data Analyst
데이터AI를 통해 가치를 만드는 것을 좋아합니다.
LLM을 활용한 서비스로 가치를 창출하고 유저 데이터 분석에 관심이 있습니다.