1. ORM (Object-Relational Mapping)

- 위키백과에 나온 사전적의미는 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변화하는 프로그래밍 기법이다. 쉽게 말하면, 관계형 데이터 베이스를 자바스크립트의 객체, 클래스처럼 취급할 수 있도록 통역 해주는 역할을 한다고 할 수 있다.
- ORM을 사용하면 좋은 점
- 데이터베이스에 접근하려고 할때 sql을 사용하지 않고, 프로그래밍언어로 접근할 수 있도록 도와준다.
- mysql 모듈을 설치하지 않아도 된다.
2. Sequelize
- 여러 ORM 중 Sequelize는 Node.js 기반으로 PostgreSQL, MySQL, MariaDB, SQLite, MS-SQL을 지원한다.
- 프로미스 기반의 ORM이기 때문에 비동기 처리에 용이하다.
3. Sequelize 예시코드

#1
#2
- sequelize 인스턴스 생성(‘데이터베이스 이름’, ‘user’, ’password’)
#4 & #8
- db.define => define 메소드 스키마 작성하는것
- User, Message를 클래스 처럼 사용할 수 있다.
- primary key, updatedAt, createdAt등 ORM에서 자동으로 생성해준다. 따로 설정안해도 된다.
#8~#12
#14 ~ #30
#14
- sync()는 객체지향과 데이터베이스를 sync 시켜준다. 코드와 스키마를 일치시켜준다.
#16
- User.create는 하나의 레코드를 만드는 것. 즉 User에 username이 Jean Valjean을 만들어주는것이다. 객체로 채워넣는다. SQL에서는 INSERT INTO와 같은 역할을 한다.
#19
- findAll()은 SELECT * FROM과 같다.