분류 전체보기

개발 하나둘셋

504 Gateway Timeout 오류 해결방법: 로드밸런서 Connection idle timeout

최근 프로젝트에서 api를 구현하고 테스트하는 과정에서 '504 Gateway Timeout' 오류를 만났다. 로컬 환경에서는 문제없이 잘 동작했는데 개발 서버에 배포된 후 사용자로부터의 요청에 대한 응답 시간이 60초가 넘어가면 '504 Gateway Timeout'을 뱉어냈다. 이번 포스팅에서는 해당 문제를 해결했던 과정을 정리해보고자 한다. 1. 문제점 '504 Gateway Timeout'은 웹 서버가 클라이언트로부터의 요청을 받았으나, 게이트웨이나 프록시 서버를 통해 다른 서버로부터 시간 내에 적절한 응답을 받지 못했을 때 발생한다. 문제가 발생한 api는 외부 api로부터 stt처리를 하고 해당 데이터를 저장하는 로직으로 영상 길이에 따라 처리시간이 1분 이상이 걸리는 구조였다. 처음엔 코드의..

개발 하나둘셋/Java & Spring

Java Spring에서 예외처리 '잘'하는 법

개발 과정에서 예외처리는 프로그램의 안정성과 사용자 경험 향상에 필수적인 요소이다. 본 글에서는 Java-Spring에서의 몇 가지 예외처리 방법과 효과적인 예외처리를 위한 방법에 대해 정리해볼려고한다. 알고 있으면서도 잘 실행이 안되기도 하고 원론적으로도 정리해보고 싶어 개인적 필요에 의해 적는 글이다.💪 1. 예외처리 개요와 중요성 예외처리는 프로그램이 예상치 못한 오류 상황에 대응하고, 그로 인해 프로그램이 중단되지 않고 정상적으로 작동하도록 하는 필수적인 과정이다. 이는 프로그램의 안정성을 보장하고, 사용자 경험을 향상시키는 역할을 수행한다. 1. 프로그램이 예외처리 없이 운영될 경우, 예외 상황이 발생하면 프로그램은 중단되거나 예상치 못한 결과를 보여줄 수 있다. 이는 사용자 경험을 저하시키며,..

개발 하나둘셋/Java & Spring

Spring Boot 3.x 주요 변경 사항과 마이그레이션 방법

2022년 11월 기존의 Spring framework 5와 Spring Boot 2.X를 대체하는 Spring framework 6와 Spring Boot 3가 릴리즈되었다. 새로들어가는 회사 프로젝트와 사이드프로젝트에서 Spring Boot 3버전을 사용하기에 오늘은 Spring Boot 3버전의 주요 업데이트 내용과 레거시 방법에 대해서 알아볼려고 한다. 1. Spring Boot 3.x 주요 업데이트 내용 Java 17 버전 이상만 지원: Spring Boot 3.0은 최소 Java 17을 필요로 하며, Kotlin 1.7 이상도 지원 Java EE를 Jakarta EE로 대체: javax.*에서 jakarta.*로 변경. 기존에 java는 오라클이 상표권을 갖고 있기 때문에 Jakarta로 이름..

개발 하나둘셋/Java & Spring

Redis 서버 재시작 시 데이터 초기화 문제와 해결 방법: RDB와 AOF

오늘은 Redis 서버가 재시작될 때 발생하는 데이터가 삭제되는 문제를 다룰려고 한다. 실제로 redis로 조회수 구현 로직을 작성했을 때 조회수이기 때문에 유지가 되어야하는데 서버를 재시작할 때마다 리셋이 되서 조금 당황했던 경험이 있다. 왜 데이터가 삭제되는지, 해결방법에는 어떤 것이 있는지 정리해보겠다. 1. 문제점: 서버 재시작 시 데이터 삭제 Redis는 메모리 기반의 데이터 스토어로서, 기본 설정 상태에서는 서버가 재시작되면 메모리에 저장된 모든 데이터가 삭제된다. 이는 내가 사용했던 Sorted Set뿐만 아니라 모든 자료형의 데이터에 적용되는 문제이다. 2. 해결 방법: Redis 설정 변경을 통한 데이터 영속성 확보 데이터를 디스크가 아닌 메인 메모리에 저장하고 관리하는 "In-memo..

유리코딩
'분류 전체보기' 카테고리의 글 목록