일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- phaser
- jQuery
- 웹소켓
- Cookie
- Servlet
- 암호화
- PL/SQL
- JavaScript
- autowired
- Spring
- express
- AWS
- model1
- 알고리즘
- Ajax
- 비트코인
- 블록체인
- EC2
- SQL
- CSS
- JSP
- websocket
- tiles.xml
- 도커
- node.js
- docker
- HTML
- 배포
- RDS
- 웹게임
- Today
- Total
목록전체 (390)
記錄
아침 : 바나나 1개 + 비스킷 3개점심 : 돈까스 작은거 하나저녁 : 햄버거 단품 하나 + 자몽에이드 + 토마토 작은거 세 개 운동
아침 : 신체검사로 인해 굶음점심 : 밀면 한 그릇 + 만두 4 개 + 빽다방 라떼 한 잔 + 아이스크림 1개(신체검사로 인한 굶음으로 인한 보상심리로 조금 많이 먹음....)저녁 : kfc 세트 운동내일 면접으로 인해 휴식
아침 : 미숫가루 50 g + 보충제 30 g + 저지방 우유 400 ml점심 : 바나나 두 개 + 저지방 우유 400ml + 보충제 30g저녁 : 피자 두 조각 + 콜라 반 잔 운동 사이클 30분레그 컬 5레그 익스텐션 5사이드 레터럴 레이즈 5프론트 레터럴 레이즈 5 1시간 20분
Node.js 교과서국내도서저자 : 조현영출판 : 길벗 2018.08.01상세보기 좋은 Node.js 강의를 찾았는데 이 강의가 위 책을 기반으로 한 강의였다. 물론 강의는 저 책이 없어도 진행이 되지만 강의를 다 듣고 괜찮으면 책을 사서 복습을 할 계획이다. 경험상 인터넷 강의는 핵심만 짚고 넘어가는 편이고 책을 보면 더 자세하게 나와있었다(물론 정보의 과잉 제공인 경우도 있는 것 같다) 강의는 유투브에 개설되어 있는데 8월 중으로 인프런에 유료로 올라간다고 하니 따로 여기 링크를 달지는 않고 듣다가 유료로 전환 되거나 유료로 전환되기 전에 다 듣게 되면 인프런 url을 출처로 올려야겠다
아침 : 바나나 두 개 + 토마토 두 개 + 닭가슴살 200g + 녹즙 1 팩점심 : 미숫가루 30g + 보충제 30g저녁 : 한강 갔음 치킨 + 떡볶이 + 김밥....................(노알콜) 운동바벨 로우 7하이 풀리 드롭 5벤치 프레스 6인클라인 6케이블 크로스 오버 5해머 컬 5이지바 컬 드롭 3케이블 프레스 다운 로프 드롭 5 1시간 50분
아침 : 바나나 두 개 + 닭가슴살 200g점심 : 일반식 정량 + 바닐라 크림 콜드브루저녁 : 국밥 + 소주 운동휴식 오늘 다같이 저녁을 먹어서 저녁에 술을 먹게됨. 운동은 스킵.
이번 강의에서는 라우트 분리하기를 배웠다. 사실 요청이 많아지면 컨트롤러를 어떻게 관리하나 궁금했었는데 딱 마지막 수업에 이런 코너가 있었다. 패키지로 나누는 것이 아니고 파일로 나누는 것이었는데 현업에서도 이런 식으로 분리해서 사용하는지 궁금해졌다. 라우트의 기능은 특정한 요청 주소를 잡아서 한 곳으로 돌리는 기능을 한다. 그래서 코드를 깔끔하게 정리하는데 사용할 수 있다. moduleTest.jsvar express = require('express');var app = express(); var shopping_fruit = require('./route/fruit')();app.use('/fruit', shopping_fruit); var shopping_drink = require('./rout..
이번 강의에서는 모듈을 배웠다. 늘 require() 를 통해 모듈을 불러서 app.use() 앱에 모듈을 붙이고 사용해 왔었는데 이번에는 모듈을 내가 정의하고 필요할 때에 사용하는 방법에 대해서 배웠다. 특별한 것은 없었다. 1. 사용할 모듈을 정의한 .js파일을 만들고 아래와 같이 exports 할 자원들의 이름과 기능을 정의한다.2. 컨트롤러에서 require('경로')로 모듈.js를 call 한 뒤에 함수를 끌어다 쓴다. module.jsmodule.exports.plus_jk = function(a, b){ return a + b;} module.exports.minus_jk = function(a, b){ return a - b;} moduleTest.js var module = require..
위에서 배웠던 jade 모듈의 extends 기능에 대해 배웠다. 스프링에서의 tiles와 유사하다. app.jsvar express = require('express');var app = express(); app.set('view engine', 'jade');app.set('views', './views'); app.get('/first', function(req,res){ res.render('first');}); app.get('/second', function(req,res){ res.render('second');}); app.listen(3003, function(){ console.log('Connected 3003 port!!!');}); layout.jadehtml head body ..
아침 : 바나나 두 개 + 녹즙 한 팩점심 : 일반식 정량저녁 : 일반식 + 맥주 500 운동사이클 30분바벨로우 스미스 7이지바 컬 5해머 컬 5 1시간오늘 약속이 있어서 어쩔 수 없는 음주를 했으나 가볍게 했고 운동을 가기 싫었지만 잘 참고 운동을 가서 아주 열심히 했다. 뿌듯함.
아침 : 토마토 두 개 + 바나나 한 개 + 보충제 30g점심 : 일반식 정량저녁 : 치맥 운동오늘 약속으로 인해 휴식
아침 : 바나나 두 개 + 닭가슴살 200g점심 : 일반식저녁 : 토마토 두 개 + 바나나 한 개 + 닭가슴살 200g + 참치 한 캔 운동사이클 30분레그 컬 5케이블 프레스 다운 로프 드롭 7 1시간
아침 : 바나나 두 개 + 토마토 세 개 + 보충제 30g점심 : 미숫가루 50g + 보충제 30g + 저지방 우유 400ml저녁 : 닭가슴살 200g + 바나나 두 개 운동 하이풀리 드롭 5시티드 로우 5바벨로우 프리 5 머신 3 해머 컬 드롭 5이지바 컬 3 1시간 20분
암호화에 관련하여 좋은 포스트를 찾았다(아래 링크)(https://d2.naver.com/helloworld/318732) 이번 강의에서 배운 것은 pbkdf2 이다. pbkdf2는 salt를 자동 생성해주고 조금더 많은 경우의 수를 통해 보안 수준을 강화한 암호화 기법이다. 위키를 찾아보니 brute force attacks의 리스크를 낮추는 것을 목표로 만들어졌다고 한다.var express = require('express');var bkfd2Password = require("pbkdf2-password");var hasher = bkfd2Password();var app = express(); var pwd = { password : '12345asd'}; app.get('/pbkfd2_test..
이번 강의에서는 암호화에 대해서 배웠다. 설계상의 결함으로 인해 더 이상 암호화에 md5를 사용하진 않는다고 한다. 하지만 강의에서 md5를 이용해서 강의를 했기 때문에 일단 md5를 포스팅 한다. 다만 강의 후반부에서 md5대신 sha256을 사용하며 이젠 md5를 사용하지 않고 sha를 사용해야 한다고 하는데 이것 역시 변할 수 있다며 언급한다. sha256을 쓰려면 아래 코드에서 md5를 sha256으로만 바꿔주면 작동한다. 복호화 관련해서 아무래도 md5가 너무 쉽게 뚫리게 되어서 더 이상 md5를 사용하지 않는 것 같다.(그냥 근거없는 내 추측이다) salt는 md5만 단순히 거치게 되면 해킹의 우려가 있어 소금을 치듯이 md5를 거치기전에 암호화할 정보에 붙이는 임의의 문자열을 의미한다. 다중..
이번 강의에서는 express에서 session을 활용하는 법에 대해서 배웠다. 스프링과 달랐던 점은 굳이 플러그인을 설치해야 한다는 것 말고는 특별히 다른 것이 없었다. 생각해보면 스프링에서 import 하는 모든 것들이 npm에서 install 하는 것과 같은 것 같다. var express = require('express');var session = require('express-session');var app = express(); app.use(session({ // session 값 저장에 쓰이는 암호화 key secret: '1234DSFs@adf1234!@#$asd', // 접속 할 때마다 매번 새로운 session 발행 여부 resave: false, // 세션이 저장되기 전에 unin..
아침 : 일반식 정량(잡곡밥)점심 : 타로티, 단팥빵 반 개저녁 : 일반식 정량(잡곡밥) 운동 휴식
아침 : 일반식 정량점심 : 바나나 두 개 + 단백질 30g저녁 : 일반식 정량 (조금 짰다) 운동사이클 30분사이드 레터럴 레이즈 드롭 6프론테 레터럴 레이즈 6 총 1시간 10분 나트륨 조절 주의하자. 신경을 잘 안쓰는듯... 식단을 좀 더 체계화 할 필요가 있다(체계화 = 식단의 한정)
cookie에 저장하는 정보가 민감하고 private 한 정보라면 암호화할 필요성이 있다.개발자 도구에서 cookie를 눌러보면 정보가 다 보이기 때문이다. 물론, jsp를 배울때도 마찬가지고 node.js를 배울 때도 마찬가지고 사실 민감한 정보 자체를 cookie에 저장할 일은 없는데항상 괜히 session을 배우기 전에 cookie를 배우면서 이런 개념을 알려준다(어느 인강이나 비슷한 것 같다) 아무튼 암호화 자체도 스프링보다 훨씬 가볍고 쉬웠다 암호화 전 암호화 후 cookie의 값을 보안상의 이유로 암호화 할 수 있는데 방법은 다음과 같다. const express = require('express');const cookieParser = require('cookie-parser');const ..
아침 : 닭가슴살 200g + 바나나 1개 + 물 300 => 쉐이커점심 : 일반식 정량저녁 : 잡곡밥 + 닭가슴살 200g + 바나나 1개 운동벤치 프레스 7백 팩 플라이 7인클라인 5케이블 프레스 다운 로프 드롭 7사이클 15분 1시간 30분
아침 : 바나나 두 개, 녹즙 1 팩, 단백질 30g점심 : 정량저녁 : 고기먹으러 갔음 + 쏘맥 두 잔 운동하이풀리 6바벨로우 7티바로우 7로프 해머 컬 드롭 7이지바 머신 3 1시간 10분 해머컬 하다가 뒷 부분에 반동을 살짝 줬는데 그 때 인대가 조금 다친 것 같다. 미세하게 통증이 있다.
이번 강의에서는 Express에서의 cookie 활용에 대해 배웠다. 스프링과 좀 달랐던 점은 더 간편하다는 것이다.확실히 node.js 환경 자체가 스프링에서 하던 것 보다 모든 것이 가볍고 간편한 느낌이다. const express = require('express');const cookieParser = require('cookie-parser');const app = express(); app.use(cookieParser()); app.get('/count',function(req, res){ let count; if(req.cookies.count){ // cookie 에서 가져오는 값은 모두 String type이 디폴트 count = parseInt(req.cookies.count); } ..
이번 강의에서는 간단하게 파일 업로드를 하는 방법에 대해서 배웠다.const express = require('express');const bodyParser = require('body-parser'); // multer 모듈 추가const multer = require('multer'); // multer 모듈을 통해 미들웨어를 리턴해주고 upload에 할당// dest는 destination의 줄임말로 경로 설정을 한다const upload = multer({ dest: 'uploads/' })const app = express(); app.locals.pretty = true;app.set('view engine', 'jade');app.set('views', './views');app.use(e..
세이브를 기준으로 코드의 변화를 감지해서 자동으로 서버를 껐다가 켜주는 기능을 Watch라고 한다고 한다. 그리고 Watch 기능을 가진 여러가지 소프트웨어가 있지만 그 중 이번 강의에서 소개된 프로그램은 supervisor 이다. 1. 설치npm install supervisor -g(전역으로 사용할 수 있도록 설치) 2. 사용supervisor app.js (node app.js (X)) 서버가 올라가게 되고 이제 코드에 변화가 있으면(변화만 해서는 안되고 save를 해야 감지) supervisor가 변화를 감지하고 서버를 알아서 내렸다가 다시 올리게 된다
아침 : 바나나 두 개, 녹즙 한 팩점심 : 일반식 정량저녁 : 일반식 정량 맥주 두 잔, 마른안주운동 X
이번 강의에서는 Express 에서 post 방식으로 데이터를 보내고 이를 컨트롤러에서 받는 것을 해보았다.스프링과 약간 다른 점이 있었다. 가장 큰 차이점이라고 한다면 굳이 post로 넘어온 데이터를 인식하기 위해서 따로 플러그인을 설치해줘야 한다는 점이었다.순서대로 정리한다. const express = require('express'); // bodyParser라는 모듈을 가져오게 된다const bodyParser = require('body-parser'); const app = express(); app.locals.pretty = true;app.set('view engine', 'jade');app.set('views', './views');app.use(express.static('publ..
Node.js 에서 쿼리스트링으로 보낸 값을 어떻게 받는지에 대한 간단한 수업이었다. 스프링과 크게 다를 것은 없었으나 어떤 객체에서 뽑아내는지 알아두는 것이 좋았다 query string (쿼리 문자열, 쿼리 스트링)- 데이터를 전달하기 위한 URL의 일부분 - GET 방식 파라미터 전달 문자열 1. 요청http://localhost:3000/querystring?id=12. 응답app.get('/querystring', function(req, res){ res.send(req.query.id);});이해를 돕기 위해 전체 플로우를 다시 짚고 넘어가자면 app.get()에서 첫번째 파라미터로 설정한 요청을 express가 받게 되면 해당 요청에 대해 매핑된 function()(둘째 파라미터)이 cal..
아침 : 닭가슴살 200g, 잡곡밥 반 공기, 계란 두 개점심 : 일반식 (정량보다 약간 더)저녁 : 닭가슴살 200g, 잡곡밥 반 공기, 계란 두 개 레그프레스 7레그 익스텐션 7사이클 20분숄더프레스 5사이드 레터럴 레이즈 5프론트 레터럴 레이즈 52시간 할게 많았는데 운동하느라 시간을 다 써버리고 그냥 자버렸다. 밸런스 조절이 필요한 것 같다.
이번 강의에서는 템플릿 엔진을 사용하는 방법을 배웠다. 템플릿 엔진은 말 그대로 템플릿을 제공하는 데에 본질적인 목적이 있다. 템플릿을 왜 제공하냐고 물어본다면 결국 반복을 최소화 하여 더욱 편하게 프로그래밍 하도록 해준다고 대답할 수 있다. 강의에서는 Jade로 쓰고 있는데 express 공식 사이트에서는 pug로 설명하고 있었다. 그래도 강의를 따라 Jade로 install 시켰는데 deprecated가 떴다. 그래서 찾아보니 Pug가 구Jade 인데 저작권 문제로 강제 개명(?) 당했다고 한다. 아무튼 일단 강의를 따라 했으니 Jade로 포스팅 한다. 1. npm을 통해 jade install 한다(이젠 jade 대신 pug를 써야 할 것)npm install jade --save 2. 내부적으로 ..