데브코스/강의 정리 56

6주차 db 연동

모듈 만들기 :  mudule.exports = 내보낼객체../ : 현재 폴더의 상위 폴더 conn.query( 'SELECT * FROM `user`', function (err, results, fields){} );디비의 쿼리 들고 오기 `SELECT * FROM user WHERE email= ?`,eamil,vscode에서 sql 작성리팩토링주석은 요즘엔 최소한하는게 트렌드안쓰는 변수는 삭제긴문자열은 변수에 담아 사용하기 (아래코드 참고 sql)let sql = `SELECT * FROM user WHERE email= ?` conn.query( sql, email, function (err, results) { let loginUser = resul..

5주차 데이터 베이스 GUI, 디비 연동, timezone 설정

workbench 설치 후 connections 옆 + 버튼을 눌러줌hostname : 서버가 있는 위치, 즉 내 컴퓨터를 나타내는 ip / localhost 라고 작성해도 됨port : 데이터 베이스 설치할 때 설정함 schemes에 내가 CLI 로 작성한 데이터들을 확인할 수 있음 각 데이터 베이스의 테이블을 선택하면 아래에 컬럼들의 정보를 확인 가능  명령어 치기 전 원하는 스키마의 데이터 베이스를 더블 클릭새로운 스키마 생성  디비 연동npm 의 mysql2에 나온 예제코드// Get the clientimport mysql from "mysql2/promise";// Create the connection to databaseconst connection = await mysql.createCo..

5주차 데이터 베이스 CLI

SQL 외우지마 - (약속)명령어 : 대문자테이블 이름 : 첫글자는 대문자 1. "board" 스키마 생성CREATE DATABASE Board;   // 방 만들기USE Board;   // 방 들어가기 2. 사용자 테이블 생성CREATE TABLE users (  id INT NOT NULL AUTO_INCREMENT,  name VARCHAR(30) NOT NULL,  job VARCHAR(100),  birth DATE,  // "YYYY-MM_DD"  PRIMARY KEY (id)); 3. 사용자 데이터 삽입INSERT INTO users (name, job, birth)VALUES ("gonhu","actor","800123");VALUES ("kim","student","100101");VA..

5주차 백엔드 심화 RDBMS, PK, FK, 테이블간 관계

데이터 베이스란?: 데이터를 효율적으로 관리하기 위한 집합체 (DB) 장점중복 막기빠른 연산 DBMS: 데이터 베이스를 운영하고 관리하는 시스템 SQL : 데이터베이스에 연산 요청 RDBMS 쓰는 이유Relational DBMS : 데이터 간 "관계"중복되는 데이터 관리에 탁월!  -> 테이블 분리(정규화) 데이터 중복 cf. 정규화 = 테이블을 쪼갠다.  PK(Primary Key): 기본키: 해당 테이블의 각 행(row)을 유니크하게 구별할 수 있는 key 값 FK(Foreign Key): 외래키: A테이블에서 B테이블의 데이터를 찾아가고 싶을 때, 사용하는 key 값최대한 B테이블의 PK 값을 A테이블의 FK로 쓰는 것이 이상적 데이터베이스 "테이블 간 어떤 연관 관계를 가지고 있는지" -  1:1..

5주차 Object.keys(객체이름), 채널 api 설계

빈 객체{}를 확인하는 방법 3가지객체.keys()forlodash : isEmpty 객체.keys()const obj1 = {};const obj2 = { msg: "cccc" };const str1 = "jjjj";console.log(Object.keys(obj1)); //length === 0console.log(Object.keys(obj2)); //length === 1console.log(Object.keys(str1).length); //length === 4 --> 문자열도 객체임(배열이니까 cf. c언어)  채널 api 설계- 채널 생성 : POST /channelsreq: body (channelTitle)res 201: ~님 채널을 응원합니다- 채널 개별 수정 : PUT /chann..

4주차

강의를 듣고 코드를 따라하는 게 과연 내 코딩에 도움이 되는건지 혼란이 오기 시작했다.강의 수강을 우선순위 1로 두고 있었는데, 아무래도 그러면 안될것 같다.뭔가 왔다갔다하며 강의를 하시는데, 정리도 안되고 내가 정말 습득하고 있는지도 모르겠다..다음주부터는 개인 프로젝트를 구상하고 구현하는걸 위주로 하면서 강의 수강 시간을 최소한으로 하는 방법을 생각해야겠다.프로젝트를 하다보면 지금 내가 수강하고 있는 부분을 사용하게 될 테니 그 때 내가 습득할 수 있을 것 같다. 핸들러,핸들러 : 요청에 의해 호출되는 메소드http request가 날아오면 자동으로 호출되는 메소드노드js : 콜백함수로, app.HTTPMETHOD(path, 핸들러)cf. 스프링 :  컨트롤러 http 상태 코드200 :  조회/수정..

4주차 foreach, map 함수/ delete와 put

foreach: 원래 배열을 사용하기 위해 만들어짐  - 콜백함수 : 전달 받은 객체 또는 배열에서 요소를 하나 꺼낸 다음 불림매개변수 순서 : 요소, 인덱스, 객체 통째로arr.forEach(function (value, index, array) { console.log(value, index, array);}); ➜ 결과1 0 [ 1, 2, 3, 4, 5 ]2 1 [ 1, 2, 3, 4, 5 ]3 2 [ 1, 2, 3, 4, 5 ]4 3 [ 1, 2, 3, 4, 5 ]5 4 [ 1, 2, 3, 4, 5 ]  - map과 함께 사용하기 / map에서 값을 하나씩 가져올 수 있음!let map = new Map();map.set(7, "seven");map.set(9, "nine");map.set(8,..

4주차 post와 postman

(복습) http method- 생성(=등록) : POST   ex. 회원가입 = 나 좀 등록해줘 = id, password, name, email, contact     --> url로 보내지 못함! body에 숨겨야..만 post인 줄 앎- 조회 : GET   ex.URL로 데이터 보냈는데? --> 어차피 body 숨길 수 없음 POST숨기는데 어떻게 테스트? postman 설치 GET 테스트- vscode에서 파일 실행 후 실습 1 - getconst express = require("express");const app = express();const port = 3000;app.get("/", (req, res) => { res.send("Hello World!");});app.post("/te..

4주차 express 구조

구조를 알아 보기 전 express-generator을 설치해야한다.설치는 아래 링크에! https://kekehome.tistory.com/28 그냥 객체 만들어서 set()을 통해 객체 담으면 됨! let db = new Map(); //데이터베이스 대신 map 사용let notebook = { productName: "Notebook", price: 2000000,};let cup = { productName:" data-og-host="kekehome.tistory.com" data-og-source-url="https://kekehome.tistory.com/28" data-og-url="https://kekehome.tistory.com/28" data-og-image="https://scra..