본문 바로가기

Web Develop/Note

[조코딩 웹 개발 5주 완성] 5주차 정리 - DB없이 게시판 만들기, CRUD

 

 

DataBase(DB)

여러 사람이나 프로그램이 데이터를 쉽게 공유하기 위해 체계적으로 관리되는 데이터의 집합

 

변수나 리스트가 데이터베이스와 개념은 같지만 차이점은 변수나 리스트는 프로그램을 종료하면 없어져버리고 데이터베이스는 그렇지 않다는 것이다.

 

DB없이 게시판 만들기

 

1. 리스트 변수 만들기

 

2. content라는 변수에 req.body 값을 넣어주고 comment 리스트에 push한다. (제대로 값이 넣어졌는지 확인을 위해 comments를 출력해본다.)

 

3. index page에 댓글 목록 보여주기

 

index.js(백엔드)

 

 

index.ejs(프론트엔드)

 

4. post 방식에 작성한 코드를 보면 응답을 hi라고 보내준다고 되어있는데 다시 get 방식 '/' 경로로 가도록해야 index page가 나오므로 res.redirect('/')로 바꿔 적어준다.

 

 

정리

get 방식으로 index page를 보여줌(백엔드) ➡ 프론트엔드 ➡ post 요청을 보내면 ➡ 응답으로 redirect를 통해 '/' 경로로 이동하여 get 방식으로 실행된다.

 

DB처럼 값을 추가하고 삭제할 수 있는 기능을 만들 수 있지만 저장이 되지 않아 새로고침을 하면 다 사라져버리는 단점이 있다. 

 


 

DB로 게시판 만들기

 

SQLite

 

CRUD

Create 어떤 값을 생성하는 것
Read 어떤 값을 조회하는 것
Update 어떤 값을 수정하는 것
Delete 어떤 값을 삭제하는 것

 

 

Nodejs가 SQL언어를 이용해서 명령을 내리면 SQLite 파일이 명령을 받아 값을 추가하거나 삭제하는 등 기능을 수행할 수 있다.

 

 

ORM (Object Relational Mapping) 

JavaScript를 이용해서 SQL이 자동으로 생성되도록 함

 

ex)

JavaScript

comments.findAll({where: {id: 1}});

SQL

SELECT * FROM comments WHERE id = '1';

 

 

ORM을 통해 JavaScript 언어를 이용하여 DB 값을 추가하거나 삭제하는 등의 기능을 할 수 있다.

 

 

 

 

SQLite를 이용해서 DB 구현하기

 

 

ORM을 사용하기 위해서 Sequelize를 이용하여 SQL 구문을 쓰지 않고 JavaScript로 전달하도록 만들어준다.

 

https://sequelize.org/

 

Sequelize

Sequelize is a modern TypeScript and Node.js ORM for Postgres, MySQL, MariaDB, SQLite and SQL Server, and more. Featuring solid transaction support, relations, eager and lazy loading, read replication and more.

sequelize.org

 

1. sequelize 공식 사이트에 있는 모듈 설치 방법에 따라 sequelize와 sqlite3 npm 모듈 2개를 vscode에 설치해준다.

 

 

 

2. sequelize 모듈 사용 방법을 보고 필요한 코드를 복사해서 vscode에 붙여넣어준다.

 

 

더 자세히 보기 위해 Defining Models에 들어가서 

 

이 코드를 복사붙여넣기한다.

 

 

 

기존의 코드를 지우고 넣어준다.