Development/Spring 10

Spring Framework 에서 Batch 구현하기

Spring Framework 에서 Batch 구현하기 일반적으로 batch 작업은 일련의 작업을 몇개의 단위로 묶어서 연속적으로 일괄처리해주는 것을 말하며 일반적으로 일정시간(주로 야간)에 정기적으로 실행하거나 사용자의 요구에 의해서 실행된다. 규칙적으로 실행하기 위해서 scheduler 를 사용하며 background 에서 실행되기 위해서 thread 로 작동하는 경우가 많다. 이를 구현하기 위해서 몇가지 방법이 있는데, spring framework 에서는 1. 단순한 단일 작업이냐 아니면 2. 선/후행 작업으로 나눠지는 복잡한 작업이냐에 따라서 구현 방법을 달리한다. 전자의 경우 비즈니스 로직을 구현하고 thread 로 실행시킨다. 정기적으로 실행하는 경우는 scheduler 를 붙여서 구현한다...

Development/Spring 2017.09.21

Spring Framework 과 Redis 연동

Spring Framework 과 Redis 연동하기. NoSQL 이란 Big data 를 처리하기 위한 분산 데이터 저장소를 통칭하며, Redis 는 key-value 형태의 데이터 저장소를 지원하는 NoSQL 의 일종이다. CAP(Consistency, Availability, Partition Tolerence) 특징중에서 CP 에 더 가까운 고속의 읽기/쓰기에 최적화 된 모델이다. 개발환경 JDK 1.8Spring Framework 4.3.7 RELEASEMAVEN 3Windows 10 Windows 용 Server 구동 Redis 는 Linux, Unix, MacOS 는 지원하지만 Windows 는 정식으로 지원하지 않는다. Windows 용 서버는 개발/스터디 용도로만 사용해야 한다. ......

Development/Spring 2017.08.07

Spring Framework 과 RMI 연동

Spring Framework 과 RMI 연동하기. RMI 는 JDK 1.1 부터 추가되었고 한때는 CORBA, EJB 와 함께 분산 시스템을 구축하기 위한 기술로써 사용되었으나 Java 에 국한되는 단점이 있었고 SOA, ROA 등의 개념을 탑재한 다른 기술들이 널리 사용되면서 현재는 많이 사용되고 있지는 않다. server 를 POJO 형태로 간단하게 띄우는 방법도 있고 Spring Framework 에 통합되어 제공하는 방법도 있다. POJO 샘플은 Java 책마다 기본적으로 제공되므로 Spring Framework 과 통합해서 Server / Client 로 사용하는 방법을 정리한다. Spring Framework 에서는 RMI 기능의 많은 부분을 자동화해서 내부적으로 지원하며 개발자(사용자)는 ..

Development/Spring 2017.08.04

Spring Framework 과 ActiveMQ 연동

Spring Framework 과 ActiveMQ 연동하기. 간단한 비동기화 로직은 스프링에서 제공하는 async annotation 을 사용해서 처리가 가능한데 대용량 데이터를 비동기로 안정적으로 처리하기 위해서는 메시지 서비스의 일종인 ActiveMQ 를 연동해서 사용한다. 전체적인 process 를 간략하게 설명하자면, Application Server 에서 listener container 를 구현하고 구현한 listener 를 통해서 ActiveMQ 와 통신한다. Application Server 에서 listener container 로 domain object 를 던져주면 converter 에서 jms message 로 변환해서 ActiveMQ 에 전달하고 ActiveMQ 로 부터 받은 jm..

Development/Spring 2017.07.25

Spring Security

Spring Security 스프링 2.x 버전 사용할때 security 살펴보고 10여년 만에 다시 볼려니 세월이 많이 지나서 다 잊어버렸고 실제 프로젝트에서는 spring security 보다는, authentication 은 자체 로직으로 처리하고 authorization 은 admin 에서 설정하는 방법을 많이 사용하다보니 spring security 는 점점 사용하지 않게 되었다. 이번 프로젝트에 spring security 를 적용해보고자 오랜만에 삽질을 하면서 article 을 정리해본다. 내가 원하는 기능은 1. 비밀번호 암호화해서 비교. - Sha256 을 이용한 암호화. 2. admin, user role 별로 페이지 접근 제어. 3. remember me 기능 적용. - 쿠키 또는 d..

Development/Spring 2017.07.20

외부 인터넷이 연결되지 않은 경우 application-context 설정하기.

관공서 등과 같이 외부 인터넷이 안되는 환경인 경우 spring application 을 실행할때 schemaLocation 오류가 발생한다. 이때는 xsd 를 url 이 아닌 classpath 를 통해서 가져오도록 수정한다. 물론 처음 빌드는 인터넷이 되는 환경에서 모든 maven 라이브러리들을 다운로드 받은 상태여야 한다. Intellij 에서는 schemaLocation 의 classpath syntax 를 인식하지 못해서 빨간색의 오류로 출력되지만 정상적으로 빌드되고 실행된다.

Development/Spring 2016.07.08

Cause: java.util.NoSuchElementException 오류 수정..

spring 으로 작업 중. maven clean 으로 깨끗하게 청소하고 install 로 war 파일 만들때까지는 이상이 없는데 was 에 올리니 오류를 뱉어 낸다.로그를 보니 첫번째는 로그파일을 만들어주는 경로에 프로퍼티 파일이 없는게 원인인데 이건 상관없으니 패스.두번째를 보니, Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/select'. C..

Development/Spring 2013.03.06

Message Bundle 사용하기

다국어를 사용하기 위해서 모든 메시지를 message 프로퍼티 파일에 모아둔다. main-servlet.xml 에서 /WEB-INF/messages/messages 위의 예는 모든 messages 파일들을 WEB-INF 디렉토리 밑의 messages 디렉토리에서 관리하고 있다는 뜻이다. ReloadableResourceBundleMessageSource 은 messages 파일이 수정될때 WAS를 재가동 하지 않고도 reloading 할수 있도록 해준다. 인터벌은 cacheSeconds에서 설정한다. Please wait for the web application to start. index 페이지에서 바로 index.do를 타도록 설정하고, public ModelAndView index(HttpServ..

Development/Spring 2009.01.29