내일배움캠프 기술면접 2일차

Skadi·2024년 3월 27일
0

1. 기술면접 #1

Q. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.

RDBMS의 장점 : 데이터 일관성과 안정성이 뛰어나며, ACID(Atomicity, Consistency, Isolation, Durability) 특성을 제공하여 데이터의 무결성을 보장합니다. 또한, 관계를 이용하여 복잡한 쿼리를 실행할 수 있으며, 데이터 중복을 최소화하여 데이터 일관성을 유지합니다.

RDBMS의 단점 : 대용량 데이터 처리에 한계가 있으며, 수평적 확장이 어려워 성능 저하가 발생할 수 있습니다. 또한, 스키마 변경이 어려울 수 있고, 데이터의 구조 변화에 유연하게 대응하기 어렵습니다.

NOSQL의 장점 : 대용량 데이터 처리와 확장이 용이하며, 수평적 확장이 가능하여 분산 데이터베이스를 구축하기 쉽습니다. 또한, 스키마가 없거나 유연한 스키마를 사용하여 데이터의 구조 변화에 유연하게 대응할 수 있습니다.

NOSQL의 단점 : 데이터 일관성을 보장하기 어렵습니다. ACID 특성을 모두 만족시키지 않을 수 있으며, 데이터 중복이 발생하여 이에 따른 데이터 일관성 관리가 필요합니다. 또한, 복잡한 쿼리와 조인을 처리하는 데 어려움이 있을 수 있습니다.

  • ACID
  1. 원자성(Atomicity):
    트랜잭션은 원자적인 작업 단위로 간주됩니다. 즉, 트랜잭션 내의 모든 작업은 모두 성공하거나 모두 실패해야 합니다. 트랜잭션 중간에 어떤 작업이 실패하면, 이전에 완료된 모든 작업은 롤백되어야 합니다.
  2. 일관성(Consistency):
    트랜잭션의 실행 결과는 일관된 상태를 유지해야 합니다. 트랜잭션이 실행 전과 실행 후에 데이터베이스의 무결성 규칙을 준수해야 합니다. 다시 말해, 데이터베이스의 상태는 트랜잭션이 완료된 후에도 언제나 일관되어야 합니다.
  3. 고립성(Isolation):
    동시에 실행되는 여러 트랜잭션이 서로 영향을 주지 않고 각각 독립적으로 실행되는 것을 보장해야 합니다. 다시 말해, 한 트랜잭션이 실행 중인 다른 트랜잭션에 영향을 주지 않아야 합니다.
  4. 지속성(Durability):
    트랜잭션이 성공적으로 완료된 후에는 그 결과가 영구적으로 저장되어야 합니다. 시스템이 실패하거나 다시 시작되더라도, 트랜잭션이 완료된 결과는 손실되지 않아야 합니다.

추가조언 : NOSQL 파트에서 직접 사용해본 Redis를 배경으로 Key-Value 형태로 데이터를 저장하고 관리할 수 있다는 점을 애기하면 좋을것 같다.

0개의 댓글