728x90
반응형

1. DFS & BFS에 대해 설명해주세요.

DFS (Depth First Search)는 깊이 우선 탐색으로 그래프의 모든 정점을 방문하는 방법 중 하나입니다. 
BFS (Breadth First Search)는 너비 우선 탐색으로 시작 노드를 방문한 후, 

시작 노드에 있는 인접한 모든 노드들을 우선 방문하는 방법입니다.

 

DFS 적은 메모리를 사용하고 깊은 단계에 있는 노드를 빠르게 찾을 수 있지만, 최단 경로를 보장하지 않습니다. 
반면 BFS는 최단 경로를 보장하지만, 더 많은 저장 공간이 필요합니다.

 

DFS와 BFS의 시간복잡도는 O(N)으로 동일하지만

  • DFS는 스택 또는 재귀함수로 구현하는 반면
  • BFS는 를 이용해서 구현한다는 차이점이 있습니다.

 

BFS / DFS

 

2. Isolation level에 대해 설명해주세요.

트랜젝션에서 Isolation level(격리 수준)은 데이터베이스 트랜잭션에서 동시성 제어를 위해 사용되는 개념입니다.

데이터베이스에서 여러 트랜잭션이 동시에 실행될 때, 격리 수준을 설정하여 각 트랜잭션 간에 데이터의 일관성과 안정성을 보장할 수 있습니다. 격리 수준이 높을수록 트랜잭션 간의 상호작용을 제한하여 무결성을 유지시켜주지만 성능에 영향을 미칩니다. 격리 수준은 여러 단계가 있으며 일반적인 격리수준으로 Read Uncommitted, Read Committed, Repeatable Read, Serializable 의 네 가지 수준이 있습니다.

레벨별 기능


1. Read uncommitted
다른 트랜잭션이 수정 중인 데이터를 읽을 수 있습니다.
2. Read committed
다른 트랜잭션이 수정을 완료한 데이터만 읽을 수 있습니다.
3. Repeatable read
트랜잭션 내에서 같은 쿼리를 실행하면 항상 같은 결과가 나옵니다.
4. Serializable
가장 엄격한 격리 수준입니다. 다른 트랜잭션에서는 해당 데이터에 접근할 수 없습니다.

728x90
반응형

+ Recent posts