분류 전체보기: 2105개의 글
오늘 알아볼 내용은 아직 릴리즈는 되지 않았지만 조만간 릴리즈될 Spring boot 2.0의 대해서 알아볼 예정이다. 아직 릴리즈전이라 바뀔 가능성이 있어 깊게는 살펴보지 않을 것이다. 또한 혹시나 기존(이전버전)과 동일한 기능을 마치 신기능처럼 이야기하거나 틀린이야기를 할 경우에는 피드백을 주길 바란다. 필자가 Spring boot를 좋아하는 이유중 하나도 Configuration Binding을 아주 손쉽게 해주기 때문이다. 하지만 기존의 버전과 2.0의 버전이 조금 달라졌다. 오늘은 그 내용을 살펴볼 예정이다. ConfigurationProperties prefix ConfigurationProperties 어노테이션은 아주 손쉽게 properties를 바인딩 해준다. 기존에는 underscore..
※ 자세한 사항은 핸들바스 홈페이지 참조 https://handlebarsjs.com/ Helper 란? 아래 예는 스크립트에서 Helper를 등록해서 사용하는 예제이다 fullName이라는 Helper는 person을 파라미터로 받아서 person.firstName + person.lastName을 해서 fullName을 리턴하는 Helper이다. Helper들은 아래와 같이 핸들바스에서 뷰를 만들기 위해 특별하게 동작하는 메소드이다. 자주 사용되는 Helper 들은 이미 JAR파일 안에 등록되어 있다. 근데 아래와 같이 위에서 본 스크립트가 아닌 자바파일로 되어있다. 즉, 자바파일로도 Helper를 만들고 Handlebars에서 자바 Helper를 불러서 사용할 수 있다 Custom Java Help..
0. 핸들바스란? 뷰 템플릿 Handlebars를 Spring MVC에서 사용하기 위해서는 org.springframework.web.servlet.View, org.springframework.web.servlet.ViewResolver를 구현해서 Handlebars를 지원하도록 만들어야 한다. ==> 운좋게도, 이미 오픈소스 프로젝트가 있다. 사용방법은 다음과 같다 1. Handlebars 라이브러리 등록 Maven Repository: com.github.jknack » handlebars-springmvc mvnrepository.com 2. 스프링 MVC 웹 설정 파일에 HandlebarsViewResolver 등록 - 스프링 MVC 웹 설정파일은 XML을 사용할 경우 dispatcher-ser..
자바 웹프로그래밍을 구현하다보면 공통적인 업무를 추가해야할 것들이 많다. 공통적인 업무에는 로그인처리(세션체크), pc웹과 모바일웹의 분기, 로그 확인, 페이지 인코딩 변환, 권한체크, XSS(Cross site script)방어 등이 있는데 이러한 공통업무에 관련된 코드를 모든 페이지 마다 작성 해야한다면 중복된 코드가 많아지게 되고 업무량이 상당히 증가할 것이다. 이러한 공통업무를 프로그램 흐름에서 앞, 중간, 뒤에 추가하여 자동으로 처리할 수 있는 방법이 있는데 서블릿에서 지원하는 서블릿 필터, 스프링 프레임워크를 사용하면 쓸 수 있는 인터셉터, AOP가 있다. 앞서 AOP개념을 정리할 때 언급한 것처럼 개발자는 좀더 핵심로직에 집중하고, 부가로직으로부터 자유로워지게 도와주는 역할을 한다. 그렇다면..
Interceptor 브라우저 - DS - Interceptor - Control - dispatcher servelt과 controller 사이에 존재하여 요청을 가로챈다 - 모든 페이지마다 동일한 기능의 제어가 가능 인터셉터를 통해 할 수 있는 대표적 3가지 1 처리시간 체크 ( DB에 넣어 통계를 넣는다) 2 인증 체크 3 인가 체크를 할 수 있따. 1. 웹 요청 처리 시간을 처리하는 Interceptor 만들기 step1. MeasuringInterceptor.java public class MeasuringInterceptor extends HandlerInterceptorAdapter{ @Override public boolean preHandle(HttpServletRequest re..
Spring Logging (Interceptor로 Request, Response body json 값 로깅하기) 스프링 프로젝트를 하면서 기존에는 LoggingAspect를 만들어서 Aspect파일에서 parameter값과 body값을 찍어주고 있었다. response 값도 찍어주기 위해 여러가지 찾아보면서 공부하던 와중에 Filter와 Interceptor, AOP의 구조를 다시 공부하는데 Interceptor의 인자로 HttpServletRequest, HttpServletResponse가 들어오는 것을 보고 response, request 로그를 Interceptor로 찍어야 하는 것이 맞는 구조라는 것을 그제야 깨달았다. 1. Filter, Interceptor, AOP 구조 아래 갓대희님 블..
[Spring] Filter, Interceptor, AOP 차이 및 정리 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ [Spring] 필터, 인터셉터, AOP 정리 ] 입니다. : ) 공통 프로세스에 대한 고민 자바 웹 개발을 하다보면, 공통적으로 처리해야 할 업무들이 많다. 예를들어 로그인 관련(세션체크)처리, 권한체크, XSS(Cross site script)방어, pc와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환 등이 있다. 공통업무에 관련된 코드를 모든 페이지 마다 작성 해야한다면 중복된 코드가 많아지게 되고 프로젝트 단위가 커질수록 서버에 부하를 줄 수도있으며, 소스 관리도 되지 않는다. 즉, 공통 부분은 빼서 따로 관리하는게 좋다. 이러한 공통업무를 프로그램 흐름의 앞, 중간, 뒤에 ..
1. Apache Jmeter 설치 http://jmeter.apache.org/ 위 사이트에 접속하여 사이트 왼쪽의 Download Releases 버튼을 클릭한 후 Binaries 에서 다운로드를 합니다 ( 윈도우의 경우 zip 파일을 다운로드 받습니다 ) 2. Apache Jmeter 실행 압축을 풀고 bin 폴더의 jmeter.bat 을 클릭합니다.cmd 창과 함께 Apache Jmeter 창이 뜨면 실행이 된것 입니다. ( 이때, cmd 창 종료시 Jmeter 또한 같이 종료 됨을 주의합니다 ) 3. Apache Jmeter 사용방법 왼쪽 상단의 testPlan 을 우클릭 한 후 Add > Threads (Users) > Thread Group 을 클릭하여 생성합니다 Number of Threa..
Lombok 라이브러리에서 제공하는 어노테이션 중에서 자주 사용되는 어노테이션 위주로 살펴보도록 하겠습니다. 접근자/설정자 자동 생성 제일 먼저 살펴볼 어노테이션은 @Getter와 @Setter 입니다. 아마 Lombok에서 가장 많이 사용되는 어노테이션일 텐데요. 예를 들어, xxx라는 필드에 선언하면 자동으로 getXxx()(boolean 타입인 경우, isXxx())와 setXxx() 메소드를 생성해줍니다. @Getter @Setter private String name; 위와 같이 특정 필드에 어노테이션을 붙여주면, 다음과 같이 자동으로 생성된 접근자와 설정자 메소드를 사용할 수 있어서 매우 편리합니다. user.setName("홍길동"); String userName = user.getName(..
Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions Class has two properties of the same name "data" JAXB를 사용하던 중 다음과 같은 에러가 발생하였는데.. Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions Class has two properties of the same name "data" t..