Server
-
[Springboot] 외부 HTTP 호출 Retry와 재처리 전략Server/Spring Boot 2025. 4. 15. 14:28
외부 API를 호출할 때는 항상 실패 가능성을 염두에 두고 안정적인 Retry 정책을 세워야 합니다. 이 글에서는 Spring Boot 환경에서 Resilience4j를 활용한 Retry와 재시도 큐(DB + 스케줄러) 전략을 함께 설명합니다.✅ 1. 어떤 요청에 Retry를 적용해야 할까? Retry 가능한 요청 GET, HEAD, OPTIONS 같은 멱등한 요청 HTTP 5xx 또는 네트워크 예외 (timeout 등) Retry 피해야 할 요청 POST, PUT, DELETE 같은 멱등하지 않은 요청 비즈니스 오류나 중복 처리 위험이 있는 경우 ✅ 2. 어떤 예외/상태코드에 Retry를 걸어야 할까? Retry 권장: Sock..
-
Springboot Timezone(타임존) 에 대해 알아보자!Server/Spring Boot 2025. 4. 15. 00:01
시간은 모든 시스템에서 매우 중요한 요소입니다. 특히 서버와 클라이언트가 서로 다른 시간대를 사용할 경우, 정확한 시간 처리를 위해 타임존 개념과 변환 방법을 제대로 이해하는 것이 중요합니다. 이번 글에서는 KST(한국 표준시)와 UTC(세계 표준시)의 개념 비교부터 Spring Boot에서의 변환 예제까지 전부 정리해보겠습니다.🕒 KST vs UTC 구분 설명 UTC (Coordinated Universal Time) 전 세계 표준 시간. 한국 시간(KST)은 UTC보다 9시간 빠름 KST (Korea Standard Time) 한국 표준 시간 (UTC +09:00) 📌 예시:- UTC 기준: 2025-04-14 06:00:00- KST 기준: 2..
-
[Springboot] 스프링부트 개요Server/Spring Boot 2023. 1. 18. 10:31
공식홈페이지 학습에 대해서 천천히 읽어보면서 번역한 글을 작성합니다. 본 내용의 링크를 남깁니다. https://spring.io/projects/spring-boot Spring Boot Commercial support Business support from Spring experts during the OSS timeline, plus extended support after OSS End-Of-Life. Publicly available releases for critical bugfixes and security issues when requested by customers. spring.io Spring Boot makes it easy to create stand-alone, producti..
-
[Springboot] web+jpa vs webflux+r2dbc 비교 (2)Server 2022. 12. 7. 09:49
이번 포스팅에서 starter-web + starter-data-jpa를 이용한 servlet-stack 방식과 starter-webflux + starter-data-r2 dbc를 이용한 reactive-stack 방식의 성능 비교를 해봤었다. 2022.12.04 - [Server] - [Springboot] web+jpa vs webflux+r2dbc 비교 (1) [Springboot] web+jpa vs webflux+r2dbc 비교 (1) 기존의 개발 방식으로 많이 사용하는 starter-web + starter-data-jpa 라이브러리를 사용하여 servlet stack 방식을 많이 사용하고 있을것이다. 최근 webflux + r2dbc 라이브러리를 이용하여 비동기(async) & 논블 tis..
-
[Springboot] web+jpa vs webflux+r2dbc 비교 (1)Server 2022. 12. 4. 12:47
기존의 개발 방식으로 많이 사용하는 starter-web + starter-data-jpa 라이브러리를 사용하여 servlet stack 방식을 많이 사용하고 있을 것이다. 최근 webflux + r2dbc 라이브러리를 이용하여 비동기(async) & 논블로킹(non-blocking)으로 구현하는 reactive stack 알게 되어 구현해보고 비교해보려 한다. 각각의 stack방식의 코드 작성은 어떻게 할까? 필자는 mariadb와 연결해서 테스트를 위해 각각 blocking 방식 non-blocking 방식을 지원하는 db connection 라이브러리도 포함해서 진행한다. servlet-stack 코드 기본적인 controller, service, repository, entity를 구성 contr..
-
[Swap memory] 스왑 메모리 늘리기Server/Linux 2022. 10. 23. 19:56
스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미합니다. 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 가상 메모리라고 할 수 있습니다. # 스왑메모리 10기가 정도 설정함 $ dd if=/dev/zero of=/swapfile10G bs=1MiB count=10240 $ chmod 600 /swapfile10G $ mkswap /swapfile10G $ swapon /swapfile10G $ vi /etc/fstab $ /swapfile10G swap swap defaults 0 0
-
[OS최적화] 5. tcp_max_tw_buckets 소켓 개수 증가Server/Linux 2022. 10. 20. 17:08
tcp_max_tw_buckets 소켓 개수 증가 하는 리눅스 명령어 입니다. 현재값 확인: $ sysctl net.ipv4.tcp_max_tw_buckets 즉시적용: $ sysctl -w net.ipv4.tcp_max_tw_buckets=1800000 $ echo 1800000 > /proc/sys/net/ipv4/tcp_max_tw_buckets 영구적용: $ echo "net.ipv4.tcp_max_tw_buckets=1800000" >> /etc/sysctl.conf