본문 바로가기

web59

@Secured vs @PreAuthorize, @PostAuthorize 서비스를 운영하며 추가로 고도화해야하는 부분에서 잠깐 Sping에서 권한에 대한 어노테이션 정리를 해보고자 한다. 일단 @Secured , @PreAuthorize, @PostAuthorize 이 3개는 다 권한에 대한 어노테이션 이지만 각각의 차이가 있다. 1. 활성화 설정 @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) 일단 SecurityConfig 파일에 @EnableMethodSecurity(securedEnabled = true, prePostEnabled = true) 와 같이 설정해 주어야지 어노테이션들을 사용할 수 있다. 2. @Secured @Secured("ROLE_ADMIN") @GetMapping(.. 2024. 4. 1.
SPA 와 SSR vs CSR 프론트엔드쪽을 공부하다가 헷갈리는 개념을 정리해 보았다. ✔️ SPA(Single Page Application) SPA 란 말 그대로 한개의 페이지를 가진 어플리케이션이다. 왜 SPA 로 개발하느냐고 묻는다면, 사용자 친화적 초기 렌더링 후 데이터만 받아오기 때문에, 상대적으로 서버 요청이 적음 Virtual Dom(가상 돔) 프론트 엔드와 백엔드 분리로 개발업무 분업화 및 협업이 용이 개발이 상대적으로 효율적 페이지 전환 시에 서버로부터 새로운 페이지를 받아오지 않고, 클라이언트 측에서 필요한 데이터만 동적으로 로드하여 화면을 갱신 정도를 말할 수 있겠다. 기본적으로 SPA 는 클라이언트 사이드 렌더링이지만 그렇다고 SPA == CSR 은 아니다. 이제 아래에서 SPA 에서의 SSR 과 CSR 에 대.. 2024. 2. 13.
[WebClient] Memory Leak WebClient 를 쓸경우 메모리 누수가 생기는 경우가 더러있다. 그게 언제냐! 하믄 첫째, 헤더누적 둘째, 예외가 생겼는데 예외처리를 하지 않을 경우 셋째, exchange() 넷째, WebClient 낮은버전 ✔ 헤더 누적 미리 webClient 를 생성해놓고 필요할 때마다 재사용을 할 때 this.webClient = WebClient.builder() .clientConnector(connector) .baseUrl("http://google.com") .header("test", "123") // 주의 !! .build() .post(); 사용하고자 하는 쪽에서 아래와 같이 header 메서드를 쓴다면 reqest header 가 계속 누적되어 append 되는 문제가 발생한다. 아래와 같이 .. 2023. 12. 15.
[SpringBoot] 생명주기와 메모리관리 왠 XXX같은 사람이 이상한 질문을 해서 정리하는 글 ✔ Spring Boot의 생명주기 - 일반적으로 Spring 과 동일하다. 간편하게 축약해봄 초기화 (Initialization): Spring Boot 애플리케이션이 시작될 때, 애플리케이션 컨텍스트를 설정하고, 빈(Bean)들을 등록하며, 다양한 설정이 로드 실행 (Execution) : 등록된 빈들이 초기화되고, 서비스들이 실행됨. 웹 애플리케이션의 경우 내장 서버가 시작되고, HTTP 요청을 받을수 있음 종료 (Shutdown) :리소스의 정리 및 해제가 이루어지고, 애플리케이션 종료 전에 후처리 작업이 수행 이벤트 (Events): 이벤트 리스너를 등록하여 특정 이벤트가 발생할 때 특정 작업을 수행 Spring Boot 애플리케이션은 주로 .. 2023. 12. 15.