프로그래밍/Spring Boot(16)
-
[Spring] 디렉토리 구조 변경 중 생긴 오류
디렉토리 패키지 구조를 완전히 변경해야하는 일이 생겨서 별 생각 없이 옮겼다가 오류가 바로 떴다 기존에 있던 코드에 대하여 bean을 등록하는 등의 문제이럴 땐 한 번 씩 gradle clean을 해주면 된다!
2024.12.31 -
[Security] Authentication Filter에 대하여 살펴보기
요청과 응답에 대한 HttpSecurity 객체에 대하여 필터를 설정하여 인증 및 인가 설정을 한다. 전반적인 흐름1. AuthenticationFilter를 구현하여, 메소드를 통하여 인증과 인증이 필요없는 경로 등을 설정한다.2. Authentication 에러에 대하여 (인증 실패) 처리할 AuthenticationEntryPoint 클래스를 구현한다. Spring Security 기능을 사용하기 위하여 일반적으로 SecurityConfig로 Configuration을 설정한다.클라이언트가 요청을 하면, 필터들을 통하여 서버에 도착하게 된다.이 때의 필터를 Configuration에 저장한다. 예시 코드public void doFilter(ServletRequest request, Servle..
2024.12.27 -
[Spring] 예외 처리 ExceptionHandler
스프링에서 @ExceptionHandler는 애플리케이션에서 발생하는 특정 예외를 처리하기 위해 사용되는 애노테이션이다. @ExceptionHandler는 주로 REST API를 개발할 때 유용하며, 사용자에게 친화적인 에러 메시지를 제공하거나 특정 HTTP 상태 코드를 반환하는 데 사용된다.-> Response Body를 직접 설정 가능 기본 사용법@ExceptionHandler는 컨트롤러 클래스나, 컨트롤러 계층 전반에서 예외를 처리하는 데 사용됩니다.@RestController@RequestMapping("/api")public class SampleController { @GetMapping("/test") public String testEndpoint() { // 예..
2024.11.29 -
[Spring] ResponseEntity에서 객체를 반환할 때 new 연산자 사용
ResponseEntity 반환ResponseEntity 객체 반환 1. 정적 팩토리의 사용 예시 코드return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(errorResponse); Response.status(), ResponseEntity.ok() 등 메서드를 사용하면 코드가 간결해지면서매개변수의 순서가 어떻게 되든 상관 없이 알아서 메서드를 사용하여 설정하면 됨직접 new를 사용하여 생성자를 호출할 필요 없기에 깔끔함객체 생성 방식이 코드에 노출되지 않아 더욱 유연하고 유지보수하기 쉬운 구조를 가질 수 있음 2. 직접 new 생성자를 사용 예시코드return new ResponseEntity(errorResponse, ..
2024.11.26 -
[Spring] @EqualsAndHashCode
@Data 어노테이션에서도 다뤘었던 내용이다.(참고: https://kite-u.tistory.com/107 ) 간단히 설명하자면, Equals와 HashCode 메서드 기능을 둘 다 제공 가능하는 어노테이션이다. 어노테이션을 사용하지 않을 때import java.util.Objects;public class Person { private String name; private int age; // 자동 생성된 equals() @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false..
2024.11.25 -
[Security] 스프링 시큐리티(Spring Security) 살펴보기
스프링 시큐리티(Security)란?스프링 프레임워크에서 액세스 토큰을 제공하고 인증 및 인가에 대한 설정을 할 수 있도록 제공하는 어플리케이션이다. 시큐리티를 통하여 스프링에서의 로그인 기능, 권한 설정, 보안 등에 대하여 설정하고 구현할 수 있다. 1. 의존성 추가build.gradle에 다음 의존성을 추가한다.implementation 'org.springframework.boot:spring-boot-starter-security'이를 통하여 시큐리티에서 제공하는 기능들을 사용할 수 있다. 2. 구현 가능 기능그렇다면 스프링 시큐리티에서 제공하는 기능들은 무엇이 있을까? - Authentication FilterAuthentication(인증)과 관련된 필터를 직접 설정할 수 있다.필터를 통하여 ..
2024.11.11