반응형

Programming/Spring Framework 8

[Spring] redis 를 통한 session 공유 및 하위 도메인간 세션 공유

spring에서 세션을 공유하는 방법은 여러 가지가 있습니다. Tomcat, Apache 등등 있지만, 저의 경우에는 3대의 apache + tomcat로 구성된 서비스를 redis를 통해서 세션을 공유하도록 했습니다. 한 동안 잘 사용하고 있다가 다른 서비스를 띄워서 세션을 같이 공유해야하는 상황이 생겼습니다. 기존 사용하던 도메인이 admin.marsland.co.kr 이었다고 하면 신규로 생긴 서비스는 docs.marsland.co.kr 입니다. 흔히 인터넷에 나와 있는 redis를 통한 세션 공유는 도메인이 틀려지면 세션이 공유는 되지 않습니다. admin.marsland.co.kr에서 로그인을 했을 경우에 docs.marsland.co.kr도메인으로 접근시에도 세션을 공유하여 admin.mars..

[Spring Boot] MySql 연결 끊김 해결

안녕하세요. 삽질하는 프로그래머 통통만두입니다.Spring Boot + MyBatis + MySQL 로 프로젝트를 진행하고 있습니다. MySQL 에서는 기본적으로 8시간동안 아무런 query가 없으면 자동으로 연결을 끊습니다. 제가 개발한 웹서버도 평일에는 잘 돌다가 주말 지나고 월요일 아침에 접속해보면 항상 아래와 같은 에러가 발생하였습니다. 에러페이지는 아직 구현을 안했습니다 ^^; 그래서 이와 같은 문제를 해결하기 위해서 1시간 또는 주기적으로 DB 서버에 dump query 을 날리는 것으로 스케쥴러, 배치 등 생각을 해봤지만 배보다 배꼽이 더 크고 깔끔하지 않기 때문에 spring boot 의 설정값을 찾아보았습니다. 일단 구글링을 통해서 알아보고 적용해보니 아래와 같은 설정값을 적용하시면 해결..

[Spring Boot] Filter 적용

Spring Boot 에서 Filter 을 적용하여 처리해보도록 하겠습니다. Filter 의 우선순위는 Interceptor 보다 우선하고 있으며 보통 파라메타 암/복호화 또는 타 시스템과의 데이터 교환에서 사용되기도 합니다. 저의 경우에는 웹 사이트에 내부에서 파라메타를 암호화해서 서버에서 복호화하는 로직으로 처리하기 위해서 Filter 을 사용하였습니다. ChipherFilterConfig.java@Configuration public class ChipherFilterConfig { @Bean public FilterRegistrationBean getFilterRegistrationBean() { FilterRegistrationBean registrationBean = new FilterRegi..

[Spring Boot] jasypt 암호화 적용

Spring Boot 를 사용하면서 보안에 관련된 부분도 신경쓰지 않을 수 없습니다. 그 중에서도 특히 DB 접속정보에 대한 노출이 가장 큰 부분이 차지할 수 있을텐데요.이번에는 Spring Boot 에서 jasypt 를 사용하여 접속정보를 암호화하도록 해보겠습니다. pom.xml com.github.ulisesbocchio jasypt-spring-boot-starter 1.8 application.propertiesjasypt.encryptor.password=KEY Application.java@EnableEncryptableProperties Encrypt 최종 적용spring.datasource.username=ENC(D+VvgkMbSzhbefnemOrY8g==)

[Spring Boot] tiles3 설정하기

이번에는 제가 Spring Boot 로 웹프로젝트를 만들면서 tiles3 설정에 대한 부분을 포스팅하겠습니다. 이미 구글에는 어마어마한 양의 정보가 있지만 입맛에 딱 맞는 포스팅도 있었지만 여기저기서 자료를 수집한 후에 제 입맛에 맞게끔 수정하는 경우도 있었습니다. 물론 같은 방법으로 저희가 인지하지 못하는 설정차이로 인해 에러 없이 잘 됐던 소스도 있었을 것이고 잘 안되서 수정했던 소스도 있었을 것입니다. 부디 tiles3 설정을 하기 위해서 저의 블로그에 접속하셨다만 아래와 같은 방법으로 적용이 되셨기를 바랍니다. pom.xml org.apache.tiles tiles-jsp 3.0.7 TilesConfig.javapackage kr.mythsoft.stats.config; import org.spr..

[Spring Boot] Interceptor 설정하기

이번에는 Interceptor 에 대해서 포스팅하고자 합니다. Interceptor 에 대한 기본이해는 이미 하셨으리라 생각하고 설정하는 부분만 나갑니다. src/main/java/kr.mythsoft.stats/common/Interceptor/StatsInterceptor.javapackage kr.mythsoft.stats.common.Interceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.ser..

[Spring Boot] SQL Logging 사용

Spring Boot 를 사용하다보니 설정면에 있어서 기존의 Spring 보다 엄청 편하고 좋네요!개발시 SQL 문을 보고 싶을 경우에는 아래의 방법대로 하시면 확인하실 수 있습니다. 우선 pom.xml 파일에 아래와 같은 dependency 를 추가합니다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 그리고 나서 application.properties 파일의 datasource 설정을 아래와 같이 변경합니다.#spring.datasource.driver-class-name=com.mysql.jdbc.Driver #spring.datasource.url=jdbc:mysql://localhost:15000/mydb spring.datasource.driver-c..

[Spring Boot] 초기 설정

Spring boot(이하 스프링부트)를 사용해서 프로젝트를 구성하고 있습니다. 기존의 Spring 로 프로젝트를 구성할 때보다 정말 편해졌고 xml이 아닌 Java 설정으로 모든 것이 해결되지만 sql mapper의 경우에는 아직 기존의 xml 방식이 편할수도 있습니다. 나중이 되면 자세하게 포스팅을 하겠지만 현 단계에서는 저도 스프링부트로 프로젝트를 구성중이라 다음번에 제가 헤메지 않기 위해서 간략하게 남깁니다. application.properties## Server 설정 #server.port=15000 #server.session.timeout=300000 ## View 경로 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp ##..

반응형