분류 전체보기 178

시퀄라이즈 ORM와 Nodejs에 mysql 연결

SQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리 ORM: Object Relational Mapping: 객체와 데이터를 매핑(1대1 짝지음) MySQL 외에도 다른 RDB(Maria, Postgre, SQLite, MSSQL)와도 호환됨 자바스크립트 문법으로 데이터베이스 조작 가능 시퀄라이즈 예제는 https://github.com/zerocho/nodejs-book/tree/master/ch7/7.6/learn-sequelize 프로젝트 세팅 후, 콘솔을 통해 경로로 이동한 후 package.json 작성 nodejs 에 mysql 연결하기!! 시퀄라이즈 명령어 사용하기 위해 sequelize-cli 설치 mysql2는 MySQL DB가 아닌 드라이버(Node.js와 MySQL을 이어주는 역할)..

Node.js 2020.12.28

mysql - CRUD 작업하기

Create, Read, Update, Delete의 두문자어 데이터베이스에서 많이 하는 작업 4가지 INSERT INTO 테이블 (컬럼명들) VALUES (값들 SELECT 컬럼 FROM 테이블명 SELECT * 은 모든 컬럼을 선택한다는 의미 컬럼만 따로 추리는 것도 가능 WHERE로 조건을 주어 선택 가능 AND로 여러가지 조건을 동시에 만족하는 것을 찾음 OR로 여러가지 조건 중 하나 이상을 만족하는 것을 찾음 ORDER BY로 특정 컬럼 값 순서대로 정렬 가능 DESC는 내림차순, ASC 오름차순 LIMIT으로 조회할 개수 제한 OFFSET으로 앞의 로우들 스킵 가능(OFFSET 2면 세 번째 것부터 찾음) 데이터베이스에 있는 데이터를 수정하는 작업 UPDATE 테이블명 SET 컬럼=새값 WHE..

DB/관계형 DB 2020.12.28

습관 설계 법칙3 - 나만의 신호를 발견하라

안정이란 그저 정지된 상태를 말하는 것이 아니다. -클레멘스 벤첼 로타르 폰 메테르니히 [상황 신호] 습관은 늘 똑같은 신호에 반응한다. 습관은 예측할 수 없고 제멋대로 부는 비바람을 좋아하지 않는다. '다양성'은 습관을 약화시킨다. 익숙하지 않으 장소, 자연스럽지 않은 동선, 반복적이지 않은 일과 같은 다양성은 우리 삶에 자리 잡고 있는 습관의 지배력을 희석시킨다. 기존의 법칙대로 삶을 새롭게 정렬하고 재배치 한 이 토대를 자꾸 흔들고 뒤엎고 파헤친다면 습관은 결코 자리를 잡을 수 없을 것이다. 우리는 자신의 삶을 최대한 일관되게 유지해야 한다. 그렇지 않으면 습관은 마치 응달에 놓인 습관처럼 아주 천천히 자랄 수 밖에 없다. 이때 무너져 내리면 그 안에 숩어 있던 '상황 신호' 마저 한꺼번에 영영 사..

MYSQL 사용법

1. 데이터베이스 생성하기 콘솔에서 MySQL 프롬프트에 접속 CREATE SCHEMA nodejs;로 nodejs 데이터베이스 생성 use nodejs;로 생성한 데이터베이스 선택 MySQL 프롬프트에서 테이블 생성 CREATE TABLE [데이터베이스명.테이블명]으로 테이블 생성 사용자 정보를 저장하는 테이블 2. 컬럼 옵션들 id INT NOT NULL AUTO_INCREMENT -> int형 비어있으면 안됨 자동 증가 컬럼명 옆의 것들은 컬럼에 대한 옵션들 INT: 정수 자료형(FLOAT, DOUBLE은 실수) VARCHAR: 문자열 자료형, 가변 길이(CHAR은 고정 길이) TEXT: 긴 문자열은 TEXT로 별도 저장 DATETIME: 날짜 자료형 저장 TINYINT: -128에서 127까지 저..

DB/관계형 DB 2020.12.27

템플릿 엔진 사용하기

템플릿 엔진 HTML의 정적인 단점을 개선 반복문, 조건문, 변수 등을 사용할 수 있음 동적인 페이지 작성 가능 PHP, JSP와 유사함 Pug(구 Jade) 문법이 Ruby와 비슷해 코드 양이 많이 줄어듦 HTML과 많이 달라 호불호가 갈림 익스프레스에 app.set으로 퍼그 연결 res.render에서 두 번째 인수 객체에 Pug 변수를 넣음 res.locals 객체에 넣는 것도 가능(미들웨어간 공유됨) =이나 #{}으로 변수 렌더링 가능(= 뒤에는 자바스크립트 문법 사용 가능) 퍼그 파일 안에서 변수 선언 가능 뒤에 자바스크립트 사용 변수 값을 이스케이프 하지 않을 수도 있음(자동 이스케이프) for in이나 each in으로 반복문 돌릴 수 있음 ( for 도 가능 ) 값과 인덱스 가져올 수 있음..

Node.js 2020.12.23

습관 설계 법칙2 - 적절한 곳에 마찰력을 배치하라

지나치게 큰 목표를 세우지 않는 것, 이것이 목표를 달성하는 가장 쉬운 방법이다. -쿠르트 레빈 [낮은 마찰 전략] 월급 계좌에서 저축 계좌로 자동이체를 설정해 놓으면 돈을 모으기 더 쉽다는 걸 우리는 안다. 처음에는 고통스럽지만, 결국에는 자동으로 돈이 빠져나가는 것에 그다지 신경을 쓰지 않게 된다. 하지만 여기서 멈추면 안 된다. 추진과 억제를 조장하거나 방해하는 세 번째 힘을 습관 설계에 활용할 수 있다. 역장이론의 마지막 구성요소인 마찰력이다. 좀 더 쉽게 생각하자면 우버는 고객과 고객의 욕구 사이에 놓인 마찰을 제거했다. 스마트폰 버튼을 누르는 것조차 엄청난 장벽이라고 여기는 사람이 아닌 이상, 이제 미국인 들은 우버 서비스를 통해 공간 이동이라는 꽤 험난한 과제를 손쉽게 해결한다. 그렇다면 이..

라우터 객체로 라우터 분리와 req, res 객체 살펴보기

코드 : const express = require('express'); const morgan = require('morgan'); const cookieParser = require('cookie-parser'); const session = require('express-session'); const dotenv = require('dotenv'); const path = require('path'); // 라우터를 분리하는 이유 -> 너무 많아지면 코드도 복잡해지고 가독성이 떨어짐 dotenv.config(); const indexRouter = require('./routes'); // index const userRouter = require('./routes/user');// user con..

Node.js 2020.12.22

미들웨어

익스프레스는 미들웨어로 구성됨 요청과 응답의 중간에 위치하여 미들웨어 app.use(미들웨어)로 장착 위에서 아래로 순서대로 실행됨. 미들웨어는 req, res, next가 매개변수인 함수 req: 요청, res: 응답 조작 가능 next()로 다음 미들웨어로 넘어감. 에러가 발생하면 에러 처리 미들웨어로 err, req, rs, next까지 매개변수가 4개 첫 번째 err에는 에러가 관한 정보가 담김 res.status 메서드로 HTTP 상태 코드를 지정 가능(기본값 200) 에러 처리 미들웨어를 안 연결해도 익스프레스가 에러를 알아서 처리해주긴 함. 특별한 경우가 아니면 가장 아래에 위치하도록 함. const express = require('express'); const morgan = requir..

Node.js 2020.12.21

tensor flow hub -> finetune 사용하기

# Day_34_01_tfhub_finetune.py import tensorflow as tf import pandas as pd import numpy as np import matplotlib.pyplot as plt import PIL.Image as Image import tensorflow_hub as hub from tensorflow.keras.preprocessing.image import ImageDataGenerator # Fine-tuning 이란 # 남이 만들어 놓은 모듈을 내가 조금만 다듬어서 사용하겠다 # trainable=True to hub.KerasLayer이걸 써서 # resnet_50 모델을 사용해서 꽃 데이터셋에 대해 학습하고 랜덤으로 뽑은 32장의 이미지에 대해 예..

인공지능 2020.12.20

tensor flow hub 사용하기.

# Day_33_02_tfhub.py import tensorflow as tf import pandas as pd import numpy as np import matplotlib.pyplot as plt import PIL.Image as Image import tensorflow_hub as hub from tensorflow.keras.preprocessing.image import ImageDataGenerator # 오늘의 핵심 -> 안되는 컴터는 껏다 켜기 -> 접근 권한? 때문일 수도 있음 # mobilenet_v2 사용 방법 def get_image_classifier(): url = 'https://tfhub.dev/google/tf2-preview/mobilenet_v2/classif..

인공지능 2020.12.20