MySQL, Prisma?

shockwave·2024년 9월 10일

TIL

목록 보기
25/49

RDBMS

"관계형 데이터베이스 모델 시스템"
테이블, 행(row), 열(column)로 표 방식으로 정보를 구조화한 데이터베이스 모델 시스템입니다.

기본적으로 모든 테이블에는 "기본 키(Primary key)"라는 속성이 있고
각 행은 "기본 키"에 대한 참조인 "외래 키(foreign key)"를 가질 수 있습니다.

이와 같이 서로가 밀접하게 관련있어(Reliable) 관계형 데이터베이스 모델이라 부릅니다.

잘 알려진 RDBMS에는 MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database가 있습니다.

그 중 오픈소스, 무료인 MySQL에 대한 사용법을 익히고 Prisma (Node.js의 ORM 라이브러리 중 한 종류) 사용법에 대해서도 배웠습니다.

Azure, GCP, AWS 등의 클라우드로부터 인스턴스를 빌려 데이터베이스화 한 후 사용하려 할 때
관계형 데이터베이스 모델의 주요 이점은 직관적인 데이터 표현 방법을 제공하고 관련 데이터 포인트에 쉽게 액세스할 수 있게 해준다는 점입니다.

관계형 데이터베이스인 RDBMS와 비관계형 데이터베이스인 NoSQL은 서로 다른 용도의 데이터베이스입니다.
정형화된 데이터베이스 구조인가 vs 가용성이 높은 데이터베이스 구조인가

게임 서버에 대해 공부하는 입장에서,
수많은 계정과 캐릭터들의 아이템 정보를 관리하려면?
정형화된 데이터베이스 구조를 통해 일률적으로 관리하는 것이 편합니다.

MySQL을 공부해봅시다.

  • VScode에서 익스텐션(확장)버튼을 눌러 mysql을 검색하고 프로그램을 받으면
  • 탐색기 버튼을 누른 후 툴바 하단부분에 MYSQL이 생성됩니다.
    잠시 VScode를 다시 껐다켜서 십자버튼 부분을 눌러 세팅하면 간단한 테이블들이 생성이 될 것입니다.

Prisma?

Prisma는 객체와 해당 객체데이터에 대해 요청받고 응답해주는 데이터베이스 사이를 맵핑(연결)시켜주는 ORM 툴입니다.

Prisma를 쓰는 이유는 간단합니다.
Raw Query와 같은 원시코드는 상대적으로 코드의 유연성이 떨어진다고 볼 수 있습니다.
가령, MySQL을 사용 중에 Oracle이라는 RDBMS로 마이그레이션하려 할 때 Raw Query의 경우 모든 코드를 바꿔줘야하는 수고로움과 미처 바꾸지 못한 코드로 인해 서버에 어떤 오작동을 초래할 수 있는 위험성을 함께 갖고 있습니다.
하지만 ORM은 속성값만 변경해주면 유동적으로 코드관리가 가능합니다.

Prisma를 사용하고 싶은 폴더가 있다면
해당 폴더의 VScode 터미널에서 간단한 명령어로 설치가 가능합니다.

  • #npm / yarn 사용시 슬래시로 구분#
    #프로젝트를 생성한 디렉토리위치의 터미널에서 사용해야합니다.

  • #prisma 의존성을 추가해주기

npm i prisma / yarn add prisma 
  • #.env를 생성해 db서버의 민감한 정보를 숨기기
npm i dotenv / yarn i dotenv
  • #node.js 환경에서 prisma 사용을 허용하기
npm i @prisma/client / yarn add @prisma/client
  • #prisma 초기화
npx prisma init / yarn prisma init

설치가 끝나면 prisma 폴더가 생성되고 그 안에 스키마 파일이 하나 생깁니다.
그 스키마 파일 내에서 prisma 문법에 따라 명령어를 적용하여 객체(테이블)를 만들고 객체 내 변수(컬럼)을 정의할 수 있습니다.

profile
생각을 많이. 입은 무겁게. 심장은 항상 열심히 뛰는 사람이 되자.

0개의 댓글