[MySQL/Project] myPage - 데이터베이스

박우현·2021년 1월 11일
0
post-thumbnail

➕ MySQL 데이터베이스

myPage 프로젝트를 MySQL 데이터베이스 기반으로 변경하는 과정을 기록한다.

✔ Update 1 (21.1.11)

변경점

  • 모든 탭을 파일 기반이 아닌 MySQL 데이터베이스 기반으로 변경. 단, 이미지는 포함하지 않고 텍스트만 이동

변경방법

//mysql 모듈 설정
let mysql = require('mysql');
let db = mysql.createConnection({
  host    : 'localhost',
  user    : 'root',
  password: '111111',
  database: 'test'
});

//db와 연결
db.connect();

//MySQL를 명령어 사용, 데이터를 추출
db.query(MySQL 명령어(e.g. 'SELECT * FROM table'), function(error, results, fields){
  //'table[i].열'의 형식으로 값을 추출할 수 있다.
});

개선방안

  • 이미지를 MySQL 데이터베이스에 저장하는 방법
  • 이모티콘을 MySQL 데이터베이스에 깨지지 않게 저장하는 방법

✔ Update 2 (21.1.12)

- 모든 탭에 CUD 기능을 추가

- 데이터베이스에서 경로를 읽어오는 방식으로 이미지 구현

  • Blob 포맷으로 저장하는 방법이 있으나, Blob의 경우 메모리를 약 30%정도 더 많이 사용하므로 파일의 경로를 데이터베이스에 저장하고, 경로를 데이터베이스에서 불러오는 식으로 구현

- 데이터베이스에 이모지 저장을 구현

  1. 데이터베이스를 utf8mb4로 생성 또는 변경
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
CREATE DATABASE database_name DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_unicode_ci;
  1. Connection을 생성할 때 charsetutf8mb4로 설정
let db = mysql.createConnection({
  host    : 'localhost',
  user    : 'root',
  password: 'zxcvZXCV',
  database: 'myPage',
  charset : 'utf8mb4'
});

개선방안

  • 페이지 구현
  • 로그인 구현

✔ Finished (21.1.12)

이모티콘이 안되서 하루종일 삽질했는데, 다음날 보니 한줄만 추가하면 되는 것이었다... 너무나 허무하지만 프로그래밍이 원래 그런 것이라... 그래도 구현 하고나니 후련하다. 이제 페이지와 로그인도 구현해보자!

0개의 댓글

관련 채용 정보