Today I Learned/Spring6 [Spring] redirect 시, URL에 파라미터 붙는 이유 redirect를 하였을 시, 서버에서 사용한 키가 url에 예시처럼 붙는 경우가 있었다. 그래서 원인을 파악하고 다른 방식을 찾아보게 되었다. http://localhost:8080/test/home?publicKey=ABCDEFG 원인 해당 부분에서는 redirect 시 데이터 전달 방식이 Model에 addAttribute()로 전달하는 것이었다. 이렇게 되면 Request scope에 저장되는데, jsp에 데이터를 넘기려면 이렇게 해야 한다고 생각해서 아래처럼 작성하게 되었다.// 예시@PostMapping("/submit")public String submit(Model model) { model.addAttribute("name", "dbswl"); return "redirect:/.. 2025. 6. 28. [Security] @Secured, @PreAuthorize, @PostAuthorize 최근 보안 설정과 관련된 처리를 하면서 @PreAuthorize를 사용하며 Spring Security에서 제공하는 @Secured, @PreAuthorize, @PostAuthorize라는 세 보안 어노테이션에 대해 찾아보게 되었고, 그 김에 정리해서 올려본다. @Secured@Secured는 특정 Role을 가진 사용자만 메서드에 접근할 수 있도록 제어한다.@Secured("ROLE_ADMIN")public void adminOnlyMethod() { // 관리자만 실행 가능}특징단순 Role 기반으로 접근 제어SpEL 표현식 불가secured-enabled="true" 설정 필요 @PreAuthorize@PreAuthorize는 메서드 실행 전에 권한과 조건을 평가한다. SpEL(Spring .. 2025. 5. 27. [Spring] React 라우팅을 위한 SPA 서버 세팅 배경Spring Boot에 React 빌드 파일을 통합한 후 서버를 실행했지만, 라우팅 경로로 직접 접근할 경우 404 Not Found 오류가 발생했다. 이유React의 라우팅 문제React에서는 react-router-dom을 사용해 클라이언트 사이드에서 라우팅을 처리한다. 예를 들어, 사용자가 /login, /mypage 등으로 직접 URL 경로에 접근하면, 서버는 해당 경로에 정적 파일이 없기 때문에 404 에러를 반환한다. 하지만 SPA인 React 앱은 모든 라우팅을 클라이언트 측에서 처리해야 하므로, 서버는 모든 경로 요청을 `index.html`로 포워딩하여 React가 적절한 화면을 렌더링할 수 있도록 해야 한다. 설정@Configurationpublic class WebConfig im.. 2025. 4. 20. [Spring] RestTemplate RestTemplate이란?Spring Framework에서 제공하는 동기 방식 HTTP 클라이언트 도구서버 사이의 RESTful API 통신을 간편하게 처리할 수 있다.JSON/XML 응답을 Java 객체로 매핑할 수 있다.다양한 HTTP 메서드(GET, POST, PUT, DELETE 등) 지원한다Spring Boot 2.4 이후로는 RestTemplate에는 더이상 기능이 추가되지 않는다고 하며, WebClient(비동기) 사용을 권장한다고 한다.⇒ 주로 외부 REST API와 통신할 때 사용되며, 서버 간의 데이터 송수신(요청/응답)을 Java로 쉽게 구현할 수 있습니다.기본구조RestTemplate restTemplate = new RestTemplate();String url = "https:.. 2025. 4. 9. [Spring] getSession(), getSession(true), getSession(false) 상황회사 솔루션 맨 처음 설치 할 때 session에서 데이터를 가져오는 로직을 타는데 항상 설치 페이지가 나와야하는데 에러페이지가 떴다. 뭔가 봤더니 session이 null 이라서 nullpoint가 뜨고 있었다.. 어떻게 보면 정말 단순한 에러였는데 나는 왜 false로 해두었던걸까? 그런김에 다시 정리해보자..해결getSession(), getSession(true), getSession(false)getSession(), getSession(true) : HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로운 세션을 생성getSession(false) : HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로운 세션을 생성.. 2023. 3. 6. [Spring] 어디에서나 Spring 컨테이너 Bean 객체 가져오기 의문회사에서 코드를 짜던 중 component, controller, service, mapper등이 아니라서 마음대로 @autowired, @resource 등을 해서 가져다가 쓸 수 없었다. 그래서 bean 등록이 안되는 부분에 mapper, service등을 가져와 사용하고 싶을 때는 어떻게 해야할까? 답TestMapper mapper = (TestMapper) ApplicationContextProvider.getApplicationContext().getBean("testMapper");List List = mapper.test();WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getS.. 2023. 2. 14. 이전 1 다음