본문 바로가기

학습노트/기초지식

[MySQL2] MySQL과 MySQL2의 차이점

  공부를 하다보면 DB와 node.js서버를 연결시킬 일이 생긴다. 그런데 우리는 지금까지 MySQL만 들어봤지 갑자기 MySQL2도 나오고 두 가지의 차이점이 무엇인지 알아보고 싶었다. 이번 포스팅은 정말 두가지의 차이점만 쓰고 끝낼 것이라서 간단한 글이 될것같다.

 

  MySQL과 MySQL2의 차이점은 바로 promise이다. mysql은 callback기반이기 때문에 promise를 사용하지 못하고 npm에 있는 promise-mysql 모듈을 따로 설치해서 사용해야한다. 하지만 mysql2는 promise를 지원하기 때문에 다른 모듈을 설치하지 않고 사용이 가능하다.

 

promise란?

  promise로 구현된 비동기 처리 함수는 콜백을 예측 가능한 패턴으로 사용하도록 도와준다. 순차적이지 않은 비동기함수의 실행순서를 제어할 수 있게 도와주고 콜백패턴에 비해 가독성이 좋고 반환된 결과물을 사용하기 편하게 도와준다. 

 

promise의 세 가지 상태

-pending: new Promise로 Promise가 생성된 직후 부터 resolve나 reject가 호출되기 전까지의 순간이다.

(비동기 처리 로직이 아직 완료되지 않은 상태)

 

-fullfilled: 비동기 처리함수 값이 참이라면 resolve메서드가 호출되고 resolve메서드의 인자로 설정한 비동기 함수의 결과값이 전달된다. 이 결과는 then을 통해 후속처리된다.

(처리가 완료되어 프로미스가 결과값을 반환한 상태)

 

-rejected: 처리가 실패하거나 오류가 발생한 상태