본문 바로가기

전체 글

(147)
Schema Validation mongoose는 shema를 정의할 때 전달받은 조건을 자동으로 검사해주는 built in validation(내장 유효성 검사)을 제공한다. const productShema = new mongoose.Schema({ name: { type: String, required: true, }, price: { type: Number, required: true, min: 0, // or min: [0, 'set price positive'] => 두번째 아이템을 에러메세지로 전달 }, onSale: { type: Boolean, default: false, }, categories: { type: [String], default: ['cycling'] } }); const Produc..
what is Mongoose? Mongo shell에서 직접 데이터베이스를 관리해야 하는 상황도 있지만, shell만 이용하는 것은 불편하다. 그래서 대부분의 경우 어플리케이션과 데이터베이스를 연결하는 툴(driver)을 사용하는데, Mongoose도 이런 툴 중 하나이다. ODM ODM(Object Data/Document Mapper)은 NoSQL 기반 데이터베이스에 저장되어있는 데이터를 유용한 객체 데이터로 변환해 주는 툴을 말한다. Mongoose도 수많은 ODM 중 하나로, Mongo에 저장되어 있는 데이터를 JS객체로 변환하고, JS 코드로 데이터베이스를 관리할 수 있게 만든다. ODM은 다음과 같은 역할을 한다. DB에 저장되어 있는 데이터와, 삽입할 데이터를 mapping(연결)한다. mapping | an operat..
what is BSON? BSON vs. JSON | Binary JSON JSON 데이터는 다음과 같은 단점이 있다. JSON은 텍스트 기반의 데이터 형식으로, parsing 과정을 필요로 하는데, 텍스트 parsing은 매우 느리다. JSON은 가독성을 고려해서 작성되기 때문에, 파일 내부에 불필요한 spacing이 포함된다. 데이터를 압축해서 저장해야하는 데이터베이스의 컨셉과 거리가 멀다. 모든 타입의 데이터를 지원하지 않는다. ⭕ String, Boolean, Number, Array JSON의 이러한 한계를 극복하기 위해, Mongo는 데이터를 BSON(Binary JSON) 형식으로 변환하여 저장한다. 즉 텍스트 데이터를 이진수로 변환하여 저장한다. 이 때 BSON은 다음과 같은 장점을 가지고 있다. text pars..
Mongo shell Mongo syntax +) what is DataBase? +) MongoDB installation guide for windows Mongo shell이란 node REFL과 같이, Mongo 코드를 입력하고 평가할 수 있는 콘솔이다. 이곳에서 새로운 데이터베이스를 생성하고, 관리할 수 있다. start & exit cls | clear console ctrl + c | mongo 종료 만든 데이터베이스에 아무런 데이터가 없다면, mongo가 종료되면서 해당 데이터베이스도 사라짐 use dbName | 데이터베이스를 만든다. db | 현재 사용하고 있는 데이터베이스를 확인한다. show dbs | 모든 데이터베이스를 확인한다. 이 때 데이터가 들어있지 않은 데이터베이스는 목록에서 확인할 수 없음 C..
What is Database? Why we use Database? you can save information, having it with persistency const employee = [ { id:random(), name:"Todd", department:"front-end" }, { }, { }... ] js 스크립트 파일 안에서 위와 같이 배열 데이터를 관리한다고 해보자. 스크립트 파일이 실행될 때 마다 random 함수가 실행되기 때문에, 매번 id가 달라질 것이다. 그렇다면, json 파일에 데이터를 저장하면 어떨까? 일관적인 데이터를 유지할 수 있기 때문에, database의 가장 핵심적인 역할을 수행한다고 볼 수 있으나, database는 데이터를 저장하는 것 외에도 많은 일을 할 수 있다. Database to..
What is REST? REST | REpresentational State Transfer(대표 state 전달) REST is a guideline for how a client and server should communicate and perform CRUD operation on a given resource. REST는 클라이언트와 서버가 어떻게 리소스에 대한 CURD를 요청하고 응답할지를 제시하는 가이드라인이다. +) CRUD | create, read, update, delete +) Resouce | HTTP를 통해 주고 받을 수 있는 하나의 개체(entity)를 말하며, 이미지, 동영상 등과 같은 파일이나, 댓글, 트윗 등과 같은 코멘트 등등이 있다. Uniform Interface REST에서 강조하는 개념..
Module & NPM Module & Modularization Module | any of a number of distinct(개별적인) but interrelated units from which a program may be built up or into which a complex activity may be analyzed. 브라우저에서 JS 파일은, 보통 html의 script 태그 안에 포함되어 실행된다. 이 때 하나의 html 파일에 여러개의 js 파일을 포함시킬 수 있고, 나중에 parse되는 파일은 먼저 parse 된 파일의 전체 코드를 참조할 수 있다. 노드에서도 서로 다른 js 파일의 코드를 참조할 수 있는데, 브라우저에서와는 달리 어떤 코드를 외부에 노출시킬 것인지를 명시적으로 작성해야 한다. +) ..
what is Node? Node js Node is a JavaScipt runtime that executes code outside of the Browser Java, Python, Ruby와 같은 언어들은 공식 버전이 있고, 이 버전을 따로 설치해야 해당 언어로 작성된 코드를 실행할 수 있다. 반면 JavaScript는 이런 버전을 따로 설치하지 않더라도 코드를 실행할 수 있다. 왜냐하면, JS는 오직 브라우저에서만 실행 가능한 언어로, ECMAScript라는 규격 사항(specification)을 준수해서 코드를 작성하면, 브라우저가 알아서 이 코드를 분석하고 실행하기 때문이다. 즉, 브라우저만 있으면 js 코드를 실행할 수 있다. 하지만 2009년, Ryan Dahl에 의해 javascript 코드를 브라우저가 아닌..