데브코스/강의 정리

2주차 DB와 메인 페이지 연동하기

케케_ 2024. 8. 28. 14:11

데이터베이스(Darabase; DB)

: 데이터를 통합하여 효울적으로 관리하기 위한 데이터 집합체
--> 데이터 구조화해 관리 -> 데이터 중복 막고 효율적이고 빠른 연산 가능

  • DBMS(DataBase Management System)
    • 종류(브랜드): Oracle, MySQL, MariaDB
  • SQL(Structured Query Language)
    : 데이터베이스에 연산을 요청하기 위해 사용되는 언어
    • 데이터 생성, 조회, 수정, 삭제 등 기능 수행
    • 대표적 SQL
      • 데이터 삽입: INSERT
      • 데이터 조회: SELECT
      • 데이터 수정: UPDATE
      • 데이터 삭제: DELETE
      • 데이터 생성: CREATE

Docker와 MariaDB

  • Docker로 MariaDB 설치
    • (설치) pocker pull mariadb
      • 도커에게 마리아db를 당겨와라 명령(도커는 원래 마리아db를 가지고 있음)
    • (실행) docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
      • 3306: 포트넘버
      • MYSQL_ROOT_PASSWORD=root: password는 root로 설정
    • (mariadb가 있는 컨테이너 접속) docker exec -it mariadb /bin/bash
      • 위 명령어 중 mariadb: 도커 사진의 컨테이너 중 하나
        • mariadb 컨테이너 안에 mariadb 관련 설치를 다 해둠
      • (mariadb 실행): mysql -u root -p --> mariadb -u root -p
        • 강사님은 mysql을 사용했지만 mariadb를 사용해야 돌아감
        • 슬랙에서 다른 분들의 말씀으로 보면 버전 차이라고 함 (어떻게 찾으신거지,,)
      • 비밀번호: root

SQL

  • docker로 mariadb 실행하기
    1. docker desktop 실행
    2. 터미널 실행
    3. mriadb가 있는 컨테이너 접속: docker exec -it mariadb /bin/bash
    4. mariadb 실행: mysql(또는 mariadb) -u root -p

SQL: CREATE(데이터 저장소 만들기)

  • 데이터를 저장할 방 만들기
    • 방 확인: SHOW DATABASES;
    • 방 만들기: CREATE DATABASE Tennis;
    • 방 들어가기: USE Tennis;
  • 방 안에 저장소 만들기 (틀)
    CREATE TABLE member
    (
  • id INT, //아이디 열 -> 실습에선 문자열로
  • name VARCHAR(30), //네임 열
  • pwd VARCHAR(30) //pw 열
  • );
  • 테이블(틀)에 데이터 넣기 (SELECT, INSERT)
    • 테이블 데이터 조회
      : SELECT 컬럼명 FROM 테이블명;
    • 테이블 데이터 삽입
      : INSERT 컬럼명1, 컬럼명2, ...INTO 테이블명
      • 컬럼명을 꼭하지 않아도 됨
      • 확인
      • 확인 시 모두 다 확인하는 간편한 방법 (*)
        • 데이터 삽입 후 전체 확인
      • 특정 데이터 조회
        : SELECT 컬럼명 FROM 테이블명 WHERE 조건;
    • VALUES (컬럼1 데이터, 컬럼2 데이터,...);
    • 테이블 데이터 수정
      : UPDATE 테이블명 SET 컬럼명 = 수정할 값 WHERE 조건;
      ex) UPDATE member SET pwd = 'zzzzz' WHERE id = 'tennisking';

      • !주의!
        • 조건을 달지 않을 경우 테이블의 모든 해당 값이 변함
    • 테이블 데이터 삭제
      : DELETE FROM 테이블명 WHERE 조건;
      ex) DELETE FROM member WHERE name = 'park songa';
    • WHERE 절이 없으면 데이터 전체 삭제 가능

벡엔드 제대로 맛보기

node.js와 데이터베이스 연동

  • tennis 방에 product 저장소 만들기
    • 필드 타입을 잘못 입력해 alter을 사용해 수정
  • 실습 테이블 생성
  • npm install mysql --save
    • mysql 모듈 설치 명령, vscode 터미널에 작성함
      npm: node.js의 명령어
    • package~ 나 node_modules와 같은 새로운 파일과 폴더들이 생김
  • 데이터베이스와 node.js 연결하기
    1. 폴더와 파일 생성
      • database 안 connect 안 mariadb.js 파일 생성
    2. 연결

    • localhost:8888/ 치면 main과 함께 테이블 데이터 출력



메인 페이지 연동하기

  1. 화면 바꾸는 방법 (main.html으로)

    • 그림 넣어주기

    • css가 적용이 안됨 -> css를 html 파일 내부에 작성
  2. INSERT 해주기
    • 요청을 handler에 url로 해야
    • ++++++++++++++++
    • 보완예정