CS TIL

이재하·2023년 10월 26일
0

항해99

목록 보기
43/48
post-thumbnail

NoSQL과 RDBMS

NoSQL (Not Only SQL):

특징:

  1. 스키마 없음: 데이터는 키-값 쌍, JSON, 그래프 등 다양한 방식으로 저장될 수 있습니다.
  2. 수평적 확장: 일반적으로 분산 시스템에서 운영되어 빠른 읽기/쓰기 성능을 제공합니다.
  3. 유연한 데이터 모델: 빠르게 변하는 데이터 요구사항에 적응하기 쉽습니다.

장점:

  • 대량의 데이터 처리: 대량의 읽기/쓰기 요구 사항에 적합합니다.
  • 유연성: 스키마 변경 없이 데이터 구조를 쉽게 변경할 수 있습니다.
  • 수평적 확장: 추가 서버를 통해 쉽게 확장 가능합니다.

단점:

  • 일관성: 대부분의 NoSQL 데이터베이스는 ACID 트랜잭션의 완전한 일관성을 포기합니다.
  • 표준 부재: 다양한 NoSQL 데이터베이스 중 표준화된 쿼리 언어나 인터페이스가 없습니다.

RDBMS (Relational Database Management System):

특징:

  1. 스키마 기반: 데이터는 잘 정의된 스키마에 따라 테이블에 저장됩니다.
  2. ACID 트랜잭션: 모든 트랜잭션은 원자성, 일관성, 고립성, 지속성을 보장합니다.
  3. SQL 쿼리: 데이터 조회와 관리를 위해 표준화된 SQL 언어를 사용합니다.

장점:

  • 데이터 무결성: 스키마와 ACID 트랜잭션으로 데이터 무결성이 보장됩니다.
  • 표준화된 쿼리: SQL은 잘 알려진 표준 쿼리 언어로 다양한 응용 프로그램에서 지원됩니다.
  • 복잡한 쿼리: 조인, 서브쿼리 등의 복잡한 쿼리를 지원합니다.

단점:

  • 확장성: 대규모 트래픽과 데이터에 대한 수직적 확장이 어려울 수 있습니다.
  • 유연성: 스키마 변경이 어렵고, 데이터 구조의 변경에 대응하기 힘듭니다.

MVC (Model-View-Controller) 패턴:

MVC는 소프트웨어 설계 패턴으로, 응용 프로그램을 세 가지 주요 구성 요소로 분리하여 관리합니다.

  1. Model (모델): 애플리케이션의 비즈니스 로직과 데이터를 처리합니다. 데이터베이스와의 상호 작용 및 데이터 처리를 담당합니다.
  2. View (뷰): 사용자에게 보여지는 인터페이스 요소입니다. 사용자가 보고 상호 작용하는 UI 부분을 나타냅니다.
  3. Controller (컨트롤러): 사용자의 입력을 받아 모델과 뷰에 전달합니다. 사용자의 요청을 해석하고 적절한 응답을 생성하는 데 중점을 둡니다.

장점:

  • 분리의 원칙: UI와 비즈니스 로직이 분리되어 있어 개발과 유지 보수가 용이합니다.
  • 재사용성: 모델, 뷰, 컨트롤러는 독립적으로 재사용이 가능합니다.
  • 확장성: 각 구성 요소를 독립적으로 확장할 수 있습니다.

단점:

  • 복잡성: 초기 설계에서 복잡성이 증가할 수 있습니다.
  • 학습 곡선: 패턴을 처음 접하면 이해하는 데 시간이 걸릴 수 있습니다.

MVC 패턴은 특히 웹 응용 프로그램과 같은 사용자 인터페이스 중심의 응용 프로그램을 개발할 때 유용합니다. 이 패턴을 사용하면 로직, UI, 사용자 입력 처리를 분리하여 관리할 수 있습니다.

0개의 댓글