모의면접 준비
자료구조 & 알고리즘
1. 자료구조에 대해서 간단하게 정의해주세요.
자료구조는 컴퓨터 과학(CS)의 핵심 개념으로, 데이터를 저장하고 관리하는 방법입니다.
1-1. 그러면 자료구조를 알아야 하는 이유에 대해 말씀해주세요
자료구조를 잘 이해하면 효율적인 소프트웨어를 개발할 수 있습니다. 메모리를 효율적으로 사용하면서 데이터를 빠르고 안정적으로 처리할수록 효율적인 소프트웨어가 될 수 있고 이것이 궁극적인 목표이기 때문입니다.
2. 시간 복잡도와 공간 복잡도의 차이는 무엇인가요?
3. 재귀 함수에 대해서 간단하게 정의해주세요.
3-1. 그러면 재귀 함수는 어떤 상황에서 사용하나요? 예시를 들어 설명해 주세요.
4. 배열과 연결 리스트의 차이는 무엇인가요? 각각의 장단점도 설명해주실 수 있나요?
5. 리스트에서 삽입 삭제 하는 방법을 자유롭게 알려주세요.
6. 브루트 포스 방법은 무엇인지 간단하게 설명해주세요.
7. BFS는 일반적으로 어떤 자료구조를 사용하나요?
Bfs dfs fifo lifo
8. 트리에 대해서 간단하게 정의해주세요.
9. 그래프의 인접 리스트와 인접 행렬의 차이점은 무엇인가요?
네트워크
1. 프로토콜이 무엇이며, 알고 있는 프로토콜 중 하나를 설명하시오
프로토콜은 컴퓨터 내부나 컴퓨터 간의 데이터 교환, 즉 통신 방식을 정의하는 규칙입니다. 프로토콜 중에는 저희가 인터넷을 사용하면서 자주 접할 수 있는 HTTP(하이퍼텍스트 전송 프로토콜, Hypertext Transfer Protocol)가 있습니다.
2. OSI(모델)가 무엇인가요?
OSI 모델(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 7개 계층으로 나누어 설명한 것입니다.
2-1. TCP/IP 모델도 설명할 수 있으신가요?
2-2. 그럼 그 둘의 차이는 무엇인지 비교할 수 있나요?
3. UDP가 무엇인가요?
3-1. 그럼 TCP와 UDP의 차이가 무엇인지 비교할 수 있나요?
4. 클라우드 서비스 모델이 무엇인가요?
클라우드 컴퓨팅은 인터넷으로 가상화된 IT 인프라를 제공하는 것을 의미합니다. 제공하는 모델에 따라 유형이 나뉘게 되고, 이들을 클라우드 서비스 모델이라고 합니다.
4-1. 그럼 클라우드 서비스 모델에는 어떤 것들이 있나요?
IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)라는 3가지의 기본 클라우드 서비스 모델이 있습니다. 이외에 컨테이너와 같은 다른 기술을 통합하는 다른 유형의 클라우드 서비스도 있습니다. 예시로 CaaS(Containers as a Service)가 있습니다.
4-2. 각 클라우드 서비스 모델에 대해 자세히 설명해주실 수 있나요?
IaaS (Infrastructure as a Service)
IaaS는 클라우드를 통해 서버, 스토리지, 네트워크와 같은 인프라스트럭쳐(Infrastructure)에 해당하는 부분을 제공하는 서비스 모델입니다. 사용자는 운영체제, 미들웨어, 가상머신, 애플리케이션, 데이터를 관리합니다.
PaaS (Platform as a Service)
PaaS는 클라우드를 통해 애플리케이션을 개발, 실행, 관리하는 데 필요한 플랫폼을 제공하고 관리합니다. 사용자는 코드를 작성하고 데이터와 애플리케이션을 관리합니다.
SaaS (Software as a service)
SaaS는 사용자에게 클라우드 기반 전체 애플리케이션을 제공합니다. 대부분의 애플리케이션을 네트워크를 통해 사용할 수 있어 사용자는 기기에 별도로 다운로드하거나 설치할 필요가 없습니다.
CaaS (Containers as a Service)
CaaS는 컨테이너를 제공하고 관리합니다. 컨테이너는 가상 컴퓨터와 다르게 소프트웨어 계층만 가상화합니다. IaaS의 하위 개념이나 확장으로 보기도 하며, 컨테이너를 기본 리소스로 사용합니다. 사용자는 CaaS를 사용하여 애플리케이션을 개발, 실행, 관리할 수 있습니다.
4-3. 클라우드 서비스 모델을 사용하는 이유가 무엇인가요?
서비스 모델의 약어에서 'As a service'는 서비스 모델이 클라우드에서 제3자에 의해 제공된다는 의미입니다. 즉, 기업이 자체적으로 IT 인프라를 소유, 관리, 운영할 필요 없이 구독 요금이나 사용한 만큼만 지불하여 필요한 인프라를 사용할 수 있는 것이며, 개발 비용을 줄일 수 있게 해줍니다.
DB & DBMS
1. DB에 대해서 간단하게 정의해주세요.
1-1. DBMS가 무엇인지도 설명하실 수 있나요?
1-2. 그럼 SQL은 무엇인가요?
2. 쿼리에 대해서 간단하게 정의해주세요.
3. 스키마에 대해서 간단하게 정의해주세요.
4. Set 자료구조는 어떤 특성을 가지고, 어떤 상황에서 쓰이나요?
5. join 연산에 대해서 설명해주세요.
자원과 자원 관리
1. 파이썬에서 기본 자료형 3가지 이상 간단하게 설명해주세요
python에서 제공하는 기본 자료형으로 String, Integer, Float이 있습니다. String은 문자열을 저장할 수 있는 자료형입니다. Integer는 부호가 있는 정수를 저장할 수 있는 자료형입니다. Float는 소수점을 가지는 수, 실수를 저장할 수 있는 자료형입니다. 이 외에도 다양한 자료형이 존재하며, python에서는 type() 함수를 통해 해당 변수나 상수의 자료형을 확인할 수 있습니다.
프로그래밍 방식, 개발 방법론
1. OOP란 무엇인가요?
OOP는 객체 지향 프로그래밍의 약어로써, 프로그램을 객체(object)라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 프로그래밍 방식입니다.
1-1. 조금 더 자세히 설명할 수 있나요?
객체 지향 프로그래밍은 객체라는 단위로 프로그래밍합니다. 객체는 특정 역할을 수행하는 단위이고 변수와 메소드로 이루어져 있습니다. 클래스는 객체를 찍어내기 위한 틀에 해당하는 코드 양식입니다. 이 클래스를 기반으로 한 변수를 인스턴스라고 합니다.
1-2. 객체 지향(프로그래밍)을 선호하는 이유가 무엇인가요?
객체 지향의 주요 특징 4가지로 추상화, 상속, 다형성, 캡슐화가 있습니다. 추상화는 객체의 공통적인 속성과 기능을 추출하여 정의하는 것입니다. 상속은 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 것입니다. 다형성은 어떤 객체의 속성이나 기능이 상황에 따라 여러 형태를 가질 수 있는 성질입니다. 캡슐화는 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것입니다. 이러한 특성 때문에 개발 생산성을 올릴 수 있게 되어 객체 지향 프로그래밍을 선호합니다.
'CS' 카테고리의 다른 글
[TIL] 20240329 33일차 (0) | 2024.03.29 |
---|---|
[TIL] 20240328 32일차 (0) | 2024.03.28 |
[TIL] 20240326 30일차 (0) | 2024.03.26 |
[TIL] 20240325 29일차 (0) | 2024.03.25 |
[WIL] 20240318 ~ 20240322 6주차 정리 (0) | 2024.03.22 |