백엔드 개발자 면접대비 질문정리 - Algorithm & Data Structure
백엔드 개발자 면접대비 질문정리 - Algorithm & Data Structure
Stack, Queue, List, Tree, Hash Table
Stack이란 LIFO 선형데이터 구조, push 추가, pop 제거, 후위표기법 계산에 사용Queue란 FIFO 선형데이터 구조로 enqueue 추가, dequeue 제거, 스케줄링, 이벤트 처리에 사용List는 순서를 유지하는 동시에 항목의 빠른 추가와 제거를 가능하게 하는 선형 데이터 구조- 배열 또는 연결 리스트로 구현
Tree는 계층적 구조를 가진 비선형 데이터 구조, 노드와 엣지로 구성- 이진 검색 트리, AVL 트리, B-트리 등
Hash Table은 키를 값에 매핑하는 효율적인 데이터 구조로, 빠른 검색, 삽입, 삭제를 지원- 해시함수를 사용하여 키를 해시 값으로 변환하고 이 해시 값이 저장되는 배열의 인덱스로 사용
정렬 알고리즘
- 주어진 데이터를 특정 순서로 재배열하는 알고리즘
- 버블정렬, 선택정렬, 삽입정렬, 병합정렬, 퀵정렬
버블정렬은 인접 항목을 비교해 교환 정렬하는 것선택정렬은 배열의 각 위치에 대해 나머지 배열에서 최솟값을 찾아 해당 위치에 놓는 알고리즘삽입정렬은 각 요소를 이미 정렬된 부분 배열의 올바른 위치에 삽입하여 정렬합니다.병합정렬은 배열을 두 개의 균등한 크기의 부분 배열로 분할하고, 각 부분 배열을 재귀적으로 정렬한 다음 병합합니다.퀵정렬은 피벗을 선택하고 피벗보다 작은 요소들을 왼쪽에, 큰 요소들을 오른쪽에 위치시킨 후, 각 부분 배열에 대해 재귀적으로 정렬합니다.
Database
각 데이터 베이스별 종류
- MSSQL
- Window 생태계에서 좋은데 특정 운영 체제 종속될 수 있다는 단점
- MariaDB
- MySQL 오픈소스 포크로 일부 스토리지엔진 Aria, TokuDB와 같은 스토리지 엔진 추가
- 빠른 쿼리 지원
- 보안 강화
- NoSQL 지원
- MySQL
- InnoDB 로우레벨 락으로 트랜잭션 동시성 향상과 데드락 이슈를 줄여줌
- 데이터 압축을 지원하여 디스크 공간을 줄이고 I/O 성능향상
- Redis
- Remote Dictionary Server
- SSD, HDD가 아닌 RAM을 사용하기 때문에 속도가 빠르다.
데이터베이스의 정규화
- 관계형 데이터베이스에서 설계 중복을 막기 위한 프로세스
- 데이터 무결성과 효율성, 복잡성을 줄이는데 사용
- 1정규형: 데이터 원자값
- 2정규형: 부분 함수 종속성이 제거
- 3정규형: 이행 함수 종속성이 제거
- 보이스-코드 정규형(BNCF): 모든 비 기본키 속성이 기본 키에 대해 이행적 종속
- 4정규형: 다치 종속성 제거
- 5정규형: 조인 종속성 제거
Outer join이란?
- 두 테이블 결합에서 일치하는 값이 없는 경우(null)에도 레코드를 반환
- left outer join, right outer join, full outer join
View란?
- DBMS에서 하나 이상의 테이블에서 파생된 가상 테이블을 의미
- 기본 테이블의 데이터를 참조하지만 실제로 데이터를 저장하지 않습니다.
1
2
3
CREATE VIEW EmployeeView AS
SELECT EmployeeName, EmployeeDepartment
FROM EmployeeTable;
Index란?
- 데이터베이스 검색 속도를 높이기 위한 책의 색인과 같은 존재
- 잘못 설정시 오히려 성능 저하가 발생하기 때문에 설정이 중요
- 빈번한 조회가 발생하는 열
- 고유값이 많은 열
- 인덱스 크기 최소화
- 복합 인덱스
- page lock 걸림, 성능 저하될 수도 있음
Stored procedure란?
- 저장 프로시저
- 데이터베이스에서 실행할 수 있는 저장된 코드 블록
- 캐시 저장 후 실행하므로 성능을 높일 수 있고, 특정 권한을 부여해서 보안관리에도 좋습니다.
Transaction이란?
- 데이터베이스에서 일련의 연산들을 하나의 논리적 작업 단위로 묶은 것
ACID속성 만족- 원자성, 일관성, 고립성, 영구성
read uncommitted에서는 고립성 성립 안 됨.dirty read,non-repeatable read,phantom read발생 가능성
This post is licensed under CC BY 4.0 by the author.