일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- dfs
- logger
- MySQL
- winston
- css
- 알고리즘
- 인접행렬
- 프로그래머스
- node.js
- html
- 인접리스트
- Interceptor
- java
- LifeCycle
- 코딩테스트
- GraphQL
- 변수
- OOP
- TIL
- nestjs
- javascript
- Spring
- Deep Dive
- 자료구조
- JWT
- typescript
- 탐욕법
- queue
- bean
- REST API
- Today
- Total
목록분류 전체보기 (227)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kQjMV/btshPphH12m/s0SeyWTEf6bmkvPV82Tcj0/img.png)
우리의 목표 : 자바스크립트를 이용해서 Node.js가 갖고 있는 기능을 호출하여 우리가 웹 애플리케이션을 Node.js로 만들 수 있게하는 것. 이제 Node.js의 영역으로 넘어가서 웹 애플리케이션을 구현하는 아주 중요한 스킬을 알아보자. => 주인공은 url 이다. URL의 형식 1) Protocol : 통신규칙 사용자가 서버에 접속할 때 어떤 방식으로 통신할 것인가에 대한 부분. HTTP : (Hyper Text Transfer Protocol) 웹서버와 웹브라우저가 서로 데이터를 주고 받기 위해서 만든 통신 규약. 2) Host (domain) : 호스트 인터넷에 접속되어 있는 각각의 컴퓨터를 호스트라고 부른다. (opentutorials.org)는 특정 인터넷에 접속되어 있는 컴퓨터를 가리킨다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/brnJy1/btshKQNpf55/ZNRkaMa55rTawds7JeyiFk/img.png)
1. Node.js의 등장 - 웹이 등장한 직후 여러가지 불만들이 쏟아져 나왔다. 수많은 html을 직접 타이핑해서 직접 웹페이지를 수정하는 것에 지침. 방문자들이 마음대로 글을 올리게 하고 싶었지만 그들에게 직접 html의 수정 권한을 주는 것은 위험했고 =>곧 성장의 한계에 직면하게 됐다. - 선구자들 : 귀찮고 반복적인 html 작업은 기계에게 시키자.. 컴퓨터공학자들은 이미 자바스크립트에 익숙한 웹개발자들이 새로운 언어를 배우지 않고도 웹페이지를 자동으로 생성하는 서버쪽 애플리케이션을 만들 수 있게하고 싶어했다. => Node.js 출현 - 1995년 : 넷스케이프사에서 브랜든 아이크에게 자바스크립트의 제작을 의뢰 => 자바스크립트 탄생. (웹은 사람과 상호작용하는 애플리케이션의 면모를 갖추게 됨..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dVeTos/btshBmfjDV0/nyQO9LaeG2Cq8y6OdRk7X1/img.png)
1. 숫자 관련 함수들 ROUND 반올림 CEIL 올림 FLOOR 내림 SELECT ROUND(0.5), // 1 CEIL(0.4), // 1 FLOOR(0.6); // 0 SELECT Price, ROUND(price), CEIL(price), FLOOR(price) FROM Products; ABS 절대값 SELECT ABS(1), ABS(-1), ABS(3 - 10); // 1, 1, 7 SELECT * FROM OrderDetails WHERE ABS(Quantity - 10) < 5; // 6~14까지의 숫자를 나타내줘 GREATEST (괄호 안에서) 가장 큰 값 LEAST (괄호 안에서) 가장 작은 값 SELECT GREATEST(1, 2, 3), // 3 LEAST(1, 2, 3, 4, 5)..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b58Eve/btshKRFeRJG/r5iBWxl07dWQN5GRLp9XMK/img.png)
1. 사칙연산 +, -, *, / 각각 더하기, 빼기, 곱하기, 나누기 %, MOD 나머지 SELECT 1 + 2; SELECT 5 - 2.5 AS DIFFERENCE; SELECT 3 * (2 + 4) / 2, 'Hello'; SELECT 10 % 3; 문자열에 사칙연산을 가하면 0으로 인식 SELECT 'ABC' + 3; => 3 SELECT 'ABC' * 3; => 0 SELECT '1' + '002' * 3; -- 숫자로 구성된 문자열은 숫자로 자동인식 SELECT OrderID + ProductID FROM OrderDetails; SELECT ProductName, Price / 2 AS HalfPrice FROM Products; 2. 참/거짓 관련 연산자 SELECT TRUE, FALSE;..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dgMwOK/btshCdI5Yee/fGpkmJpKFmSKj48seI1xxK/img.png)
MySQL 실습 관련 진행 https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_all MySQL Tryit Editor v1.0 WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, and Opera. If you use another browser you will still be able to use our Try SQL Editor, but a different version, usin www.w3schools.com SELECT : 내가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bFRq3P/btshE0vi6KE/WezglBucYFBTHNbSgZL9a1/img.png)
JavaScript의 데이터 타입은 크게 두 가지로 나뉜다. 두 개의 구분 기준은 값의 저장 방식과 불변성 여부이다. [기본형과 참조형의 구분 기준] 복제의 방식 기본형 : 값이 담긴 주소값을 바로 복제 참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제 불변성의 여부 (데이터 값이 아닌, 메모리 관점에서 봐야 한다) 기본형 : 불변성을 띔 참조형 : 불변성을 띄지 않음 불변성의 경우, 기본형이 이해되지 않을 수 있다. 이를 위해서는 메모리와 데이터에 관한 기본 지식이 필요하다. 1, 메모리, 데이터 - 비트 컴퓨터가 이해할 수 있는 가장 작은 단위 0,1을 가지고 있는 메모리를 구성하기 위한 작은 조각을 의미 이러한 작은 조각이 모여서 메모리가 만들어진다. - 바이트(byte) 0과..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cQStQo/btshyoQ1pyE/o1JXe8h2eugG2xCAh6dnq0/img.png)
app.listen도 모듈화가 가능하다. www.js 만들기 app.js 'use strict'; // express 사용해보기, 모듈 const express = require('express'); const app = express(); //라우팅 const home = require("./routes/home") // 앱 세팅 app.set("views","./views"); app.set("view engine","ejs"); app.use('/', home); // use -> 미들 웨어를 등록해주는 메서드. // app 내보내기 module.exports = app;
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dUzSS7/btshydorZ6Q/Xcbc9eYoOGVnrdU3flNBb1/img.png)
Index.js에 있는 MVC의 컨트롤러를 분리해보자. home.ctrl.js //Controller 분리 const home = (req,res)=>{ res.render("./home/index"); } const login = (req,res) => { res.render("./home/login") } module.exports = { home, login }; index.js const express = require('express'); const router = express.Router(); //Controller 분리 후 Import const ctrl = require('./home.ctrl'); router.get('/',ctrl.home) router.get('/login',ctrl..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bflJr6/btshy6WcVdw/ISUs05ljUHDCRF31Ke7u11/img.png)
router를 분리하여 app.get을 따로 정리한다. index.js 파일 - express module의 router 메서드를 불러와서, 따로 파일을 제작했다. - 이후 module.exports 를 통해 모듈로 던지기 'use strict'; const express = require('express'); const router = express.Router(); router.get('/',(req,res)=>{ //render를 통해서 index.ejs를 불러온다. res.render("./home/index"); }) router.get('/login',(req,res)=>{ res.render("./home/login"); }) module.exports = router; app.js 파일 -..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oAbeg/btshyLY5J7C/KIFWJleMTjnwHJxwOKA460/img.png)
app.get() 내부의 html을 정리하기 위하여 render를 사용할 것이다. 먼저 app.set을 진행한다. // 앱 세팅 app.set("views","./views"); app.set("view engine","ejs"); 이후 views폴더와 home 폴더를 제작한다. 이후 app.get 내부를 res.render 메소드를 통하여 index.ejs를 불러온다. app.get('/',(req,res)=>{ //render를 통해서 index.ejs를 불러온다. res.render("./home/index"); }) app.get('/login',(req,res)=>{ res.render("./home/login"); })