1. DFS & BFS에 대해 설명해주세요.
DFS (Depth First Search)는 깊이 우선 탐색으로 그래프의 모든 정점을 방문하는 방법 중 하나입니다.
BFS (Breadth First Search)는 너비 우선 탐색으로 시작 노드를 방문한 후,
시작 노드에 있는 인접한 모든 노드들을 우선 방문하는 방법입니다.
DFS는 적은 메모리를 사용하고 깊은 단계에 있는 노드를 빠르게 찾을 수 있지만, 최단 경로를 보장하지 않습니다.
반면 BFS는 최단 경로를 보장하지만, 더 많은 저장 공간이 필요합니다.
DFS와 BFS의 시간복잡도는 O(N)으로 동일하지만
- DFS는 스택 또는 재귀함수로 구현하는 반면
- BFS는 큐를 이용해서 구현한다는 차이점이 있습니다.
2. Isolation level에 대해 설명해주세요.
트랜젝션에서 Isolation level(격리 수준)은 데이터베이스 트랜잭션에서 동시성 제어를 위해 사용되는 개념입니다.
데이터베이스에서 여러 트랜잭션이 동시에 실행될 때, 격리 수준을 설정하여 각 트랜잭션 간에 데이터의 일관성과 안정성을 보장할 수 있습니다. 격리 수준이 높을수록 트랜잭션 간의 상호작용을 제한하여 무결성을 유지시켜주지만 성능에 영향을 미칩니다. 격리 수준은 여러 단계가 있으며 일반적인 격리수준으로 Read Uncommitted, Read Committed, Repeatable Read, Serializable 의 네 가지 수준이 있습니다.
1. Read uncommitted
다른 트랜잭션이 수정 중인 데이터를 읽을 수 있습니다.
2. Read committed
다른 트랜잭션이 수정을 완료한 데이터만 읽을 수 있습니다.
3. Repeatable read
트랜잭션 내에서 같은 쿼리를 실행하면 항상 같은 결과가 나옵니다.
4. Serializable
가장 엄격한 격리 수준입니다. 다른 트랜잭션에서는 해당 데이터에 접근할 수 없습니다.
'코딩공부 > 개발지식' 카테고리의 다른 글
[19회 - 데일리과제] TCP와 UDP / MST 알고리즘 (0) | 2023.05.10 |
---|---|
[18회 - 데일리과제] OSI 7계층 / DP 알고리즘 (0) | 2023.05.08 |
[16회 - 데일리과제] 이분탐색 / 스토리지 엔진 & DB Lock (0) | 2023.05.05 |
[15회 - 데일리과제] 선택 정렬 / Redis (0) | 2023.05.03 |
[14회 - 데일리과제] 시간복잡도&공간복잡도 / typeORM & Sequelize (0) | 2023.05.03 |