반응형

전체 글 211

[프로그래머스/Python] 등굣길 - Level3

https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 이 문제는 동적계획법 문제로 왼쪽 위 집에서부터 모든 경우의 수를 계산하며 학교까지 가면 되는 문제였다. 최단 경로로 가기 위해서는 오른쪽이나 아래쪽으로만 움직여야 하므로 [i][j] 위치에 오는 방법은 [i-1][j] 에서 오른쪽으로 움직이거나 [i][j-1] 에서 아래쪽으로 움직이는 방법이다. 따라서 경우의 수를 구할 때 오른쪽이나 아래쪽만 고려해..

[Node.js+MYSQL] 시퀄라이즈 (2) (Sequelize)

https://soohyun6879.tistory.com/162 [Node.js +MYSQL] 시퀄라이즈 (1) (Sequelize) 시퀄라이즈란? (Sequelize) 시퀄라이즈는 ORM 입니다. 즉, 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입니다. 시퀄라이즈는 여러 가지 데이터베이스와 연결할 수 있습니다. soohyun6879.tistory.com 이전 포스팅에 이어서 시퀄라이즈에 대해 살펴보겠습니다. 이번 포스팅에서는 모델을 정의하고 모델 사이의 관계를 정의해보겠습니다! 1. 모델 정의하기 시퀄라이즈를 통해 MYSQL과 연결하기 위해서 MYSQL에서 정의한 테이블을 시퀄라이즈에서도 정의해야 합니다. (MYSQL 의 테이블 = 시퀄라이즈의 모델) 모델은 models 폴더 안에 정의..

Back-end/Node.js 2021.07.18

[Node.js +MYSQL] 시퀄라이즈 (1) (Sequelize)

시퀄라이즈란? (Sequelize) 시퀄라이즈는 ORM 입니다. 즉, 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입니다. 시퀄라이즈는 여러 가지 데이터베이스와 연결할 수 있습니다. 시퀄라이즈가 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문에 자바스크립트만으로 데이터베이스를 조작할 수 있습니다. MYSQL 설치방법은 따로 다루지 않겠습니다! 설치가 다 완료되었다는 가정 하에 시작합니다 1. MYSQL에 테이블 생성하기 먼저 테이블을 생성하기 전에 테이블을 생성할 데이터베이스를 생성합니다. 다음 명령어를 MYSQL 프롬프트에 입력합니다. create database nodejs default character set utf8; use nodejs; 데이터베이스 생성 후 테이블을 생성합니다..

Back-end/Node.js 2021.07.18

[Node.js] 템플릿 엔진 사용하기 (Pug, Nunjucks)

템플릿 엔진은 자바스크립트를 사용해서 HTML를 렌더링할 수 있게 합니다. 대표적인 템플릿 엔진인 퍼그(Pug) 와 넌적스(Nunjucks) 에 대해 간단히 살펴보겠습니다. 1. 퍼그 (Pug) 먼저 퍼그를 사용하기 위해 퍼그를 설치해줍니다. npm install pug 익스프레스와 퍼그를 연결해줍니다. views 는 템플릿 파일들이 위치한 폴더를 지정하는 것입니다. view engine 은 어떠한 종류의 템플릿 엔진을 사용할지를 나타냅니다. // app.js const express = require('express'); const app = express(); app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname..

Back-end/Node.js 2021.07.16

[Node.js] req, res 객체의 여러가지 메서드

Express의 req, res 객체의 여러가지 메서드에 대해 살펴보겠습니다! req req.app - app 객체에 접근할 수 있다. ex) req.app.get('port') req.body - body-parser 미들웨어가 만드는 요청의 본문을 해석한 객체 req.cookies - cookie-parser 미들웨어가 만드는 요청의 쿠키를 해석한 객체 req.ip - 요청의 ip 주소 req.params - 라우트 매개변수에 대한 정보가 담긴 객체 req.query - 쿼리스트링에 대한 정보가 담긴 객체 req.signedCookies - 서명된 쿠키들 req.get(헤더 이름) - 헤더의 값 res res.app - app 객체에 접근할 수 있다. res.cookie(키, 값, 옵션) - 쿠키를 ..

Back-end/Node.js 2021.07.16

[Node.js] 라우터 분리하기

app.get 같은 메서드를 "라우터" 라고 합니다. app.js 에 라우터를 많이 연결하면 코드가 길어지고 복잡해지므로 라우터를 분리해보겠습니다! routes 폴더를 만들고 그 안에 라우터를 분리하여 저장하겠습니다. const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('Hello, Express'); }); module.exports = router; const express = require('express'); const router = express.Router(); router.get..

Back-end/Node.js 2021.07.16

[Node.js] 미들웨어

미들웨어 미들웨어란? - 구조 내에서 중간 처리를 위한 함수 1) express 프레임워크에서 사용할 수 있는 중간 처리 목적의 소프트웨어 : 기본적인 express 구조 내에서 처리 목적으로 사용 2) 요청에 대한 응답을 완수하기 전까지 다양한 일을 처리할 수 있음 3) 미들웨어 함수 생명주기 : request - response 응답을 주기로 종료됨 4) 미들웨어 함수 우선순위 : 먼저 로드되는 미들웨어 함수가 먼저 실행됨, 코드 순서가 중요함 app.use('/', (req, res, next) => { console.log('모든 요청에서 실행되는 미들웨어.'); next(); }); app.get('/', (req, res, next) => { console.log('GET / 요청에서만 실행되..

Back-end/Node.js 2021.07.13

[프로그래머스/Python] 정수 삼각형 - Level3

https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 이 문제는 동적계획법 문제로 꼭대기부터 최대값이 될 수 있도록 업데이트하며 풀어야 하는 문제였다. 양쪽 끝인 경우에는 그 전 줄의 양쪽 끝에만 영향을 받으므로 값을 비교할 필요 없이 더해주기만 하면 된다. 가운데인 경우에는 그 전 줄의 두 값에 영향을 받으므로 값을 비교하여 더 큰 값을 더해주면 된다. 다음 예시를 보면 이해하기 더 쉬울 것이다. 예시로 이런 삼각형이 있다고 하겠다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ..

[프로그래머스/Python] N으로 표현 - Level3

https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 이 문제의 로직은 다음과 같다. 1. 숫자 N을 사용하는 숫자당 만들 수 있는 숫자 조합을 만든다. 2. 만들어진 숫자 조합에 number이 있으면 리턴한다. 3. 만들어진 숫자 조합에 없다면 1-2번 과정을 반복한다. N이 5인 경우를 생각해보자. 숫자 5를 1번 사용할 때 5 숫자 5를 2번 사용할 때 55 (이어붙이는 경우) 5+5(10), 5-5(0), 5*5(25), 5/5(1) 숫자 5를 3번 사용할 때 555 (이어붙이는 경우) 5+55(60), 5-55(-50), 5*55(275), 5/55(1/11) 5+(5+5)(15), ..

[Node.js] Express 프로젝트 생성하기

첫번째 방법은 프로젝트에 들어갈 파일을 하나씩 만들어 가면서 프로젝트를 생성하는 것이고, 두번째 방법은 기본 세팅이 다 되어 있고 빠르게 프로젝트를 생성하는 것입니다! 기본 세팅을 하기 귀찮고 빠르게 프로젝트를 생성하고 싶다면 두번째 방법을 참고하시면 좋을 것 같습니다 :) 1. 천천히 프로젝트 생성하기 package.json을 생성하기 위해 아래 명령어를 입력하면 여러 가지 옵션을 설정할 수 있게 콘솔에 나타날 것입니다. 아래 사진처럼 옵션들을 설정해주면 됩니다. 자유롭게 설정해도 괜찮습니다! npm init express를 설치해줍니다. 설치가 완료되면 node_modules 라는 폴더가 생성되고, package.json의 dependencies에 express가 추가된 것을 볼 수 있습니다. npm..

Back-end/Node.js 2021.07.11
반응형