오늘부터 기술면접 준비가 시작되어 앞으로 면접용 질문에 대한 답변을 TIL로 작성할 예정이다.
첫 질문은 아래와 같았다.
1. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.
각 DB에 대해 알아보고자 한다.
1) NoSQL (Not only SQL)
비관계형 데이터 베이스
스키마가 없어 데이터 저장이 자유로움
많은 양의 데이터를 저장, 처리할 수 있음
유연한 특징, 반대로 말하면 구조화 되어 있지 않은 데이터베이스
장점
- 유연하여 확장이 용이
- Bigdata용으로 효과적
- 설계 비용 및 시간 절감
- 데이터 읽는 속도가 빠름
단점
- 데이터 중복
- Update가 비교적 느림
- 데이터 구조가 명확하지 않음
2) RDBMS (Relational DataBase Management System)
관계형 데이터 베이스
2차원 테이블 형태로 데이터 표현
장점
- 데이터 구조가 명확함(데이터 무결성)
- 데이터 업데이트가 빠름
- 데이터 중복 없음
- 분류, 정렬, 검색 속도 빠름
단점
- 관계가 많을 수록 제약조건이나 처리해야할 쿼리가 많아짐
- 스키마 규격에 맞춰야 해서 번거로울 수 있음
- 성능향상만 가능하며 비용이 높음
두개의 대표적인 DB는 보통 mongoDB(NoSQL), MySQL(RDBMS) 등이 있다.
결론적으로,
유연하고 자유로운 NoSQL은 프로젝트 단위가 크지 않거나 빅데이터 처리가 필요할 경우 사용하게 되고,
구조가 명확한 RDBMS는 큰 기업 또는 프로젝트에서 많은 데이터들이 중복이 되지 않게 하며, 빠르게 분류 및 정렬이 필요할 때 사용될 것 같다. 각 특징에 맞게 DB를 세팅하게 되면 두가지를 전부 사용하는 경우도 있다.
'개발공부' 카테고리의 다른 글
RDBMS의 정규화 (0) | 2023.08.22 |
---|---|
MVC(Model View Controller) 란? (0) | 2023.08.22 |
내배캠 node.js_trello 프로젝트 kpt회고 (0) | 2023.08.14 |
[MySQL] Error 3780 해결 방법 (2) | 2023.08.01 |
sequelize사용하여 DB생성하기(mysql) (0) | 2023.07.25 |