[내배캠 AI코스] TIL

내일배움캠프 20일차 TIL - 모의면접 Lv 1

띵제 2024. 3. 26. 20:37

1. 자료구조를 알아야하는 이유?

메모리를 효율적으로 사용하면서 데이터를 체계적으로 저장, 활용하기 위해서 알아야 한다. 

다양한 자료구조를 알아두면 특정한 상황에 가장 적합한 자료구조를 골라서 데이터를 정리 및 활용할 수 있고 이것은 문제를 빠르고 정확하게 해결할 수 있는 방법이 된다.

 

2. 자료구조에 대한 간단한 정의

데이터 값을 개발자의 사용 편의에 따라 조직, 관리, 저장하는 것을 뜻한다. 

 

3. OOP란?

Object-Oriented Programming. 객제 지향적 프로그래밍.

데이터를 입력받은 순서대로 처리하는 것이 아니라 객체의 관점에서 프로그래밍을 하는 것을 뜻하며 이는 프로그램을 수많은 객체로 나누어 이들의 유기적인 관계를 통해 프로세스가 진행되는 방식이다.

 

4. 클라우드 서비스 모델에 대해 무엇이 있으며, 각각 설명하시오

전자기기가 아닌 인터넷 서버 안에서 데이터를 저장하고 콘텐츠를 사용하는 등 다양한 동작이 가능한 컴퓨팅 환경이다.

 

클라우드 서비스 모델에는 3가지가 있는데,

서비스형 인프라(IaaS) : 주문형 인프라 리소스를 제공

서비스형 플랫폼(PaaS) : 앱 개발, 배포, 관리 등에 필요한 환경 제공

서비스형 소프트웨어(SaaS) : 전체 앱 스택을 제공

 

5. 네트워크 OSI, TCP/IP 모델을 비교하시오

 

 

6. TCP, UDP 차이를 말하시오
TCP는 연결 지향적 프로토콜로, 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는다.
UDP는 비연결형 프로토콜로, 연결 없이 각각의 패킷이 따로 전송되어 독립적 관계이다.

TCP는 상대적으로 느리지만 신뢰성 높으며
UDP는 상대적으로 빠르고 네트워크 부하가 적지만, 신뢰성은 낮다.

 

7. 프로토콜이 무엇이며, 알고 있는 프로토콜 중 하나를 설명하시오.

프로토콜은 컴퓨터 내부, 혹은 컴퓨터 간 데이터의 형식, 지정 및 교환 방식을 정의하는 규칙체계다. 

 

HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신 규칙 세트이다.
이때 클라이언트와 서버는 데이터를 일반 텍스트로 교환한다. 
반면 HTTPS(Hypertext Transfer Protocol Secure)는 HTTP의 확장 버전으로,  데이터를 전송하기 전 암호화된 연결을 설정하므로 HTTP보다 더 안전하다.

 

8. 그래프의 인접 리스트와 인접 행렬의 차이점은 무엇인가요?

인접행렬은 노드들의 연결관계를 행렬로 표현한 것으로 이차원 배열로 표시된다.

모든 노드를 표현해야 하기 때문에 노드의 갯수만큼 반복문을 돌게 된다.

따라서 노드가 많을수록 메모리 사용량이 올라간다.

 

인접리스트는 노드들의 연결관계를 리스트로 표현한 것으로, 

인접행렬과 달리 필요한 만큼만 메모리를 사용한다.

다만 시간이 오래걸린다는 단점이 있다.

 

9. 시간 복잡도와 공간 복잡도의 차이는 무엇인가요?

시간 복잡도는 실행되는 데 걸리는 시간을 판단하고

공간 복잡도는 실행되는 데 필요한 공간을 판단한다.

여기서 공간이란 메모리 양을 뜻한다.

 

10. 재귀 함수(Recursive Function)가 무엇이며, 어떤 상황에서 사용하나요? 예시를 들어 설명해 주세요.

재귀함수란 함수 내에서 자기 자신을 호출하여 작업을 수행하는 함수다.

특정 분기까지 자기 자신을 반복해서 호출하기 때문에 주로 반복문에서 사용된다.

가장 대표적인 예제로는 팩토리얼(Factorial)을 설명할 수 있다.