maven local repository에 jar 추가
FTP 모듈을 사용하게 될 일이 생겨 예전에 만들었던 FTP 프로그램을 메이븐 프로젝트로 옮기게 되었다. 내가 만든 FTP 모듈은 NetComponents-1.3.8.jar 라이브러리를 필요로 하는데 메이븐 중앙 리포지토리에서는 해당 라이브러리를 관리 […]
더 보기 →FTP 모듈을 사용하게 될 일이 생겨 예전에 만들었던 FTP 프로그램을 메이븐 프로젝트로 옮기게 되었다. 내가 만든 FTP 모듈은 NetComponents-1.3.8.jar 라이브러리를 필요로 하는데 메이븐 중앙 리포지토리에서는 해당 라이브러리를 관리 […]
더 보기 →차기 프로젝트에서는 CI 툴을 사용하고자 Jenkins 사용법에 대해서 알아봤다. 빌드 방법은 maven을 이용해 war 생성 후 tomcat manager를 통해 war를 업로드 하는 식이다. 1. 먼저 Jenkins를 […]
더 보기 →나는 어떤 문제를 풀 때 항상 코딩을 먼저 시작한다. 헌데 이와 같이 생각하지 않은 상태에서 바로 코딩을 하게 되면 알고리즘이 산으로 가는 일이 비일비재하였고, 가장 […]
더 보기 →로컬 윈도우 PC에서 shell 스크립트를 만든 후 리눅스 서버에 FTP 업로드 하였다. 업로드 한 shell을 실행하면 다음과 같은 에러 메시지가 떨어진다. bash2: ./test.sh: /bin/sh^M: bad […]
더 보기 →enum을 이용하여 클래스를 정의하면 어떤 원리에 의해서 싱글톤으로 제공하는지, 그리고 멤버 변수가 있는데도 thread-safe한지 그 이유에 대해서 알아봤다. public enum EnumClassTest { INSTANCE1(“instance1”) , INSTANCE2(“instance2”); […]
더 보기 →간혹 스프링 트랜잭션을 적용하였는데 예외 발생 시 롤백이 되지 않을 때가 있다. 안되는 이유야 여러 가지가 있겠지만 난 그 중 한 가지 문제에 대해서 작성하려고 […]
더 보기 →프로젝트를 완료하고, 상용에 배포를 하면 버그가 발생하는 일이 많다. 하지만 이런 버그들이 대부분 고객에 의해 발견 되고, 고객 불만으로 접수가 되어서야 문제의 원인을 찾은 후 대처 […]
더 보기 →스프링의 트랜잭션 AOP는 기본적으로 서비스 계층의 interface를 JDK 다이내믹 프록시 기술을 이용하여 AOP를 지원하지만 인터페이스가 없다면 CGLib를 이용하여 클래스 프록시를 생성한다. 만약 CGLib를 이용한 클래스 […]
더 보기 →스프링에서는 예외 발생 시 HandlerExceptionResolver가 예외를 처리하도록 위임할 수 있다. 그래서 난 아래와 같이 SimpleMappingExceptionResolver를 정의한 후 예외 종류에 따라서 사용자에게 보여주는 화면을 달리하였다. <bean […]
더 보기 →“클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다” 난 위의 OCP 정의를 처음 접했을 때 이해가 되지 않았다. 헌데 토비의 스프링3.1 책을 읽게 […]
더 보기 →