일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- Spring
- model1
- RDS
- phaser
- 비트코인
- HTML
- express
- PL/SQL
- AWS
- autowired
- JavaScript
- jQuery
- node.js
- 블록체인
- 암호화
- Cookie
- Ajax
- 웹소켓
- docker
- 웹게임
- websocket
- 알고리즘
- EC2
- tiles.xml
- 도커
- CSS
- Servlet
- 배포
- JSP
- Today
- Total
목록전체 (390)
記錄
const express = require('express');const app = express(); app.use(express.static('public')); app.get('/dynamic', function(req, res){ let li_tag = ''; for(let i = 0; i
const express = require('express');const app = express(); app.use(express.static('public')); app.get('/home', function(req, res){ res.send('Welcome! ');}); app.listen(3000, function(){ console.log('Connected 3000 port!')}); Node.js 에서 정적인 파일을 서비스하고 싶을 경우 Express에서 기본으로 제공하는 미들웨어 함수인 express.static을 사용하면 된다. 아래 코드와 같이 express.static()의 파라미터로 '폴더'를 설정한다. 경로를 설정한다는 것이다. 그러면 웹 상에서 파일 명을 주소창에 쳐서 직접 접..
강의에서는 Express의 기초 강의를 위해 엄청나게 간단한 웹앱을 만들고 있다. 그 내용을 여기 옮긴다.const express = require('express');const app = express(); app.get('/', function(req, res){ res.send('Welcome');}); app.get('/login', function(req, res){ res.send('login page');}); app.listen(3000, function(){ console.log('Connected 3000 port!')}); 초기에 했던 코드보다 express를 쓴 코드가 조금 더 간단해졌다.const express = require('express');const app = expres..
MEAN Stack의 전반적인 플로우 자꾸 이것 저것 하다보면 내가 지금 공부하는 것이 어떤 과정인지 큰 흐름을 놓칠 때가 많다. 그래서 용어에 대한 분명한 정의가 중요한 것 같다. 큰 그림에 대한 이해도 없이 부분 부분만 공부하는 것은 뭔가 불완전한 학습이라는 느낌이 들기 때문이다.Express에 대한 학습을 하던 중 정확히 이게 무엇인지에 대한 명쾌한 답을 못내리는 나 자신을 발견하고 MEAN Stack 전반에 대해 짚고 넘어가야 겠다는 생각이 들었다.그래서 처음 찾아본 것은 Node.js이고 W3school이 매우 잘 설명해놓은 것 같아서 여기 옮긴다 What is Node.js?Node.js is an open source server environmentNode.js is freeNode.js ..
(콜백 함수 플로우) Callback(콜백) 함수Callback(콜백) 함수란 이벤트 핸들러(함수)가 특정 이벤트가 발생 했을때 Call 당하는 함수를 의미한다. 중요한 것은 콜백 함수가 실행되는 시점이다. 콜백 함수의 실행 시점은 콜백 함수를 파라미터로 사용한 원래 함수가 끝난 시점이다. 즉, 원래 함수의 body가 끝나고서 콜백 함수가 실행된다는 의미이다. 그런 의미에서 Callback 함수는 "Call at the back" 함수라고 할 수 있다. 비동기로 뒤에서 멀티 쓰래드로 실행된다는 것이다. 적절한 설명이 stackoverflow에 있었다.(https://stackoverflow.com/questions/824234/what-is-a-callback-function) Callback(콜백) 함..
아침 : 떡국 반 그릇점심 : 일반식 (정량)저녁 : 복숭아 두 개, 닭가슴살 200g운동 후 : 복숭아 한 개 바벨로우 6하이풀리 6랫 풀 다운 드롭 6시티드 로우 6이두 컬 머신 61시간 30분
아침 : 햄버거점심 : 복숭아 2개저녁 : 일반식 걷기 2시간
Node Package Manager(NPM)자바스크립트 프로그래밍 언어를 위한 패키지 관리자. 스프링에서 pom.xml 에 이것 저것 원하는 dependency를 추가한 것과 같은 원리이다. NPM에서 원하는 패키지를 찾아서 나의 소프트웨어의 일부로 사용할지 전역적이고 독립적인 소프트웨어로 사용하기 위해 가져올지를 정해서 npm 명령어를 통해 install 한다.독립적인 소프트웨어로 설치하여 전역적으로 사용하고 싶으면 npm install -g로 설치하면 된다.그렇지 않고 자신의 소프트웨어의 모듈로서 사용하고 싶다면 npm istall --save 로 설치한다.단, 후자의 경우로 설치할 경우 working directory에 초기 패키지 설정을 해주어야 하는데 이를 위한 시동어는 'npm init' 이..
IP Address와 Port예전에 한 번 개념을 정립했었는데 이번에 강의에 나와서 다시 정리한다. 무척 쉽지만 항상 그냥 지나쳤던거라.. 흔히 IP 라고 하는 것은 사실 'IP 주소'(IP Address)를 줄여서 우리가 그냥 편하게 쓰는 용어다. 컴퓨터 네트워크 상에서 컴퓨터 장치가 서로를 인식하는 유일키 같은 개념이 IP Address이다. 전화번호와 같은 것이라고 보면 된다. 그리고 Port는 0 ~ 65535개가 존재하는데 컴퓨터가 네트워크 데이터 송수신을 위해 활용하는 '창구'나 '통로'같은 개념이다. 강의에서 나왔듯이 '항구'로서의 개념도 이해하기가 쉽다.정리하자면 IP Address로 컴퓨터를 구분하여 접속하고 Port를 통해 서버를 구분하는 것이다. 예를 들어 http://jk.com:1..
아침 : 잡곡밥 300g, 계란 3개, 닭가슴살 200g점심 : 일반식(밥 2/3), 팥빙수(절반 정도)
벤치프레스 7 인클라인 벤치 프레스 7 백 팩 플라이 7 바벨로우 7 케이블 프레스 다운 로프 7 이두 컬 머신 5 1시간 30분 아침 ㅡ 잡곡밥과 계란 4개, 참치 반 캔 점심 ㅡ 닭가슴살 200g, 오렌지주스 300ml, 아몬드 20개, 호두 5개 => 쉐이크 저녁 ㅡ 일반식(뼈해장국) 운동 후 프로틴 30g랑 우유 300ml 오늘 전반적으로 양호
#1 How do we ensure trust in communication in a trustless environment? A) With cryptographic hash functions 비트코인 시스템을 자꾸 trustless 하다고 표현하는데 좀 이해가 가지 않는다. 기존의 은행 거래처럼 대면 거래거나 신원 확인을 한다거나 하는 기존의 시스템(신뢰가 가는)이 아니기 때문에 trustless라고 표현하는 것이라 이해하고 넘어간다. 아무튼 이런 비트코인 시스템을 신뢰할 수 있는 이유는 암호화된 해시 함수 덕분이다. 암호화된 해시 함수가 이토록 신뢰받을 수 있는 이유는 암호화된 해시 함수가 가지는 특성 때문이다. 기본적으로 해시 함수는 Avalanche effect를 가짐으로써 입력값의 변화로 출력값..
드디어 첫 프로젝트의 결과물이 나왔다. 같은 팀원들이 정말 많은 고생을 했다. 특히 긴 프로젝트 기간동안 정말 첨예한 의견 대립이 많이 있었음에도 불구하고 사이가 더 좋아진 것 같아 더 보람차다. 토론을 하다가 해결이 나지 않는 경우 프로젝트 진행 속도를 위해서 깔끔하게 다수결로 의견을 결정하였다. 다수결에서 진 의견을 제시한 사람들의 경우(나도 때때로 여기에 포함) 깔끔하게 승복(?)하고 다수의 지지를 받은 의견을 구현하기 위해 최선을 다했다. 강사님의 가이드도 프로젝트의 완성도를 올려가는데에 많은 도움이 되었다. 프로젝트 설명프로젝트를 한 마디로 정리하자면 '개발자들을 위한 협업툴'이라고 할 수 있다. 개발 방법론에 대해 지식이 깊지 않더라도 주어진 템플릿만 활용한다면 개발 방법론을 적용해 프로그램을..
이번 강의에서는 딱히 정리해둘 만한 내용이 없었는데 그 중 다른 화폐가 등장한 배경이 꽤나 인상적이어서 정리해둔다. 비트코인에서는 10분마다 하나의 블록을 형성하는데 문제는 이 블록의 사이즈가 너무 작다는 것이었다. 그래서 블록체인 전체의 크기가 커져서 거래가 증가할 수록 거래 속도도 떨어지게 되었는데 이것 때문에 블록 사이즈를 키우자 vs 키우지 말자는 논쟁이 있었고 결국 이를 계기로 비트코인이 분기해 다른 화폐들도 등장하게 되었다. 이더리움은 '스마트 계약'이라는 개념을 도입했는데 유투브에 좋은 영상들이 있었다. 첫번째 영상은 정말 간단한 '스마트 계약'의 컨셉에 대한 설명이고 그 뒤에는 조금 더 심화된 내용이다. 출처 : https://www.youtube.com/watch?v=uQE_M5nx5N4..
식단 아침 : 닭가슴살 200g , 아몬드 20개, 호두 5개, 오렌지주스 300ml, 미숫가루 30g => 쉐이크 해먹음 점심 : 일반식(정량보다 조금 더 먹은듯) 저녁 : 계란 4개 + 참치 반 캔 + 미숫가루 30g 운동 : 휴식
레그프레스 6 레그 익스텐션 6 레그 컬 4 숄더프레스 스미스 3 페이스 풀 5 사이드 레터럴 레이즈 5 프론트 레터럴 레이즈 5 걷기 30분 2시간
버클리대에서 비트코인에 대한 강의를 해놓은 것을 정성 들여 번역해둔 사이트를 발견했다. (https://dreamplus.io/blockchain_academy1) 그냥 듣기 보다는 정리하면서 듣는 것이 기억에 더 많이 남을 듯 하여 찾아보며, 또 정리하면서 이 강의를 듣기로 했다. #1 비트코인은 어디서? ... Born out of the Cypherpunk movement, a libertarian fight for privacy and self-governance... 궁금했었던 부분인데 덕분에 찾아보고 궁금증을 해결하게 되었다. 블록체인이라는 것, 비트코인 이라는 것이 왜 갑자기 세상에 나오게 된 것일까? 어떤 이유에서 만들어 진걸까? 하는 의문은 들었지만 자연스럽게 '그냥 기술이 발전하니 저런..
유산소 2시간 반 감기 기운이 있어서 헬스장에 가질 못했다 결과적으로 유산소도 몸 상태에 비해 무리한 듯 하지만 집에서 그냥 있었을 바엔 걷길 잘했다는 생각이 든다
유산소 1시간 10분 더워 죽는줄
찾아도 내가 원하는 것이 나오지 않아서 직접 만들어 보았다(있긴 있었는데 딱 내가 원하는 것이 아니었다) 이모지를 쓸 때에 채팅창에 쓰는 것이 일반적이므로 내가 쓰거나 누군가 쓸 때 좋도록 프레임을 잡아 두었다 이모티콘 팝업 div를 없애기 위해서는 채팅 입력 창에서 esc를 누르면 없어지도록 처리했다 https://github.com/KIMJUNGKWON/emoji_jk
스프링 프레임워크에서 맵퍼의 쿼리 작성시 부등호를 사용해야 할 경우 아래와 같이 를 사용해서 부등호를 넣는다 그렇지 않으면 특수문자로 인식하여 RUN이 안됨 select tname, sday, eday, detail, ctime from task where pid = #{pid} and eday sysdate
$(document).on("click","#testbtn",function(){ setTimeout(function(){ alert('hello'); }, 2000); }); 자바스크립트에 내장된 setTimeout() 을 활용하여 시간 지연을 한다. 두번째 파라미터에 시간을 넣게 되며 첫번째 파라미터인 함수가 두번째 파라미터에 넣은 gap 만큼 뒤에 실행된다
멀티쓰래드 상황에서 시퀀스 값을 사용할 때 한 번 사용한 시퀀스 값을 그대로 다시 사용해야 할 경우 currval를 하게되면 값을 보장 받지 못한다. 그 사이에 누군가 nextval를 사용했을 수 있기 때문이다. 프로젝트를 하던 중 이것 때문에 좀 찾아보다가 selectKey 를 발견하게 되었다. selectKey는 채번을 미리 해서 그 값을 객체에 저장할 수 있는 기능이다 select seq_cmtid.nextval FROM DUAL insert into comments values(#{cmtid}, #{comments}, #{tid}, #{mid}, #{cmtkind}, sysdate) 위 코드에서는 selectKey가 가장 먼저 작동하면서 미리 시퀀스 값을 채번하여 keyProperty에 해당하는 ..
$(document).on("click","#btn",function(){ });
인클라인 벤치 프레스 6 백 팩 플라이 7 케이블 프레스 다운 로프 7 50분 헬스장 마감에 임박했을 때 입장해서 많이 못하였음
바벨로우 7 하이풀리 7 랫 풀 다운 5 케이블 프레스 다운 로프 드롭 5 1시간
하이풀리 6 바벨로우 6 케이블 로프 6 45분 오늘 너무 피곤해서 집에 가려다가 가면 뭔가 지는 것 같아서 적게라도 하긴 했다
헬스장 휴무 도림천 1시간 10분 조깅
벤치 프레스 6 + 2 인클라인 6 백 팩 플라이 6 케이블 프레스 다운 로프 6 1시간 10분
바벨로우 6 하이풀리 7 드롭 레그 익스텐션 5 레그 프레스 6 1시간 10분