Request 와 Response

1) Req / Res
	- Request란 클라이언트가 서버에 전달하려는 정보나 메시지는 담는 객체
	- Response란 서버에서 클라이언트로 응답메시지를 전송하는 객체
2) Server Module
	- Node.JS의 서버모듈에는 http / Express 모듈이 존재
	- Express 모듈은 http 모듈 및 추가 제공하는 모듈을 사용가능
3) Express 모듈의 req / res ### req 객체
	- req.app : req 객체를 통해 app 객체에 접근
	- req.ip : Client ip 주소가 담겨 있음
* - req.body : Request 호출할 때 body로 전달된 정보가 담긴 객체
			 * express.json() Middleware 이용하여 해당객체 사용가능
* - req.params : 라우터 매개 변수에 대한 정보가 담긴 객체
* - req.query : Request 호출할 때 쿼리 스트링으로 전달 된 정보가 담긴 객체
	- req.cookies : Request 호출할 때 Cookie 정보가 담긴 객체
			* cookie-parser Middlewarw를 이용하여야 객체를 사용할 수 있음
	- req.get(Header) : 헤더에 저장된 값을 가져오고 싶을 때 사용

res 객체

	- res.app : res 객체를 통해 app 객체에 접근할 수 있음
* - res.status(code) : Response에 HTTP 상태 코드를 지정
		* 상태코드표 참조 *
*  - res.send(data) : 데이터를 포함하여 Response를 전달
*  - res.json(JSON) : JSON 형식으로 response를 전달
	  - res.end() : 데이터 없이 response 전달
	  - res.direct(url) ; 리다이렉트할 주소와 함께 response
	  - res.cookie(Key, Value, Option) : 쿠키를 설정할 때 사용
	  - res.clearCookie(Key, Value, Option) : 쿠키를 제거할 때 사용

Request (body, params, query)

req.body

- 클라이어트가 req 보낼때 body에 data를 삽입하였을 때 사용
- Key - Value 형태, 대표적으로 JSON 형태
- body는 Query String / Path Varianle(params)와 다르게 URL만을 가지고 
   어떤 데이터를 전달 하였는지 확인할 수 없는 특징을 가지고 있음
- 데이터를 생성하거나 수정이 필요한 데이터의 전달을 위해 사용됨
	user ID  /  Password / 게시글 제목 등
- POST, PUT과 같은 HTTP Method에 사용 됨

req.query (Query String)

- 클라이언트가 req 보냈을 때 URL에 원하는 Key - Value를 삽입하여 데이터 전달
- URL 마지막에 ❓ 기호를 이용해 Query String을 사용할 수 있음
	http://sparta.com?name=daniel&age=34
- 특정콘텐츠의 위치를 표시하거나 웹페이지에 특정한 옵션을 설정할 때 사용
	게시글 정렬 / 특정 날짜의 게시글만 출력하는 옵션
- GET과 같은 HTTP Method에서 사용

req.params (Path Variable)

- 클라이언트가 req 보냈을 때 URL에 원하는 데이터를 삽입하여 전달
- URL 특정 경로를 매개 변수로써 사용
- 특정게시글을 선택하거나 명확한 리소스를 지정해야할 때 사용 
	게시글의 살세 정보조회 / 사용자 상세정보 조회