logback에 spring profile을 왜 적용하는가? 이유는 간단하다. 하나의 파일만 만들기 위해서다. spring profile을 적용하지 않는다면 logback.xml 하나만 있어도 될걸 logback-dev.xml, logback-prd.xml 등등 각 PHASE에 맞는 파일들을 생성한 뒤 배포를 하고 파일을 덮어 씌우는 형식으로 하거나, 아니면 직접 서버에 들어가서 경로를 수정하거나 하는 번거로움이 있다. 비단 logback 뿐만 아니라 spring profile은 여러모로 배포하는 입장에서는 무척 유용하다. springboot 를 사용한다면 이와 결합하여 간단하게 spring profile을 적용할 수 있겠지만 springboot를 사용하지 않는 프로젝트라면 logback에 spring ..
RESTful은 REST + WebService 으로 REST 원리를 따르는 시스템 정도로 이해하면 될듯 싶다. 그럼 REST(REpresentational State Transfer)는 무엇일까? HTTP URI (eg. /customer)로 자원을 표현하고 Method(GET, POST, PUT, DELETE, OPTION, HEAD ...)를 통해 자원에 대한 처리하도록 설계된 아키텍처를 의미한다. 간단히 사용할수 있고 가볍고 명시적이고 HTTP 프로토콜의 인프라를 사용하므로 별도의 인프라를 구축할 필요도 없다. 이와 같이 수많은 장점을 가지고 있기에 필수적으로 알고 있어야 할 기술이다. 일단 샘플을 구현하기 앞서 REST API 설계부터 진행을 해보자. JD Method URI 고객의 목록 조회 ..
springboot 2.0 부터 기본 JDBC Connection Pool 로 지정이 된 hikariCP 라는 JDBC Connection Pool 이 있다. 나온지가 꽤 오래 되었지만 매번 쓰던 Spring의 SimpleDriverDataSource 라던지 Commons DBCP 만 사용하다가 springboot에 관심을 가지고 공부하던 도중 hikariCP 를 알게 되었다. 직접 성능 테스트를 해보지는 않았지만 이미 많은 레퍼런스를 가지고 있고 그로인해 검증이 되었고 해서 hikariCP를 적용해 보았다. hikariCP를 사용하기 위해서 가장 먼저 해야 할 일은 라이브러리를 추가해줘야 한다. pom.xml (maven project) com.zaxxer HikariCP 3.4.1 hikariCP는 ..
spring security에서는 중복 로그인 방지를 다음과 같이 간단하게 수행할 수 있다. 하지만 login page를 통하지 않고 SSO로 로그인을 하기를 원하는 경우에는 위와 같은 방법이 통하지 않는다. login page를 통해 로그인을 하는 경우라면 AuthenticationFilter (username과 password를 사용하는 form 기반 인증)를 통과하며 유저 인증 처리를 진행하는데 SSO는 이런 과정과는 다르게 직접 인증처리를 구현해야 하므로 위와 같은 concurrency-control 의 제어를 사용할 수 없는 것이다. 그럴때 직접 컨트롤을 통해 중복 로그인 처리를 해줘야 한다. 중복 로그인 처리를 하기 위해서는 가장 중요한점은 현재 세션의 목록을 가지고 올수 있어야 한다. 세션의..
spring에서 mssql datasource를 설정하는 방법이다. pom.xml 에서 mssql 연동을 위한 driver를 가지고 온다. com.microsoft.sqlserver sqljdbc4 4.0 applicationContext에서 datasource 설정을 다음과 같이 한다. (xml config version) url 에서 ip, port, dbname을, username, password를 해당 db의 정보에 맞게 수정해 주면 된다.