이 마인드 맵는 EdrawMind를 사용하여 작성되었으며, 면접 질문들을 모의 면접, 알고리즘 면접 질문, CS 질문 등의 주요 카테고리로 분류하여 정리하였습니다. 각 카테고리별로 다양한 세부 질문과 그에 대한 설명, 예시 등을 상세히 기재함으로써, 면접 준비에 도움을 줄 수 있도록 구성하였습니다.
객체지향 프로그래밍
프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
클라우드 서비스 모델?
Infrastructure(IaaS): 서비스로 제공되는 인프라스트럭처(물리적 자원 가상화)
Platform as a Service(PaaS): ''
플랫폼(플랫폼을 가상화)
Software as a Service(SaaS): "
소프트웨어(소프트웨어를 가상화)
join 연산에 대해서 설명
두 테이블의 데이터를 공통으로 존재하는 기준열에 따라 결합해서 새로운 결과를 만드는 연산.
(INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JION 등이 있음)
브루트 포스 방법은 무엇인가?
브루트포스(완전 탐색)
가능한 모든 경우의 수를 탐색하여 답을 찾는 기본적인 해결방법
BFS는 일반적으로 어떤 자료구조를 사용하는가?
BFS(너비우선탐색)
일반적으로 큐(queue)를 사용함
파이썬의 기본 자료형
int 정수형, str 문자열, list 리스트
트리에 대해 간단히
루트 노드에서 시작해 자식 노드로 뻗어나가는 구조를 가지는 비선형 자료구조. 알고리즘과 데이터 저장 방법에 활용됨(이진트리,완전 이진트리,등)
리스트에서 삽입 삭제 하는 방법
삽입:새 노드를 생성하고, 해당 위치의 이전/다음 노드 사이에 연결함(append)
삭제:특정 요소를 제거하고 이전 노드를 다음 노드에 연결하여 노드 제거(remove)
배열과 연결 리스트차이?
장단점은?
배열:고정된 크기를 가지고 연속된 메모리 공간에 저장함. 데이터 접근이 빠르지만 추가 및 삭제가 어려움
연결리스트:크기를 정할 필요가 없다
데이터 추가,삭제가 자유롭다
임의로 접근하는 것이 불가능함
재귀 함수(Recursive Function)가 무엇이며, 어떤 상황에서 사용하나요?
예시
함수가 자기 자신을 호출해서 문제 해결하는 방법
장점:코드가 간단하고 특정한 알고리즘에서 반복문보다 메모리를 덜 사용할 수 있음. 순열이나 조합, 일반적인 dfs에서 사용함
단점:반복문에 비해 스택 오버플로우의 위험이 크고 디버깅이 어려움, 무한루프에 빠질 수 있음
그래프의 인접 리스트와 인접 행렬의 차이점은 무엇인가
인접 리스트 - 각 노드에 대해 연결된 노드의 리스트를 저장. 메모리를 절약할 수 있고 특정 노드와 연결된 노드 탐색에 좋음
인접 행렬 - 모든 노드 쌍의 연결 상태를 2차원 배열로 저장. 노드간 연결확인이 빠르지만, 노드 수에 따라 메모리 사용량이 증가함
모의 면접
알고리즘 질문
Set 자료 구조는 어떤 특성인가?
어떤 상황에 쓰이는가?
중복이 없는 데이터 컬렉션. 요소 확인이나 중복 제거에 사용함. 리스트에서 중복없이 데이터를 추출하고 싶을 때, 집합연산(교집합, 합집합, 차집합)에 사용함
스키마에 대한 정의
DB를 정의하는 것(구조, 관계). 틀을 제공하고 테이블, 필드, 타입, 관계 등 논리적 구조 설계
데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
쿼리에 대한 정의
질문, 문의하다하는 뜻
DB에 정보 요청/조작을 위해 사용하는 명령어. SQL같은 언어를 사용하고 검색,추가,수정,삭제하는 작업을 수행함
DB에 대해서 정의
관련된 데이터를 체계적으로 정리하는 방법
데이터베이스와 SQL은?
DB(데이터베이스)
데이터의 저장소, 데이터의 집합소
SQL
DBMS에 데이터를 구축, 관리하고 활용하기 위해서 사용되는 언어가 SQL
DBMS
데이터 베이스를 관리하고 운영하는 소프트웨어
시간 복잡도와 공간 복잡도의 차이는?
시간복잡도
특정 크기의 입력을 기준으로 할 때 필요한 연산의 횟수
공간복잡도
프로그램 실행과 완료에 얼마나 많은 공간(메모리)가 필요한지
프로토콜이 무엇인가?
알고있는 프로토콜 하나 설명
프로토콜
컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약
HTTP(Hypertext Transfer ProtocolT)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜입니다
네트워크 OSI,TCP/IP 모델 비교
OSI
1.7개의 계층이 있다
2.많이 사용이 안됨
3.각 계층은 특정 기능 집합을 제공하도록 설계됨
TCP/IP
1.4개의 계층이 있다
2.실용적이며 국방부에서 개발한 실제
프로토콜을 기반으로 함
3. 오늘 날 인터넷과 대부분 네트워크에서
사용되고 있다
TCP/UDP 차이는?
TCP:인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
-연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜(로그인 및 메일 전송)
UDP:데이터를 데이터그램 단위로 처리하는 프로토콜 -신뢰성보다는 연속성이 중요한 서비스
(유튜브 조회수 및 실시간 서비스)