🍃 Spring

    [Spring Batch] 개인 정리

    스프링 배치 소개- 스프링 배치는 Job 안에 여러개의 Step이 있는 구조다@Beanpublic Job myJob(JobRepository jobRepository, Step step1, Step step2) { return new JobBuilder("myJob", jobRepository) .start(step1) // Step1 실행 .next(step2) // Step2 실행 .build(); - JobRepository Job이 실행될 때마다 실행한 기록(성공/실패)과 관련된 상태 정보가 JobRepository에 저장된다.저장되는 위치는 기본적으로 인모메리 DB인 HSQL 메모리에 저장된다.하지만 mysql 의존성을 어떻게..

    [Spring] RFC 7232 - Conditional Requests로 비용 및 부하 최적화 하기

    개요RFC 7232 - Conditional Requests는 브라우저가 불필요한 서버 요청을 최소화하고, 네트워크 트래픽과 서버 자원을 절약할 수 있도록 도와주는 인터넷 표준 정의 문서를 말합니다. 이 기능을 잘 사용한다면 AWS와 같은 클라우드 환경에서 비용 최적화 및 대용량 트래픽에서의 트래픽 개선도 가능합니다.기능 소개If-Modified-Since의 시간 기준으로 업데이트된 것만 조회 가능​ ​ETag와 Last-Modified 기준으로 기존에 받았던 정책 값을 캐시 해서 사용 가능​ ​브라우저의 캐시 자동 처리로 인해 서버에 불필요한 요청 제어일단 위의 기능들은 굳이 규약을 안 지켜도 만들 수 있으나 규약을 지켜서 만든다면 좀 더 효율적인 코드 개발이 가능해지겠습니다.바로 활용 예시를 몇개 확..

    [Spring] gRPC 사용법

    깃헙에 코드가 있습니다.gRPC란?gRPC는 구글에서 만든 원격 프로시저 호출(RPC) 기술입니다.RPC는 원격 위치에 있는 서버에서 함수를 직접 실행하는 방식으로, 클라이언트가 서버의 함수를 마치 로컬 함수처럼 호출할 수 있게 해줍니다.gRPC는 저지연성을 위해 HTTP/2 위에서 동작하며, 주로 클라이언트 - 서버 간의 요청-응답을 처리하는데 사용됩니다.그러나 여기서 말하는 클라이언트-서버는 React와 Spring Boot처럼 웹 프론트엔드와 백엔드를 의미하는 것이 아니라, 마이크로서비스 아키텍처(MSA) 환경에서 분산된 시스템 간의 통신을 의미합니다.gRPC는 데이터가 바이너리 형식으로 처리되기 때문에, 사람이 읽기 어렵고 개발자가 아닌 일반 사용자와의 상호작용에는 적합하지 않습니다. 요약하자면 ..

    [Spring] Redis 연결 관리 및 성능 최적화

    Connection PoolSpring Boot에서 Redis를 사용할 때 기본적으로 lazy connection을 사용합니다.즉, Redis에 대한 최초 연결이 있을 때 뒤늦게 Connection Pool을 가져오는 방식입니다.@RestControllerpublic class RedisWarmupController { @Autowired private RedisConnectionFactory redisConnectionFactory; @Autowired private StringRedisTemplate redisTemplate; @GetMapping("/redis-test") public String testRedisConnection() { long start = System.curr..