Spring
-
Spring Security + CustomAuthenticationFilter 만들기Server/Spring Boots 2021. 5. 27. 18:03
참조자료 https://derekpark.tistory.com/101 spring security custom filter 인증 구현 http request 에서 custom filter 를 적용하여 특정 header 에 토큰을 담고 해당 토큰이 유효하면 인증된 요청이 되게끔 구현하고 싶었다. 스프링 사이트에서 표시된 이미지다. 솔직히 스프링에 대해서 제 derekpark.tistory.com https://imbf.github.io/spring/2020/06/29/Spring-Security-with-JWT.html Spring Security + JWT를 통해 프로젝트에 인증 구현하기 Spring Security와 JWT를 활용해서 프로젝트에 인증을 어떻게 구현했는지에 대해서 포스팅 하려고 한다. i..
-
Spring Profile + Maven Profile + WAR파일 배포Server/Spring Boots 2020. 10. 21. 14:46
Maven Profile 세팅 dev true dev local local live live 스프링 프로필 세팅 한가지 중요한 것은 Maven Profile이랑 Spring Profile은 다르다는 것이다. Maven Profile은 Build 시점에서 사용되는 profile이고, spring.profiles.active는 Run Time에서 쓰이는 프로필이다. 때문에 이를 JAVA_OPTS 에 넣어서 런타임 시 실행하게 하는 방법이 보통 많이 쓰이고 있다. clean package -Plocal 빌드 시 Maven Profile 설정 export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev" Runtime용 스프링 profile 설정 JAVA_OPTS를 수..
-
[Spring boot] Class path contains multiple SLF4J bindings 에러Server/Spring Boots 2020. 10. 21. 13:44
참조 www.baeldung.com/slf4j-classpath-multiple-bindings SLF4J Warning: Class Path Contains Multiple SLF4J Bindings | Baeldung Learn about the SLF4J warning "Class path contains multiple SLF4J bindings" and how to fix it www.baeldung.com 에러 로그 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:.../slf4j-log4j12-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class] ..
-
Spring Boot + Redis 삽질과 디버깅Server/Redis 2020. 10. 6. 23:53
레디스가 만능은 아니다 - Connection수를 최소화 하는 것이 중요하다. - Redis Set과 Redis List 1) Redis에 Multi Thread로 Push를 때리는 것은 위험천만하다. WAS에서 특정 데이터를 REDIS에 저장할 때, REDIS와 WAS 사이의 통신 속도 만큼 지연이 발생한다. 가령 유저가 방문했을 때 방문 히스토리를 REDIS에 쌓는다고 할 때, REDIS와 WAS사이에 30ms 의 지연이 발생한다면, 별도의 Thread에서 처리를 하지 않고, Main Thread에서 Redis에 Push를 하게 된다면 그 만큼 응답 속도는 30ms 만큼 느려지게 된다. "어? 그럼 Sub Thread에서 Push 때리면 되는 거 아냐?" Redis를 죽일 수 있는 1방의 코드 Thr..
-
스프링 부트 + 레디스 설정/ 테스트Server/Redis 2020. 9. 29. 15:46
@EnableRedisHttpSession @Configuration @PropertySource("classpath:application.properties") public class RedisConfig { @Value("${spring.redis.host}") private String redisHostName; @Value("${spring.redis.port}") private int redisPort; @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); } @Bean public R..