예제
-
Express 정적 자원(static) 관리MEAN STACK/Express 2018. 9. 11. 10:16
미들웨어는 작성되는 순서가 중요하다. 정적자원들(JaveScript, css, img)을 먼저 로드 할 수 있도록 가장 상위에 스태틱 미들웨어를 등록해야 한다. 라우팅 하위에 static 폴더 생성 후 임의의 파일 넣는다. 이후 어플리케이션 파일에 다음 코드 추가 app.use(express.static(__dirname + '/static')); __dirname : 현재 스크립트가 동작하고 있는 경로를 반환.파일명으로 url 요청하면 다운받을 수 있다.
-
Express 라우터(Router) 이용한 라우팅 (Routing) 예제MEAN STACK/Express 2018. 9. 11. 10:14
보통, Node.js(Express)는 Application 파일이 app.js 혹은 index.js 파일 하나밖에 존재하지 않는다. 수십개 이상의 URL을 모두 하나의 파일에 작성해야 한다. 어플리케이션 파일이 길어지는 것을 방지하기 위해 Route를 모듈화 시켜 분리시키는 것을 권장한다. ※ Express의 첫번째 예제부터 이어져 오는 예제로 앞부분 내용 숙지해야 이해가 원활할 것이다. 다음과 같이 어플리케이션 구동시킬 파일에 url마다 다른 요청을 등록해도 동작에는 지장이 없다. 하지만 요청이 늘어날수록 파일이 길어져 유지 보수에 불편함이 생길 가능성이 높다.다음과 같이 매개변수에 따라 다른 처리도 가능하다.에러 페이지 처리url 관리하기 위해 새 디렉토리 생성코드를 다음과 같이 작성어플리케이션 파..
-
Node.js Express 예제MEAN STACK/Express 2018. 9. 11. 10:11
Express는 Node.js를 편하게 사용하기 위한 프레임워크다. 자바에서 서블릿 개발을 최대한 간소화 시키기 위해 스프링 프레임워크를 지원하는 것과 마찬가지라고 보면 된다. 사용 방법 포스팅 터미널에서 다음 명령어들 수행. npm update npm init ( name만 소문자로 입력 후 엔터 나머지는 공백인 채로 엔터만 누르면 됨) npm install --save ejs, (save 명령어는 npm install init 통해 package.json 파일 생성했을 경우 사용할 수 있다.) npm install --save express npm에 start 명령어 추가추가한 명령어와 파일명 맞춘 javaScript 파일 생성 후 다음과 코드 작성. use, listen 함수를 사용해 서버 수행 및..
-
커맨드 인젝션 (Command Injection) 예제보안(Security)/Injection 2018. 9. 10. 09:44
※ 크롬, 오페라 등 브라우저는 인터넷 익스플로러와 비교해 구현 방법에 차이가 있다. 같은 html 문서를 작성해도 브라우저에 따라 결과가 다를 수 있다는 말이다. 보안 포스팅을 위해 문제 상황을 발생시키기에 인터넷 익스플로러가 적합해 보안 포스팅에서는 항상 인터넷 익스플로러를 실습 브라우저로 사용한다. 이번 예제는 수강중인 교육 강사님이 주신 예제를 통해 확인했다. SQL 인젝션과 마찬가지로 명령어 또한 임의로 삽입할 수 있다. * 커맨드 인젝션은 시스템 명령어를 호출하는 어플리케이션의 인자값을 조작하여 의도치 않은 명령어를 수행하도록 유도하는 기법이다. 파로스(Paros)를 켜 프록시 서버를 통해 Request, Response 정보를 가공해보았다.파로스를 켜 Trap 탭에서 Trap request에..
-
배치 프로그램 (Batch Program) 작성 예제Spring/배치 프로그램 2018. 9. 7. 10:29
웹사이트에서 로그인할 때 비밀번호를 변경하라는 공지를 심심찮게 받아볼 수 있다. 서버에서는 비밀번호 설정 후 일정 기간이 지났는지를 파악해 일정 기간(90일 등)이 지나면 변경 권장을 해야 한다. 이를 로그인 요청마다 체크할 수도 있지만 주기적으로(1일 혹은 2일에 한번 등...) 모든 계정에 대해 일정 기간이 지났는지 확인하는 방식으로 처리하면 오버헤드를 줄일 수 있다. 이와 같이 주기적으로 특정 동작을 수행하도록 하는 프로그램을 배치(Batch) 프로그램이라 하고, 실무에서도 굉장히 필수적일 것이라고 생각된다. 휴면계정 관리, 광고, 업데이트 소식, 알림, 청구 등의 기능을 배치프로그램으로 작성할 수 있다. 작성 방법 포스팅 ( STS 사용했다. 이클립스의 경우 같은 역할을 수행하는 방법이 상이할 수..
-
스프링(Spring) 테이블 조인(Join) 예제Spring/컨셉 2018. 9. 7. 10:23
스프링 테이블 조인 예제. 게시글 작성할 때 작성자에 대한 정보를 갖기 위해 조인이 필요하다. 게시글 객체인 BoardVO에 작성자 객체인 UserVO를 멤버변수로 만들어 사용한다. package com.blog.naver.user.vo; import org.hibernate.validator.constraints.NotEmpty; public class UserVO { // userId @NotEmpty(message="userId 입력하세요") private String userId; @NotEmpty(message="userName 입력하세요") private String userName; @NotEmpty(message="userPassword 입력하세요") private String userPa..