프로젝트 이름 : 짧공 (짧은공부)
프로젝트 의도 :
1. 학생과 강사들이 자유롭게 묻고 답하며, 좋은 문제들을 게시하고 답을 확인한다.
2. 실시간으로 강사와 매칭해 draw 와 화상채팅을 하며 티칭한다.
3. 채팅시스템을 구현해 학생간 선생간에도 정보교환이 이루어지도록 한다.
상세SA문서 : https://www.notion.so/5-d3106252adaa47c7b9b7b7afb5a4a467
CS 1번 문제
NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.
NoSQL (비관계형 데이터베이스)
특징:
- 스키마 유연성: 데이터 모델의 변경이 용이하며, 새로운 필드를 쉽게 추가할 수 있습니다.
- 분산 처리: 대규모 데이터를 효과적으로 분산하여 처리할 수 있어 확장성이 뛰어납니다.
- 다양한 데이터 모델: 키-값 스토어, 문서 데이터베이스, 컬럼 패밀리 데이터베이스, 그래프 데이터베이스 등 다양한 데이터 모델을 제공합니다.
- 비구조적 데이터 처리: 반정형 및 비구조적 데이터에 대한 처리에 용이합니다.
- 높은 읽기/쓰기 성능: 일부 NoSQL 데이터베이스는 읽기와 쓰기 성능이 뛰어납니다.
장점:
- 유연성: 스키마 변경에 대한 제약이 적어 빠른 개발과 변화에 대응이 쉽습니다.
- 대용량 및 분산 처리: 대규모 데이터 처리와 분산 아키텍처를 지원하여 확장성이 좋습니다.
- 고속 읽기/쓰기: 일부 NoSQL 데이터베이스는 높은 읽기와 쓰기 성능을 제공합니다.
단점:
- 일관성 제어 어려움: 분산 환경에서 일관성을 유지하거나 보장하는 것이 복잡할 수 있습니다.
- 복잡한 쿼리: NoSQL은 간단한 조회를 위한 쿼리는 잘 처리하지만, 복잡한 연산이 필요한 경우에는 한계가 있을 수 있습니다.
- 커뮤니티 및 도구 부족: NoSQL 데이터베이스의 경우 RDBMS에 비해 지원되는 커뮤니티와 도구가 상대적으로 적을 수 있습니다.
RDBMS (관계형 데이터베이스 관리 시스템)
특징:
- 정형 데이터: 데이터는 정해진 스키마에 따라 구조화되며, 테이블 간의 관계를 통해 데이터가 저장됩니다.
- ACID 트랜잭션: 원자성, 일관성, 격리성, 지속성을 보장하는 트랜잭션을 지원하여 데이터 무결성을 유지합니다.
- 강력한 쿼리 언어: SQL을 사용하여 복잡한 쿼리를 수행할 수 있습니다.
- 안전성: 데이터 무결성 및 보안을 위한 기능들이 잘 구축되어 있습니다.
장점:
- 데이터 일관성: ACID 트랜잭션을 통해 데이터 일관성을 보장할 수 있습니다.
- 강력한 쿼리: 복잡한 데이터 분석 및 조회를 위해 SQL을 사용할 수 있습니다.
- 성숙한 생태계: RDBMS는 오랜 기간 동안 사용되어 발전된 생태계와 도구를 갖추고 있습니다.
단점:
- 스키마 제약: 데이터 스키마 변경이 어렵고, 새로운 필드 추가 등이 번거로울 수 있습니다.
- 확장성 제한: 대규모 데이터 처리나 분산 처리에는 한계가 있을 수 있습니다.
- 비정형 데이터 처리 어려움: 비정형 데이터 처리에는 적합하지 않습니다.
요약하면, NoSQL은 유연성과 확장성이 뛰어나며, 비정형 데이터 처리에 용이하나, 일관성 유지와 복잡한 쿼리에는 한계가 있습니다. RDBMS는 데이터 일관성과 강력한 쿼리 기능을 제공하지만, 스키마 변경이 어려우며 대규모 데이터 처리에 제약이 있을 수 있습니다. 선택은 데이터의 특성과 요구사항에 따라 이루어져야 합니다.