목록Server application (21)
ecsimsw
RedirectAttributes 의 addAttribute RedirectAttributes.addAttribute을 이용하는 경우 쿼리 파라미터로 데이터가 포함되어 재요청된다. 예를 들어 아래처럼 핸들러를 작성하는 경우 리다이렉트의 요청 url은 '/redirected?name=jinhwan' 일 것이다. @GetMapping(value="/hello") public String hello(RedirectAttributes redirectAttributes){ redirectAttributes.addAttribute("name", "jinhwan"); return "redirect:/redirected"; } 이는 리다이렉트 시 넘겨야하는 값이 쿼리에 표시가 되어야하기 때문에 String으로 변환이 ..
Socket - Tcp 포로토콜 기반의 소켓 프로그래밍을 지원하는 Net 모듈에 대해서 공부하고 스트림을 통해 c# 응용프로그램과 통신할 것이다. net / socket - net 모듈은 소켓 객체를 이용하여 서버와 클라이언트의 소켓 객체를 생성 가능하다. net.connect()와 net.createConnection() 호출을 통해 클라이언트를 서버에 연결을 할 수 있고, 이렇게 클라이언트와 서버가 연결되는 시점에 서버에 socket 객체가 생성된다. 만들어진 소켓은 stream 이면서 동시에 event emitter 인데, 이는 데이터를 스트림을 통해 데이터를 읽고 쓰기가 가능하며 이벤트 핸들러를 사용하여 데이터를 처리할 수도 있다. - net 모듈은 설치가 필요없이 위처럼 바로 require하여 ..
Socket - node.js에서 socket을 이용하여 통신하는 방법을 공부하고, 학습 예제로 웹 채팅 서버/어플리케이션을 제작하고, 나아가 이 서버로 c#/ android 클라이언트가 통신하는 방법을 공부할 생각이다. socket.io - node.js에선 socket.io 모듈을 통해 소켓 통신을 할 수 있다. npm install socket.io --save server에서 Express를 사용하여 Http 서버를 생성하고 생성된 Http 서버를 socket.io server에 연결한다. var app = require('express')(); var server = require('http').createServer(app); var io = require('socket.io')(server)..
Get / Post - 지난 포스팅에 node.js에서 filestream을 사용하는 방법을 공부하였고 예제로 파일 목록을 확인하고 내용을 읽는 게시판을 만들어보았다. 지난 포스팅에 이어 파일 생성을 구현하기에 앞서 HTTP 프로토콜에서 서버에 요청을 위한 두 방식을 비교하고 공부한다. Get 방식과 Post 방식 - 소포의 의미를 갖는 패킷을 따서 네트워크 상의 데이터를 패킷, HTTP 프로토콜에서의 패킷을 HTTP 패킷이라고 한다. HTTP 패킷은 크게 header와 body로 구성되어 있다. header는 요청 방식, 클라이언트 정보, 브라우저 정보, 접속할 url 등의 설정 정보를 담고, body에는 서버에 실제 데이터를 담는다. Get - 지금까지 우리가 써왔던 요청 방식이 바로 get 방식이다..
FileStream / Board filestream - node.js에서 filestream을 사용하는 방법을 공부하였다. 예제로 pug 템플릿을 이용하여 파일을 생성하고 읽는 게시판을 만들어보려고 한다. - filestream을 이용하기 위해 다음처럼 fs 모듈을 require하였다. var fs= require('fs'); read directory - files라는 폴더 안에 들어있는 데이터 목록을 가져오기 위해 readdir 메소드를 이용했고, 콘솔로 출력하므로써 파일 목록을 배열로 가져온다는 것을 확인하였다. "board.js" app.get('/board',function(req,res){ fs.readdir('./files',function(err, FileList){ console.log..
Serving static files in Express - 이전 포스팅에서 html을 pug 템플릿으로 옮겨 렌더링 하는 법을 공부하였다. 하지만 이렇게 변환한 페이지는 이미지 파일이나 다른 html/css와 같은 파일을 로드 할 수 는 없을 것이다. - 이런 정적 파일을 제공하기 위해선 express의 미들웨어인 static을 사용해야한다. app.use(express.static('public')); - 다음처럼 static 미들웨어에 폴더명(public)을 인자로 넘김으로서 정적파일을 ./public 폴더에서 로드할 수 있게 되는 것이다. http://localhost:3000/images/kitten.jpg http://localhost:3000/css/style.css http://localh..
Template engine / Pug Template Engine - 지금까지 포스팅한 내용으로 HTML을 이용하여 웹 페이지를 만드려고하면 html의 파일을 읽어 정적으로 사용 해야 할것이다. 이런 html 파일에서 변수에따라 출력을 달리하거나 반복을 만드려면 어떻게 해야할까. 아마 JS의 변수나 반복문이 너무나 그리울 것이다. - 템플릿 엔진은 이러한 상황에서 자바스크립트를 사용하여 html을 렌더링 할 수 있게 해준다. 대표적인 템플릿 엔진 PUG(jade)에 대해서 공부해왔다. Pug _ Set - Pug - getting started - 다음을 터미널에서 프로젝트 폴더에 입력하는 것으로 pug 모듈을 설치한다. npm install pug --save - 아래는 초기 설정을 위한 코드이다. ..
Routing Routing - 라우팅은 URI(또는 경로) 및 특정한 HTTP 요청 메소드인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말한다. (# URI : Uniform Resource Identifier, 자원을 식별하고 위치를 지정해주는 문자열이다. URL과 비교하여 공부 후 포스팅할 계획이다.) - express framework에서 라우트는 아래와 같은 형식으로 정의된다. app.METHOD(PATH, HANDLER) app은 express의 인스턴스, METHOD는 HTTP의 요청 메소드(ex// get, post), PATH는 서버에서의 경로, 마지막으로 HANDLER에는 라우트가 일치할 때 실행될 기능이 위치한다. route method - ..