본문 바로가기
728x90

springboot5

[SpringBoot] Thread starvation or clock leap detected (feat. 쓰레드 기아 현상) 트러블슈팅 Spring을 위해 열일하는 우리의 작고 귀여운 EC2가 자주 죽는 이유인 쓰레드 기아 현상이란? 제목에 있는 Thread starvation or clock leap detected 해당 에러가 어떤 에러이며, 왜 발생하는지 또 해당 에러로 인한 문제와 해결 방법에 대해 알아보자. 우선 EC2 서버가 갑자기 다운되는 상황은 자원 부족, 예외 처리 미흡, 서버 설정 문제 등 이 외에도 매우 다양한 원인들로 인해 갑작스럽게 돌연사 해버릴 수 있는 개복치 같은 서버의 사망 원인을 파악하기 위해서는 가장 쉬우면서도 중요한 서버의 로그를 확인해보면 서버의 상태나 죽었다면 죽은 이유를 파악할 수 있다. 서버가 이런 로그를 계속하여 뱉어냈다면 이 글에서 다루는 쓰레드 기아 문제이다. WARN 23318 --- [l.. 2024. 2. 11.
[SpringBoot] Redirect처리 과정 (feat. ClassCastException) SpringMVC를 사용하여 웹 API개발 중 세션이 없는 요청에 대해 로그인 페이지로 Redirect 시키는 서비스 로직을 작성하였는데 화면 이동등에 대한 요청은 문제없이 Redirect 처리 되었지만 데이터 조회와 같은 Api요청에서는 에러가 발생하였다. 우선 원인은 Redirect처리 시 발생한 ClassCastException 때문인데, Spring의 Redirect의 처리 과정에 대해 자세히 알아보자. Spring에서 Redirection은 클라이언트에게 새로운 URL로 이동하라고 알려주는 프로세스를 의미한다. 리다이렉션은 주로 사용자를 다른 페이지로 이동시키거나, 요청을 다른 컨트롤러 또는 URL로 보내는 데 사용된다. Redirect Processing Logic (Debugging) 1. .. 2023. 10. 23.
[SSO] SSO(Single Sign-On) 개념 정리 SSO는 사용자가 여러 애플리케이션 또는 서비스에 대해 하나의 인증 정보로 로그인할 수 있는 인증 메커니즘으로 보안 강화 및 인증, 권한 부여 솔루션 등으로 활용된다. 특징 및 장점 단일 인증 정보: 사용자는 SSO시스템을 통해 단일 인증 정보(id,pw)를 입력하여 여러 서비스에 접근할 수 있다. 사용자 경험 향상: 여러 번의 로그인 절차를 거치지 않고도 여러 서비스에 쉽게 액세스할 수 있다. 보안 강화: 하나의 강력한 인증 수단을 사용하므로, 다양한 애플리케이션에서 사용자 인증 정보를 관리하는 데 필요한 보안 수준을 높일 수 있다. 관리 용이성: 사용자 인증 정보를 중앙 집중화하여 관리자가 액세스 권한을 효과적으로 관리할 수 있다. 단점 의존성: SSO 시스템이 다운될 경우, 여러 서비스에 대한 액세.. 2023. 10. 20.
[SpringBoot] 로그아웃 후 이전 페이지로 이동(뒤로가기) 방지 웹 브라우저에서 로그아웃, 세션 만료 등으로 인해 로그인페이지로 이동됐을 때 뒤로가기 버튼을 눌러 이전 페이지로 돌아가는것을 막는 방법..! 웹 사이트에서는 보통 Session을 이용해 사용자의 로그인 상태를 유지한다. Interceptor를 등록해 session의 유무를 확인하여 로그아웃이나 세션 유지기간의 만료로 인해 세션이 소멸된 경우 로그인 화면으로 강제로 이동(redirect)시킨다. 하지만 강제로 로그인 페이지로 Redirect 시키더라도 웹 브라우저의 뒤로가기 버튼을 누르면 이전 페이지를 볼 수 있다. *Session이 없는 상태에서 주요 페이지를 보는것은 보안 매우 취약할 수 있다. 원인: 웹브라우저에서 페이지를 이동하면 자체적으로 방문기록(History)을 캐시(cache)에 저장하는데 .. 2023. 10. 20.
[SpringMVC] 스프링 MVC? BOOT? Spring Java 기반의 웹 애플리케이션 개발을 위한 오픈소스 프레임워크 Spring MVC 웹 애플리케이션 개발에 있어 MVC 패턴을 적용할 수 있도록 Spring에서 제공하는 프레임워크 Spring Boot Spring 설정들을 자동화하는 Spring 기반의 프레임워크 Spring MVC · Spring Boot 차이 Spring MVC 와 Spring Boot 의 가장 큰 차이는 설정의 자동화 라고 생각한다. Spring MVC 구조의 경우 XML 파일들에 Dispatcher Servlet Handler Mapping View Resolver 설정들을 해줘야한다. 수업을 들으면서도 각종 XML 파일들에 설정을 하고 그 설정들을 이해하는게 가장 어려운 부분이었다. 하지만 Spring Boot 의 .. 2023. 8. 19.
728x90