본문 바로가기

프로그래머스 풀스택 데브코스/데브코스 TIL

웹 풀사이클 데브코스 TIL 9일차

데이터베이스

데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체

DBMS

  • DataBase Management System
  • 주요회사: 오라클, MySQL, MariaDB

SQL

  • Structured Query Language
  • 데이터베이스에 연산을 요청하기 위해 사용되는 언어. 생성, 조회, 수정, 삭제 등의 기능

Docker

OS 위에서 도커를 한층 쌓고 각각의 컨테이너를 제공해서 그 안에 어플리케이션을 넣어서 사용한다.

마리아 디비 당겨오기

  • docker pull mariadb
    마리아 디비 설정
  • docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
    마리아 디비가 있는 컨테이너 접속
  • docker exec -it mariadb /bin/bash
  • mariadb -u root -p

CREATE

  • DB 확인: SHOW DATABASES;
  • DB 만들기: CREATE DATABASE dbname;
  • DB 들어가기: USE dbname;
  • Table 확인: SHOW TABLES;
  • Table 만들기: CREATE TABLE member
    (
    속성명1 속성타입1,
    속성명2 속성타입2
    );

SELECT

  • SELECT 컬럼명 FROM 테이블명;
  • SELECT 컬럼명 FROM 테이블명 WHERE 조건;

INSERT

  • INSERT 컬럼명1, 컬럼명2 INTO 테이블명 VALUES(컬럼1 데이터, 컬럼2 데이터);

UPDATE

  • UPDATE 테이블명 SET 컬럼명 = 수정할 값 WHERE 조건;

DELETE

  • DELETE FROM 테이블명 WHERE 조건;

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

  • npm install mysql --save
  • database/connect 폴더 안에 mariadb.js 파일생성
    const mariadb = require('mysql');
    

const conn = mariadb.createConnection(
{
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'Tennis'
}
);

module.exports = conn;

이후에는 각각
```javascript
const mariadb = require('./database/connect/mariadb');

로 선언해서

mariadb.query("select * from product", function(err, rows){
        console.log(rows);
    });

와 같은 방식으로 사용한다.

이미지 경로

이미지는 로컬 경로를 그대로 쓰면 인식이 안된다.

function redRacket(response){
    fs.readFile('./img/redRacket.png', function(err, data){

        response.writeHead(200, {'Content-Type' : 'text/html'});
        response.write(data);
        response.end();
    });


}

let handle = {};
handle['/img/redRacket.png'] = redRacket;

와 같은 방식으로 직접 서버에서 전송해주어야 한다.

헷갈렸던 부분


handle[pathname](response, productId);

라우터에서 handle에 있는 함수를 콜하는데 인자를 두개를 넘겨주었다.

하지만 안에 있는 함수들은 매개변수가 한개인 함수도 있고 두개인 함수도 있다.

만약 매개변수가 한개인 함수가 콜된다면 첫번째 인자인 response가 전달되는 것으로 보인다.

후기

node js로 간단한 하나의 사이트를 만들어보았다. 아직 익숙하진 않지만 노드의 구성에 대해 어느정도 알 수 있었다.

키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프