GPU 서버 관리 자동화 시스템 알림 병목 해결기 (소비자-생산자 패턴, Redis Message Queue 알아보기)
·
경험 모음집
저는 1년간 교내 서버 관리자로 근무하면서 GPU 서버 관리 자동화 시스템의 백엔드를 개발해왔습니다. 오늘은 이때 마주했던 문제를 해결하는 방법, 그리고 생산자(Producer)-소비자(Consumer) 패턴에 대해 작성해보려고 합니다! 요구사항먼저 이해를 돕기 위해 비즈니스 요구사항을 살펴보겠습니다. GPU 서버의 각 컨테이너(정확히는 Pod)에는 만료 기한이 있습니다. 사람이 직접 수작업으로 컨테이너를 내리는 대신, 정해진 만료 기한에 따라서 컨테이너가 자동으로 정리되어야 합니다. GPU 서버 관리 자동화 시스템에는 웹 UI가 존재합니다. 각 사용자는 웹 UI에 대한 계정이 있으며, 계정 또한 만료 기한이 존재합니다. 웹 UI 계정별로 컨테이너는 여러개 생성될 수 있습니다. 앞서 말했던 것처럼 여러..
[Spring Boot] Spring Security 권한 분리하기
·
Spring Boot
서비스를 개발하다보면 여러가지 권한을 가진 회원들이 생기는 경우가 많다.방문하는 모든 사람들이 접근할 수 있는 리소스, 그리고 회원만 접근할 수 있는 리소스가 있을 것이다.작은 프로젝트에서는 회원만 접근할 수 있는 리소스는 토큰이 필요하게끔하면 되겠지만,관리자 계정이 필요한 경우도 있다. 아주 간단하게는 리눅스처럼 관리자용 특정 `user_id`를 주어 해결할 수 있다. 하지만 권한을 나눠야하는 case가 3개 이상인 경우, `user_id`로 구분하는 방식은 유연성과 확장성이 떨어진다.따라서 내가 Spring Security로 권한을 나누고 관리하는 방법에 대해 적어보고자 한다. Spring Security를 이미 사용하고 있다면, 권한을 나누는 방법은 아주 간단하다. 1. Role enum을 만든다...