의존관계 자동 주입
·
Spring
의존관계 주입이란 ?객체를 직접 생성하는 것이 아닌 스프링 컨테이너에서 빈을 찾아 주입하는 방식으로특정 구현 클래스에 의존하지 않고 인터페이스를 통해 의존성을 주입받기에클래스 간의 결합도가 낮아지고 유연성이 높아지게 된다 의존관계 주입 방법은 크게 네가지로 나누어진다수정자 주입일반 메서드 주입필드 주입생성자 주입일반적으로 의존관계 주입 시생성자 주입을 지향하고필드 주입은 지양하여야 한다 이유는 예제의 주문 서비스 구현체를 구현하며 알아보자의존관계 주입은 @Autowired 애노테이션을 통해 이루어진다  1. 수정자 주입setter 메서드를 통해 의존관계를 주입하는 방법선택 및 변경 가능성이 있는 의존관계에 사용한다@Componentpublic class OrderServiceImpl implements ..
Spring Security - 인증 및 권한 부여
·
Spring
Spring Security란?스프링 시큐리티는 스프링 기반의 애플리케이션에서 보안을 관리하는데 사용되는 하위 프레임워크이다 스프링 시큐리티는 Filter 형태로 동작한다Dispatcher Servlet이 어플리케이션으로 요청을 핸들링 하기 전 필터를 통해 여러 검증을 진행하는데이 과정에서 인증, 인가 및 보호 기능을 제공하여 보안 관련 작업을 쉽게 수행할 수 있도록 도와준다(HTTP 요청 → WAS → 필터1 → 필터2 → ...  →  서블릿 → 컨트롤러) 필터의 내부 동작은 다음과 같이 진행된다 동작 흐름클라이언트 요청사용자가 로그인 요청을 보냄DelegatingFilterProxy요청을 FilterChainProxy에 위임SecurityContextPersistenceFilterSecurityCo..
RestControllerAdvice를 통한 예외 관리
·
Spring
전역적인 예외 처리를 위해 기존 프로젝트에 Controller Advice를 도입하였다. 기존의 Controller 코드@GetMapping("/list")public ResponseEntity> list(@AuthenticationPrincipal MemberDetailsImpl memberDetails) { // 사용자카드 리스트 가져오기 try{ return new ResponseEntity(userCardService.getUserCardByUserId(memberDetails.getMember().getId()), HttpStatus.OK); } catch (RuntimeException e){ return new ResponseEntity(HttpStatus..