전체 글 132

DBMS RDBMS Transaction

DBMS(Database Mangement System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 데이터를 생성해 주고 디비를 관리해 주는 소프트웨어이다. - 데이터들을 소프트웨어가 안정적으로 사용하려면 각 정보들마다 일정한 형태가 있어야 한다. - 특정 소프트웨어나 프로그램에 종속되지 않고 독립된 정보의 저장소이다. - 데이터를 계층 또는 탐색 형식으로 저장한다. - 파일 시스템을 사용해 저장하며 각 테이블 간에는 관계가 없다. - 데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수도 있다. RDBMS(Relational Database Management) 관계형 모델을 기반으로 하는 구조화된 DBMS 한 유형이다. - 각 테이블은 서로 연관..

데이터베이스 2022.05.08

TIL 220506

TIL 220506 오늘은 화요일에 결제한 인프런 MySQL 강의를 처음 듣기 시작했다. 얄팍한 코딩 사전이라는 유튜버의 강의이다. 전반적인 프로그래밍 기본 개념을 초보자 입장에서 재치 있게 잘 설명해 주신다. 강의의 장점이라 하면 코드 설명에서 끝나 게 아니라 그 코드를 직접 실행해 보면서 응용하는 방법까지 자세하게 설명해 주신다. 근대 말의 속도가 조금 많이 빨라 0.75배로 듣고 있다. 하지만 문제없다. 강의 내용이 이해하기 좋게 구성되어 있어 여러 번 돌려보면서 수강할 계획이다 쿼리라고는 셀렉문만 간단하게 알고 있었는데 이번에 셀렉문에대해 조금 더 많은 사용법을 알게 되었다. 에스큐엘은 건에 맞는 데이터만 조회하는 아주 간단한 언어로 알고있었는데 막상 직접 공부하고 실습해 보니 간단한게 아니었 조..

기타/회고 2022.05.06

TIL 220505

TIL 220505 오늘은 어린이날이다. 공휴일지만 나에겐 평일과 별다를 게 없는 날이었다. 이틀 연속 재대로 안했었는데 그래도 오늘은 제법 많은 시간을 공부해서 기분이 좋다. 포스트맨을 사용해봤는데 굉장히 편하다. 어떤 용도인지는 알았지만 실제로 사용해보니 왜 이제야 쓰는걸까싶다. 시퀄라이즈를 배우고 기능을 구현해본지 한달이 넘었는데 그동안 미뤄왔던 모델 간 관계에대해 포스팅을 전부 끝냈다. 일대일 일대다 관계는 포스팅 시간이 그렇게 오래 걸리지않았는데 다대다 관계 막상 포스팅을 하려고 구현해보니 막상 생각대로 되지않아 애를먹었다. 하지만 이번 포스팅을 기회로 명확하게 이해한 거 같아 다행이다. 이제 ORM을 사용해 모델 간 관계 설정하는 이해도는 많이 향상된 거 같다. 하지만 서버 개발자는 필연적으로..

기타/회고 2022.05.05

Sequelize N:M associate

Sequelize N:M associate JOIN 기능을 구현하기 위해 시퀄라이즈 모델 간의 관계를 설정하기 위한 메서드이다. N:M 게시글 모델과 게시글에 속해있는 해시태그 모델 간의 다대다 관계 - 게시글 하나의 여러 개의 해시태그가 속할 수 있다. - 해시태그 하나가 여러 개의 게시글의 속할 수 있다. - belongsToMany 메서드로 표현한다. - 다대다 관계 특성상 중간 테이블이 생성된다. const Sequelize = require("sequelize"); module.exports = class Post extends Sequelize.Model { static init(sequelize) { return super.init({ title: { type: Sequelize.STRING..

데이터베이스 2022.05.05

Sequelize 1:N associate

Sequelize 1:N associate JOIN 기능을 구현하기 위해 시퀄라이즈 모델 간의 관계를 설정하기 위한 메서드이다. 1:N 유저 모델과 유저가 작성한 게시글 모델 간의 일대다 관계 - 유저 한 명은 게시글을 여러 개 작성할 수 있다. - 게시글 하나는 한 명의 사용자만 갖는다. - 유저 모델 hasMany/sourceKey 게시글 모델 belongsTo/targetKey - belongsTo를 사용하는 모델에 UserId 컬럼이 추가된다. const Sequelize = require("sequelize"); module.exports = class User extends Sequelize.Model { static init(sequelize) { return super.init({ emai..

데이터베이스 2022.05.05

Sequelize 1:1 associate

Sequelize 1:1 associate JOIN 기능을 구현하기 위해 시퀄라이즈 모델 간의 관계를 설정하기 위한 메서드이다. 1:1 유저 모델의 정보를 담고 있는 세부 정보 모델 간의 일대일 관계 - 사용자 모델과 사용자의 세부 정보를 담고 있는 모델 간의 관계는 1:1이다. - 사용자 한 명은 자신의 정보를 담고 있는 테이블과만 관계가 있다. - 세부 정보 테이블도 한 사람만을 가리킨다. - 유저 모델 hasOne/sourceKey 세부 정보 모델 belongsTo/targetKey - belongsTo를 사용하는 모델에 UserId 컬럼이 추가된다. const Sequelize = require("sequelize"); module.exports = class User extends Sequeli..

데이터베이스 2022.05.05

TIL 220504

TIL 220504 오늘도 어제와 마찬가지로 공부를 거의 않했다. 급작스럽게 퇴사 한 친구랑 만나 많은 얘기를 나누었다. 고등학교 친구인데 나와 마찬가지로 미래에 대한 걱정이 많은 거 같다. 아무래도 어린 나이가 아니라서 새롭게 뭔가를 시작하는 부분에 대한 걱정이 많은 거 같았다. 그래서 내 상황을 얘기해 주면서 현재에 충실하라고 조언을 해주었다. 어제와 마찬가지로 평소 같았으면 집에 오자마자 잠을 청했을테지만 스터디 덕분에 이렇게 일기를 쓰고잔다. 내일은 어린이날 공휴일이다. 지금의 나에겐 평일과 별다를 게 없다. 어제오늘 쉬었으니 내일과 또 다가올 주말 내 미래에 대한 걱정을 덜어내기 위해 최선을 다하자.

기타/회고 2022.05.04

Sequelize Model

Sequelize Model MySQL 테이블이랑 대응된다. - 테이블 생성은 CMD / IDE / 시퀄라이즈 모델을 통해 만드는 총 3가지 방법이 있다. - 기본적으로 모델 이름은 앞 글자 대문자와 단수형으로 테이블 이름은 소문자와 복수형으로 만든다. 모델 생성 models 폴더에 user 파일을 생성한다. const Sequelize = require("sequelize"); module.exports = class User extends Sequelize.Model { static init(sequelize) { return super.init({ email: { type: Sequelize.STRING(100), allowNull: false, unique: true, }, password: { ..

데이터베이스 2022.05.04

TIL 220503

TIL 220503 개발 공부 한 지 4개월 차인데 요즘 따라 현타가 많이 온다. 이 현자 타임은 앞으로의 미래에 대한 걱정인 거 같 공부를 하면 할수록 타입스크립트 데이터베이스 레디스 등 너무나도 방대한 내용에 겁이 난다. 하지만 어쩔 수 없다. 서버 개발자가 되려면 해야만 한다. 남들 4년 공부하는 동안 비전공자인 나는 이쪽 세계에 관심조차 없었으니 고작 4개월 공부하고 뭔가를 기대하고 바라는 게 세상의 이치에 맞지 않다. 오늘은 개인 사정으로 공부를 많이 안 했다. MySQL의 필요성을 느껴 강의를 결제하고 개념을 공부하고 내 블로그의 카테고리를 새롭게 구성하였다. 블로그라는 게 하면 할수록 작지만 아주 큰 영향을 끼치는 거 같다. 그날 공부한 내용을 정리하고 필요하면 다시 찾아보고 왜 진작하지 않..

기타/회고 2022.05.03

Sequelize ORM

Sequelize 노드에서 관계형 데이터베이스를 쉽게 다룰 수 있게 해주는 라이브러리이다. - MySQL MariaDB PostgreSQL SQLite MSSQL 등 여러 데이터베이스에서 사용 가능하다. - sequelize는 전부 비동기 Promise 기반으로 작동한다 ORM 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다. 장점 - 별도의 쿼리문을 작성하지 않아도 자바스크립트로 구현이 가능하다. - 대량의 쿼리를 쓰지 않고도 객체 간의 관계를 설정할 수 있기에 테이블 간 관계를 객관적으로 파악 가능하다. - ORM은 독립적으로 작성되어 있고 해당 객체들은 재사용이 가능하기에 유지 보수가 좋다. - 데이터베이스 마이그레이션을 쉽게 할 수 있다. 단점 - 프로젝트의 복잡성이 높아질 경우 ..

데이터베이스 2022.05.03