스프링 interceptor afterCompletion 메소드 이용 시 참고할 사항
프로젝트를 완료하고, 상용에 배포를 하면 버그가 발생하는 일이 많다. 하지만 이런 버그들이 대부분 고객에 의해 발견 되고, 고객 불만으로 접수가 되어서야 문제의 원인을 찾은 후 대처 […]
더 보기 →프로젝트를 완료하고, 상용에 배포를 하면 버그가 발생하는 일이 많다. 하지만 이런 버그들이 대부분 고객에 의해 발견 되고, 고객 불만으로 접수가 되어서야 문제의 원인을 찾은 후 대처 […]
더 보기 →스프링의 트랜잭션 AOP는 기본적으로 서비스 계층의 interface를 JDK 다이내믹 프록시 기술을 이용하여 AOP를 지원하지만 인터페이스가 없다면 CGLib를 이용하여 클래스 프록시를 생성한다. 만약 CGLib를 이용한 클래스 […]
더 보기 →스프링에서는 예외 발생 시 HandlerExceptionResolver가 예외를 처리하도록 위임할 수 있다. 그래서 난 아래와 같이 SimpleMappingExceptionResolver를 정의한 후 예외 종류에 따라서 사용자에게 보여주는 화면을 달리하였다. <bean […]
더 보기 →“클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다” 난 위의 OCP 정의를 처음 접했을 때 이해가 되지 않았다. 헌데 토비의 스프링3.1 책을 읽게 […]
더 보기 →spring 테스트 시 이클립스의 Templates 기능을 사용하면 훨씬 편리하게 테스트를 할 수 있다. 예를 들어서 스프링의 테스트 컨텍스트를 생성할 때 우리는 항상 @RunWith, @ContextConfiguration 애노테이션을 […]
더 보기 →싱글톤과 프로토타입 객체에 대한 성능 비교를 위해 아래와 같이 테스트 코드를 작성하였다. 싱글톤은 객체 한 개만 생성한 후 그 안에 있는 test() 메소드를 호출하였고, 프로토타입은 […]
더 보기 →간혹 테스트를 위해 수백만 건의 데이터를 테이블에 넣어줄 일이 생긴다. 그럴때 다음의 프로시저 샘플을 이용하여 데이터를 밀어 넣자. DELIMITER $$ DROP PROCEDURE IF […]
더 보기 →예전에 이클립스에 내장되어 있는 tomcat을 이용하여 메이븐 프로젝트 구동하는 방법에 대해서 블로깅한 적이 있는데, 이 방법 외에 또 다른 방법이 있음을 최근에 알게 되었다. maven프로젝트 Run […]
더 보기 →내가 현재 진행하고 있는 프로젝트에서는 tomcat 기동 후 자바 소스를 수정하면 그 즉시 WAS에 적용이 되는 반면 샘플 메이븐 프로젝트에서는 즉시 반영이 되지 않는 문제점이 […]
더 보기 →#!/bin/sh LIB_CLASSPATH=”/svc/idp/was/app/Altibase.jar” LIB_CLASSPATH=”/svc/idp/was/app/idpWebApp/WEB-INF/classes:${LIB_CLASSPATH}” echo “$LIB_CLASSPATH” java -cp ${LIB_CLASSPATH}:. DecodeSocialNumber 리눅스에 특정 class 파일을 업로드한 후 커맨드 명령창에서 class를 실행할 일이 생겼다. DB에서 데이터 조회 후 […]
더 보기 →