본문 바로가기
시작/TIL(Today I Learned)

230110 - JavaScript - NodeJS, TDD, ORM, Sequelize 모듈

by 백씨네 2023. 1. 10.

오늘 내가 배운 것

1. TDD

  • TDD란?
  • TDD 순서

2. ORM

  • ORM 이란?
  • ORM 장점
  • ORM 단점

3. Node에서 ORM 사용하기

4. sequelize 설치

 

TDD

TDD 란?

- Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다.

기존 코드를 작성하는 방식은 설계를 한 후 코드를 작성하여 개발을 진행한 후에 테스트를 하고 수정사항을 고치는 방식이었다면 TDD 방식은 설계를 한 후 테스트 코드를 작성해서 확인을 하고 실제 코드를 개발한 후에 리펙토링을 하는 방식이다.

 

TDD 방식

 

 

TDD 순서

    - 작은 단위의 테스트 코드를 작성한다(보통 class 단위)
    - 테스트를 진행
    - 통과될 때까지 테스트 코드를 수정
    - 통과된 코드를 리펙토링
    - 리펙토링한 코드테스트
    - 리펙토링한 코드가 통과되면 다음 테스트 코드를 작성한다.
    - 위 과정을 계속 반복해서 만든다.
    - 테스트에 통과된 코드만 실제코드에 작성한다.

 

ORM

ORM 이란?

- Object Relational Mapping의 약자로 '객체와 데이터 베이스의 관계를 매핑해주는 도구'이다.

 

ORM 장점

- ORM을 사용하면 SQL문이 아닌 클래스의 매서드를 통해 데이터베이스를 조작할 수 있기 때문에, 개발자가 객체 모델만 사용해서 프로그래밍을 할 수 있다.
다른 데이터 베이스로 쉽게 교체가 가능하고, 여러 테이블에 쉽게 쿼리를 작성할 수 있다.
- 재사용 및 유지보수의 편의성이 증가한다. ORM은 독립적으로 작성되어 있어서, 객체들을 재사용할 수 있다. 
- 재사용이 용이하기 때문에 MVC패턴에서 모델에서 가공된 데이터를 컨트롤러에 의해 뷰와 합쳐지는 형태로 사용하기 유리하다.

 

ORM 단점

- ORM이 무조건일 수 없다. 
       - 'SQL 구문을 사용하지 않을 수 있다'일 뿐 'SQL 구문을 사용하지 않아도 된다.'는 아니다.
       프로젝트의 복잡성이 커질수록 난이도가 올라가고 설계가 부족해서 잘못 구현될 경우 속도 저하 및 일관성이 무너질 수 있다.
- 복잡한 쿼리문의 경우 오히려 SQL 구문이 직관적일 수 있다.

 

 

Node에서 ORM 사용하기

sequelize
- typeORM
    - typescript 기반


NodeJS는 대표적으로 2가지의 ORM 라이브러리가 있다. 그중에 sequelize 모듈을 이용할 예정이다.

 

sequelize의 특징

- sequelize는 Node.js의 모듈이고 ORM 라이브러리이다.
- sequelize를 이용하여 자바스크립트 코드로 SQL을 제어할 수 있다.
- sequelize를 이용하여 다양한 '관계형 데이터 베이스'와 호환된다.

 

 

 

sequelize 설치

 

- 기본설치 

npm init -y

# express, mysql2, cors가 설치되어 있는 환경이여야 한다.
npm install express mysql2 cors sequelize dotenv

 

- 기본 세팅

    1. config 파일

 

    2. sequelize와 데이터 베이스 초기화

 

 

 

- 데이터 베이스 테이블 만들기

 

 

 

결과

 

 

 


Github

https://github.com/100space/202301/tree/main/230110

 

 

댓글