Spring

Optinal이란?Java 8 버전부터 도입된 Optional은 값이 없는 경우를 표현하기 위한 클래스이다.Optional 클래스는 제네릭을 사용하여 어떤 타입의 객체도 감싸서 담을 수 있다. Option 객체는 값이 존재할 수도 있고, 없을 수도 있다.이는 NPE(NullPointerException) 예외를 방지할 수 있으며 코드의 안정성을 높이며 가독성을 향상 시킨다.Optional 객체 생성Optional 객체를 생성하면 of(), ofNullable(), empty() 등의 정적 팩토리 메서드를 사용할 수 있다.of() 메서드 : 값이 null이 아닌 경우에만 Optional 객체를 생성ofNullable() 메서드 : 값이 null인 경우에도 Optional 객체를 생성empty() 메서드 :..
서론 @RestController는 @Controller와 @ResponseBody의 조합이다. @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답을 담아서 전송한다. 따라서 return 값이 @Controller와 달리 반환 값으로 뷰를 찾는 것이 아닌, HTPP 메세지 바디에 바로 입력하게 된다. @RestController @RequiredArgsConstructorpublic class TestController { private final MemberService memberService; @GetMapping("api/board/member") public Member findMember(@RequestParam("id") Stri..
서론 Spring에서 클래스에 컨트롤러를 지정해주기 위한 애노테이션은 2가지가 있다. 이 2가지의 주요 차이점은 HTTP ResponseBody가 생성되는 방식, @Controller + @ResponseBody 조합이 @RestController라고 말할 수 있다. 오늘은 Controller에 대해 알아보자 @Controller @Controller는 Spring MVC의 컨트롤러 애노테이션이며 주로 View(화면)을 반환하기 위해 사용한다. @Controllerpublic class TestController { // @RequestMapping(value = "api/board/update", method = {RequestMethod.GET}) @GetMapping("api/board/update..
csrf 란? CSRF(Cross-Site Request Forgery)는 요청을 위조하여 사용자가 원하지 않아도 서버측으로 특정 요청을 강제로 보내는 방식이다. (회원 정보 변경, 게시글 CRUD를 사용자 모르게 요청) 개발 환경에서 csrf disable() 개발 환경에서는 Security Config 클래스를 통해 csrf 설정을 disable 설정하였다. 배포 환경에서는 csrf 공격 방지를 위해 csrf disable 설정을 제거하고 추가적인 설정을 진행해야 한다. 배포 환경에서 진행 사항 security config 클래스에서 csrf.disable() 설정을 진행하지 않으면 자동으로 enable 설정이 진행된다. enable 설정시 스프링 시큐리티는 CsrfFilter를 통해 POST, PU..
로그인 정보 사용자가 로그인을 진행한 뒤 사용자 정보는 SecurityContextHolder에 의해서 서버 세션에 관리된다. 이때 세션에 관해 세션의 소멸 시간, 아이디당 세션 생성 개수를 설정하는 방법에 대해 알아보자. 세션 소멸 시간 설정 세션 타임아웃 설정을 통해 로그인 이후 세션이 유지되고 소멸하는 시간을 설정할 수 있다. 세션 소멸 시점은 서버에 마지막 특정 요청을 수행한 뒤 설정한 시간만큼 유지된다. (기본 1800초) application.properties //초 기반 server.servlet.session.timeout=1800 //분 기반 server.servlet.session.timeout=90m 다중 로그인 설정 하나의 아이디에 대해서 여러 브라우저에 로그인하는 방법 https..
세션(Session) 세션(Session)은 사용자가 웹 사이트에 로그인했을 때 사용자에 대한 정보를 일정 기간 동안에 서버에 기록하고 보관함으로써 사용자를 관리하기 위한 목적으로 사용되는 저장 공간이다. 세션 정보 확인 1. id 확인하기 String id = SecurityContextHolder.getContext().getAuthentication().getName(); SecurityContextHolder.getContext() - Spring Security에서 현재 실행 중인 보안 컨텍스트를 제공하는 클래스이다. 이를 통해 현재 사용자의 인증 정보에 접근할 수 있다. getAuthentication() - 현재 인증된 사용자의 인증 정보를 반환한다. 이 정보는 Authentication 인..
구동엽
'Spring' 카테고리의 글 목록