[포스코 x 코딩온] 웹 풀스택 6주차 회고 -1

sima·2023년 8월 13일
0

KDT web-8

목록 보기
6/17
post-thumbnail

데이터베이스

데이터를 저장하는 집합소

RDBMS

관련된 데이터에 대한 저장/접근 제공 (MySQL, ORACLE, MariaDB 등..)

  • 열(Column, Attribute, 속성)
  • 행(Record, Tuple, 튜플)
  • 테이블(Table, Relation)

데이터베이스 용어

  • key - DB에서 튜플을 찾거나 정렬할 때 구분하고 기준이 되는 속성
    • 기본키(PK, Primary Key) - 테이블에서 특정 행을 유일하게 구별할 수 있는 속성(중복, null 불가)
    • 외래키(FK, Foreign Key) - 테이블의 기본키를 참조하는 속성

MySQL

mysql u- root -p - 사용자명 root, 비밀번호 이용해 mysql 접속

SQL 문법

DDL(Data Definition Language)

데이터베이스 혹은 테이블을 정의하는 언어
CREATE - 생성, ALTER - 수정, DROP - 삭제, TRUNCATE - 테이블 초기화

CREATE

CREATE DATABASE 이름 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; - 한글 인코딩

CREATE TABLE 테이블명 (
	필드1 형식,
    필드2 형식...
    id VARCHAR(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    birthday DATE NOT NULL
);
  • 문자형 데이터 형식
    • CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
  • 숫자형 데이터 형식
    • TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DECIMAL, DOUBLE
  • 날짜형 데이터 형식
    • DATE, TIME, DATATIME, TIMESTAMP, YEAR

ALTER

테이블 특정 컬럼을 삭제하거나 추가, 변경

//컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
//컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 타입;
//속성 변경
ALTER TABLE 테이블명 MODIFY 컬럼명 타입;

DELETE

DROP TABLE 테이블명;

TRUNCATE TABLE 테이블명;

DROP은 테이블 자체를 삭제, TRUNCATE는 테이블의 데이터들을 모두 초기화

DML(Data Manipulation Language)

데이터베이스의 내부 데이터 관리
SELECT - 데이터 조회, INSERT - 데이터 추가, UPDATE - 데이터 수정, DELETE - 데이터 삭제

CRUD

컴퓨터 소프트웨어가 가지는 기본적인 처리기능
Create - 생성, INSERT
Read - 읽기, SELECT
Update - 갱신, UPDATE
Delete - 삭제, DELETE

INSERT

INSERT INTO 테이블명 (필드1, 필드2..) VALUES (값1, 값2...);

INSERT INTO 테이블명 VALUES (값1, 값2...); //모든 컬럼에 추가

SELECT

SELECT * FROM 테이블명;

SELECT 필드1, 필드2 FROM 테이블명
	WHERE 필드1 = 조건값1
    	ORDER BY 필드1 ASC;

WHERE 연산자
BETWEEN a AND b - a와 b 값 사이에 있으면 참
IN (list) - 리스트 값중에서 하나라도 일치하면 참
LIKE '문자열' - 비교문자열과 일치하면 참(% - 0개 이상, _ - 1개 이상 단일문자)
IS NULL - NULL값인 경우 참

UPDATE

UPDATE 테이블명 SET 필드1 = 값1 WHERE 필드2 = 조건2;

DELETE

DELETR FROM 테이블명 WHERE 필드1 = 값1;

MVC 패턴

애플리케이션을 3가지 역할로 구분하여 사용자가 Controller 조작 시 Model을 통해 데이터를 가져오고, 그 데이터를 View를 이용해 사용자에게 보여지는 방식
Model - 데이터를 처리
View - UI 처리(사용자에게 보여지는 부분)
Controller - View와 Model을 연결

MVC패턴 장단점

  • 장점
    • 패턴들을 구분해 개발
    • 유지보수 용이
    • 유연성, 확장성이 높음
  • 단점
    • 완벽한 의존서어 분리가 어려움
    • 설계단계가 복잡
    • 설계 시간이 오래걸리며 단위가 많아짐

Node에서의 MVC 패턴 구조

Controller - view와 model 연결
Model - 데이터 처리
routes - url 경로 설정
views - ui 관련 처리

app.js

//app.js
import router from './routes';
app.use('/', router);

-> 위 코드 이용해 특정 시작 url의 역할 구분 가능


routes/index.js

//routes/index.js
import * as controller from '../controller/mainController.js';
const router = express.Router();

router.get('/', controller.main);
router.get('/comments', controllelr.comments);

export default router;

-> 경로를 controller와 연결해 설정 가능

controller/mainController.js

export const main =(req, res)=> {
	res.render('index');
};

export const comments =(req, res)=> {
	res.render('comments');
};

404 error 라우팅

app.get('*', (req, res)=> {
	res.render('404');
});

1개의 댓글

comment-user-thumbnail
2023년 8월 13일

큰 도움이 되었습니다, 감사합니다.

답글 달기