부록 C. 노드 프로젝트에서 데이터베이스 작업하기
대부분의 실제 애플리케이션은 데이터를 저장하고 검색하기 위해 데이터베이스를 사용합니다. 이 부록에서는 MongoDB, PostgreSQL, SQLite와 같은 완전한 기능을 갖춘 데이터베이스부터 캐싱 및 메시지 큐를 처리하는 Redis 및 RabbitMQ와 같은 지원 서비스까지 Node 프로젝트에서 사용되는 필수 데이터 도구를 소개합니다.
각 데이터베이스를 설치하고 연결하는 방법, Mongoose 및 Sequelize와 같은 ORM으로 작업하는 방법, 스키마, 컬렉션 및 문서와 같은 주요 데이터 모델링 개념을 이해하는 방법을 배우게 됩니다. 또한 로컬 및 Cloud 호스팅 옵션을 비교하고 빠른 프로토타입, 확장 가능한 웹 API 또는 백그라운드 작업 프로세서 등 앱의 요구 사항에 따라 각 도구를 언제 사용해야 하는지 살펴볼 수 있습니다.
데이터베이스가 중요한 이유
데이터베이스를 사용하면 애플리케이션이 세션 간에 데이터를 유지하고, 사용자 입력을 처리하고, 정보를 효율적으로 검색할 수 있습니다. Node는 다양한 데이터베이스 유형과 드라이버를 지원합니다. 프로젝트의 규모, 복잡성, 데이터 구조에 따라 적합한 데이터베이스를 선택해야 합니다.
최신 앱은 사용자 정보, 제품 또는 트랜잭션과 같은 많은 데이터를 저장해야 합니다. 데이터베이스가 없으면 서버가 다시 시작될 때마다 데이터가 손실되는 임시 저장소(예: 인메모리 변수)를 사용해야 합니다. 데이터베이스를 사용하면 데이터 일관성을 유지하고 복잡한 쿼리를 지원하며 앱이 성장함에 따라 확장할 수 있습니다.
이 부록에서는 이에 대해 다룹니다:
- MongoDB
-
유연한 JSON과 같은 데이터에 이상적인 NoSQL 문서 지향 데이터베이스
- PostgreSQL
-
강력한 기능과 ACID 규정을 준수하는 관계형 SQL 데이터베이스
- SQLite
-
로컬 개발 또는 임베디드 사용을 위한 경량 파일 기반 SQL 데이터베이스
각 섹션에는 설치 지침, 연결 설정, 네이티브 드라이버와 몽구스 및 시퀄라이즈와 같은 인기 있는 ORM을 사용한 사용 예제가 포함되어 있습니다.
핵심 개념: 스키마, 테이블, 컬렉션및 문서
에서 특정 데이터베이스를 자세히 살펴보기 전에 몇 가지 주요 용어와 데이터베이스 유형 간에 매핑되는 방식을 살펴보세요:
| 개념 | SQL 데이터베이스 | NoSQL |
|---|---|---|
스키마 |
데이터베이스 구조 정의(테이블, 열) |
MongoDB용 몽구스 모델 정의 |
테이블 |
구조화된 레코드의 행 |
N/A(컬렉션 사용) |
컬렉션 |
N/A(테이블 대신 사용) |
문서 그룹(테이블과 유사) |
문서 |
N/A(행 대신) |
개별 JSON 유사 개체 |
팁
SQL 데이터베이스는 고정된 스키마를 사용하는 반면, NoSQL 데이터베이스는 유연한 문서 구조를 허용합니다.
MongoDB: 유연한 스키마를 위한 NoSQL
MongoDB는 JSON과 유사한 문서 모음에 데이터를 저장하므로 비정형 또는 반정형 데이터가 있는 애플리케이션에 이상적입니다. 다음 속성은 특히 Node 애플리케이션에 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access