Node => 서버구현!!
- http
- server <-> client
- request / response
- cookie
- cluster
- 별도의 공간에 Data를 담아놓을 수 있는 시스템
=> DataBase- DataBase를 효율적으로 관리할 수 있는 관리체계 DBMS
- MySQL / DBMS
- Node <-> MySQL 어떻게 연동 시킬건지?
cmd =>
netstat -ano
로컬주소 : 3306 => 과거에 MySQL을 설치했다는 뜻
win + R =>
%appdata%
MySQl 폴더 삭제
win + R => %programdata%
MySQl 폴더 삭제
win + R => resmon.exe
cmd => 우클릭 관리자권한으로 실행 => taskkill
taskkill /F /PID5552
=> 3306 라인 PID 개인마다 다를수 있음
데이터베이스 관리 시스템 : 어떤걸 설치 하려고?
1) 명령프롬프트 창에서 직접 코드
2) 워크벤치 (*GUI) 데이터 테이블 편집
DEVELOPER ZONE => 맨밑 푸터영역
MySQL Community Server
클릭
클릭
클릭
클릭
1) cd 'mySQL bin 폴더 경로'
2)mysql -h localhost -u root -p
성공
나가는 방법 : exit
1) MySQL이 설치된 폴더에서만
=> mysql -h localhost -u root -p
적용!
2) 패스워드 (*대.소문자 가린다)
3) 기존에 누군가가 설치해놓은 포트와 충돌
CREATE SCHEMA
nodejs
DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
워크벤치 사용시 :
CREATE TABLE nodejs.users (
엔터
id INT NOT NULL AUTO_INCREMENT,엔터
name VARCHAR(20) NOT NULL,엔터
age INT UNSIGNED NOT NULL,엔터
married TINYINT NOT NULL,엔터
comment TEXT NULL,엔터
created_at DATETIME NOT NULL DEFAULT now(),엔터
PRIMARY KEY(id),엔터
UNIQUE INDEX name_UNIQUE (name ASC))엔터
COMMENT = "사용자 정보"엔터
ENGINE = innoDB;엔터
use nodejs;
DESC user;
성공!
CREATE TABLE nodejs.comments (
-> id INT NOT NULL AUTO_INCREMENT,
-> commenter INT NOT NULL,
-> comment VARCHAR(100) NOT NULL,
-> created_at DATETIME NOT NULL DEFAULT now(),
-> PRIMARY KEY(id),
-> INDEX commenter_idx (commenter ASC),
-> CONSTRAINT commenter
-> FOREIGN KEY (commenter)
-> REFERENCES nodejs.users (id)
-> ON DELETE CASCADE
-> ON UPDATE CASCADE)
-> COMMENT = "댓글"
-> ENGINE = InnoDB;
SHOW TABLES;
DESC comments;
DESC users;
테이블 :
row : 행
column : 열
filed : 행과 열이 만나는곳 ex) 엑셀 => 셀
자바스크립트, 타입스크립트, 리액트
=> CRUD 법칙으로 소스코드를 작성하고 있었다!!Cteate
Read
Update
Delete
대부분의 컴퓨터 소프트웨어 및 프로그램들이 가지고 있는 기본적인 데이터 처리기능을 4개의 섹션으로 요약해놓은 개념
Create :
1) 메인페이지 / 일기 작성페이지 / 일기 상세페이지
=> 라우터 / 화면에 출력할 컴포넌트 고민Read :
2) 화면출력을 위해 필요한 소스코드 및 저장공간
=> 네비게이트 / 이벤트Update :
3) 투두리스트가 변경되거나 추가되어야할 때 작성해야하는 소스코드 및 저장공간
=> 이벤트 / 저장공간(*배열 혹은 객체)Delete :
4) 투두리스트 안에 입력되어있던 목록을 실행했을때, 불필요한 목록이 되었을 때 삭제~!! 삭제할 수 있는 소스코드
=> 이벤트 / 삭제처리할 함수 및 기능
user에 값 추가 :
INSERT INTO nodejs.users (name, age, married, comment) VALUES ('park', 20, 0, '자기소개1');
INSERT INTO nodejs.users (name, age, married, comment) VALUES ('kim', 32, 1, '자기소개2');
comments에 값 추가 :
INSERT INTO nodejs.comments (commenter, comment) VALUES (1, '안뇽하세요 park의 댓글 입니다');
추가된 값 보기 :
SELECT * FROM nodejs.users;
: 특정 값 보기
SELECT name, married FROM nodejs.users;
: 조건에 맞는 값 보기
SELECT name, married FROM nodejs.users WHERE married = 1 AND age > 30;
SELECT id, name FROM nodejs.users WHERE married = 0 OR age > 30;
내림차순 정렬로 보기 :
SELECT id, name FROM nodejs.users ORDER BY age DESC;
내림차순 정렬인데 첫번째 보여지는 값만 보기 :
SELECT id, name FROM nodejs.users ORDER BY age DESC LIMIT 1;
내림차순 정렬 중 첫번째 보여지는 값의 조회된 다음 값 :
SELECT id, name FROM nodejs.users ORDER BY age DESC LIMIT 1 OFFSET 1;
업데이트 :
UPDATE nodejs.users SET comment = '바꿀내용' WHERE id = 2;
삭제 :
DELETE FROM nodejs.users WHERE id = 2;
브릿지 역할 :
=> 누군가 라이브러리 / 플러그인 / 패키지 만들어놨으니 찾으면 됨 = 맵핑
라이브러리 :
시퀄라이즈 = Sequelize
=> 자바스크립트 언어를 기반으로 작동(맵핑)
설치 :
npm i
express
morgan
nunjucks
sequelize = 맵핑역할
sequelize-cli = 자바스크립트에 설치
mysql2
npm i express morgan nunjucks sequelize sequelize-cli mysql2
nodemon 설치 :
npm i nodemon -D
sequelize 실행 :
npx sequelize init
models > index.js 커스텀 :
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.