728x90

Backend 150

@RequestMapping consumes, produces

@ReqeustMapping 정의시 아래와 같이 consumes와 produces 를 정의할 수 있다. @RequestMapping("/test" , consumes = MediaType.APPLICATION_JSON_UTF8_VALUE , produces = MediaType.APPLICATION_JSON_UTF8_VALUE) public String hello(){ return "hello"; } consumes 는 클라이언트로부터 수신하고자 하는 데이터 포맷을 지정하는 것이고 produces는 서버에서 응답하고자 하는 데이터 포맷을 지정하는 것이다. 클라이언트 입장에서는 서버쪽 api 호출시 보낼 데이터의 포맷을 Content-Type 이라는 헤더값으로 명시하고 응답받을 수 있는 데이터 포맷을 Ac..

Backend/Spring+Boot 2021.07.07

Apache mod_proxy 로 HA 처리하기

https://hashcode.co.kr/questions/1943/%EC%95%84%ED%8C%8C%EC%B9%98%EC%97%90-mod_proxy_balancer%EB%A5%BC-%EC%A0%81%EC%9A%A9%ED%95%A0-%EB%95%8C-failover-%EC%B2%98%EB%A6%AC%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98%EC%9A%94 아파치에 mod_proxy_balancer를 적용할 때 failover 처리는 어떻게 하나요? 안녕하세요. 현재 제가 구성중인 서버의 구조는 아래 그림과 같습니다: 그리고 apache0의 httpd.conf 파일은 아래와 같습니다: # 생략 ProxyRequests off ProxyPreser..

Backend/Server 2021.06.07

SpringBoot Redis Cluster Lettuce 설정

공식 홈페이지에 Redis Cluster 기준 client 설정이 있긴한데 Jedis 기반이라 Lettuce 설정을 기록해둔다. 1. application.yml 설정 참고로 구조는 꼭 아래와 같이 할필요는 없다. 그냥 본인이 편한대로 하면 된다. config 클래스에서 그대로 불러오기만 하면 된다. spring: redis: cluster: nodes: localhost:6370,localhost:6371,localhost:6372 2. Config 설정 @Configuration //@EnableRedisRepositories//없어도 잘 돌아가는듯? 스프링부트 자동설정에 포함되어 있음. public class RedisConfig { //@Value("${spring.redis.host}") //p..

Backend/Spring+Boot 2021.05.04

SpringBoot embedded Redis Cluster

SpringBoot 환경에서 embedded Redis 를 구성하는 방법은 많이 나와있다. 그런데 그 방법 대부분이 Single instance 방식이고 나는 실제로 서비스시에는 Redis Cluster 를 사용할거라 embedded Redis도 Cluster로 구성하고 싶었다. 서칭과 여러 시행착오 끝에 jitpack.io/p/tarossi/embedded-redis 여기를 참고해서 구성을 성공할 수 있었다. 1. 의존성 추가(Gradle 기준) dependencies { implementation 'com.github.tarossi:embedded-redis:1.5.2' } 2. embedded Redis Bean 설정 @Profile({"local", "test"}) @Component public..

Backend/Spring+Boot 2021.05.04

spring cloud config 비활성화

spring-cloud-starter-config 의존성이 포함되어 있다면 구성파일(application.yml 등)에 아래와 같이 config-server 설정이 import 되어 있어야 한다.(springboot 2.4 기준) 그렇지 않으면 구동시 에러가 발생한다. spring: config: import: configserver:http://test-config-server.test.com 하지만 local 에서 개발 시에는 config-server 를 설정해서 사용하는 것이 오히려 번거롭기 때문에 이를 비활성화 할 필요가 있다. 아래와 같이 하면 된다. spring: cloud: config: enabled: false 그리고 spring-cloud-bus 를 사용하기 위해 spring-cloud..

Backend/Spring+Boot 2021.05.04

Request 정보 Logging 하기

개발서버에서는 Request 정보를 모두 로그를 찍어놓는 것이 테스트나 분석에 도움이 된다. 매번 log.info 로 찍거나 aop 를 구현하는 것도 방법이지만 Spring에서 제공하는 필터를 활용하는 것은 좋은 방법이다. CommonsRequestLoggingFilter 가 바로 그것인데 아래와 같이 셋팅하면 된다. 1. 필터등록 @Configuration public class WebMvcConfig { @Bean public CommonsRequestLoggingFilter commonsRequestLoggingFilter() { CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter(); filter.setIncludeClient..

Backend/Spring+Boot 2021.05.04
728x90