- 24.01.05) TIL2024년 01월 05일 19시 50분 22초에 업로드 된 글입니다.작성자: oneseel
<기술면접 질문>
1. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.
NoSQL과 RDBMS는 데이터를 데이터베이스에 저장하는 방법으로, RDBMS의 데이터는 테이블 형식으로 구성되며 테이블 간의 관계를 통해 데이터가 연결됩니다. 고정된 스키마를 가지고 있어 데이터의 구조가 미리 정의되어야 합니다. 반면 NoSQL은 테이블이 아닌 문서, 키-값 쌍, 그래프 등의 다양한 데이터로 저장합니다. 스키마가 없거나 유연한 스키마를 가지고 있어, 데이터 모델을 동적으로 변경할 수 있습니다.
RDBMS는 트랜잭션의 ACID특성을 보장하고 복잡한 쿼리를 지원하여 복잡한 데이터관계를 다룰 수 있는 장점이 있지만, 수직적 확장만 가능하여, 대규모 데이터에 대해서 확장이 어려울 수 있습니다.
NoSQL은 대용량 및 분산 데이터 처리에 용이하며, 수평적 확장이 가능합니다 .ACID 특성을 완전히 보장하기 어려워, 일관성 보다 유연성과 성능을 강조합니다. 그로 인해 복잡한 JOIN 및 쿼리가 어려울 수 있습니다.
어떤 데이터베이스를 선택하는지 여부는 프로젝트의 특성과 요구 사항에 따라 달라집니다. RDBMS는 데이터 일관성이 중요한 경우에 적합하며, NoSQL은 대규모 및 유연한 데이터 모델이 필요한 경우에 적합합니다.
<참고>
1) ACID 특성 : 트랜잭션의 속성을 설명하는 네 가지 기본적인 특성으로 데 이터베이스 관리 시스템(DBMS)에서 데이터 일관성과 안전성을 보장하는 데 중요한 역할을 합니다.
- Atomic(원자성)
- Consistency(일관성)
- Isolation(고립성)
- Durability(지속성)
2) 데이터베이스 종류
- RDB : MySQL, PostgreSQL, Oracle, Microsoft SQL Serve
- NoSQL : MongoDB, CouchDB(문서), Redis, DynamoDB( Key-Value), Cassandra, HBase(Column-family), Neo4j, ArangoDB(그래프)
3) 스키마(Schema) : 데이터베이스에서 데이터의 구조를 정의하는 데 사용되는 개념입니다. 스키마는 데이터베이스에 저장되는 데이터의 형식, 구조, 제약 조건 등을 명시적으로 정의합니다. 다시 말해, 스키마는 데이터베이스에 어떤 종류의 데이터가 저장될 것이며, 그 데이터가 어떻게 구성되는지를 정의하는 일종의 청사진입니다.
2. mvc 패턴에 대해서 설명해주세요.
웹을 구현할 때, 모델, 뷰, 컨트롤러로 분리하여 유지보수성과 확장성을 개선한 패턴입니다.
모델은 데이터와 서비스 로직을 관리하며, 뷰는 사용자에게 정보를 보여주고, 컨트롤러는 사용자의 입력을 처리하고 모델-뷰 간의 상호 작용을 담당합니다. 이를 통해 코드의 모듈화와 독립적인 개발 및 테스트가 가능해집니다.'TIL' 카테고리의 다른 글
24.01.09) TIL (0) 2024.01.09 24.01.08) TIL (1) 2024.01.08 23.12.28) TIL (0) 2023.12.28 23.12.27) TIL (0) 2023.12.27 23.12.26) TIL (0) 2023.12.26 댓글