211108 TIL

CoderS·2021년 11월 8일
0

TIL DAY 95

오늘 배운 일

✔️ Node.js 백엔드 개발

  • 모델과 테이블 생성하기

    • 일반적으로 하나의 데이터베이스 안에는 여러가지 테이블을 만들 수 있다.

    지금은 직원 저장용 테이블을 생성해보겠다.

    중요한 포인트!

    • Sequelize에서는 데이터베이스에 존재하는 하나의 테이블이 자바스크립트 코드에서 하나의 class로 대응이된다.

    • 이 클래스로 만든 객체는 결국 해당 테이블에서 하나의 row로 해당이된다.

      출처 : 코드잇

      그리고 Sequelize-cli 명령으로 직원 정보테이블에 대응되는 멤버라는 클래스를 성생해보겠다.

      특정 명령어는....

      출처 : 코드잇

      위에 빨간색으로 칠해진 것은 model를 생성한다는 의미이다.
      모델이란 하나의 테이블에 대응되는 하나의 클래스를 의미한다.

      그 특정 모델의 이름은 Member라고 할 것이고, 그 다음부터는 모델들의 속성들이 쭉 나열되어있다.

      보면은, 각각의 속성 이름들과 데이터타입이 보인다.

      id속성이 안보인다?

그 이유는 sequelize에서는 기본적으로 i라는 column을 추가해준다.

위에 있는 코드를 실행하면, 두 가지의 파일이 생성된다.

가장 먼저할 일!

  • 만든 COWORK 데이터베이스에 직원 정보를 관리하는 테이블을 만드는 것이다.

  • migrations 디렉토리안에 방금만든 파일을 선택한다.

  • 해당 파일을 사용하면 테이블을 만들 수 있다.

    migrations이란?

    • 데이터베이스에 일어나는 모든 변경사항을 의미한다. (ex 테이블 생성, column 수정)

      예 )

위에 있는 코드는 어떠한 객체 하나를 웹으로 공개중이다.
up과 down이라는 메소드가 존재한다.

맨 위에있는 up 메소드는 migrations을 적용할 때 사용되고, down 메소드는 migrations을 적용해제할 때 사용이된다.

up 메소드는 Members라는 테이블을 생성하는 메소드
createTable은 테이블을 생성하는 메소드

위에 코드는, 정의했 던 member 모델의 대응되는 테이블을 실제로 데이터베이스에 만드는 코드이다.

down 메소드에서 dropTable은 테이블을 삭제하는 메소드

Sequelize 특징!

  • 단수형태로 이름을 지었어도, 테이블을 이름은 자동으로 복수형으로 변환시킨다.

    위에 코드를 잘 보면, 정리한 적이 없는데 자동으로 포함이 된 column이 존재한다.

    보통 테이블을 설계할 때, 해당 row의 생성시간과 갱신시간을 colum들을 추가하는 경우가 많다.

    Sequelize-cli에서 자동으로 명령을 추가해준다.

    대신에 매번 직접 값을 넣지않아도 현재 시간이 자동으로 설정해보겠다.

    defaultValue라는 값을 설정하면, column에 값을 넣어주지 않았을 때 기본값을 지정할 수 있다.

    드디어 members 테이블을 생성해본다.

    터미널에...

    위에 명령어는 migrations 디렉토리에 있는 모든 migrations 파일들을 적용하라는 뜻!

    실행하면, COWORK 데이터베이스안에 members라는 테이블이 생성이된 것 이다.

  • 테이블 지우기

    • ORM을 공부하다보면, 새로운 테이블을 지우거나 만들기도 한다.

    터미널로 직접 코드 실행해보기

    가장 최근에 적용된 migration 하나를 해제하는 명령이다.

    reverted라는 파일들이 해제된 migrations이다.

    다시 테이블을 생성할려면....

끝으로 :

  • 오늘은 Sequelize을 사용해서 테이블을 생성하거나 지우는 방법을 알아냈다.

  • npx가 패키지를 관리하는 모듈이라는 것을 배우면서 npm은 로컬 모듈에 저장되는 반면, npx는 일회성으로 새로운 패키지 버전이 있으면 기존의 파일을 삭제하고 실행시키는 장점이있다.

  • npm은 새로운 버전이 있으면, 기존의 정보를 제거하고 새롭게 설치를 한다.

  • 너무나도 알아야하는게 많아서 힘들다.

    (npm install npx -g) <- npx 설치방법

profile
하루를 의미있게 살자!

0개의 댓글