inflearn logo
강의

講義

知識共有

Spring Boot JUnit テスト - セキュリティを活用した Bank アプリケーション

会員登録コントローラの検証AOP適用

validation aop사용에 대해서 질문있습니다.

245

qheogus55

投稿した質問数 42

0

@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(BindException.class)
public ApiResponse<Object> bindException(BindException e) {

이런식으로 전역적으로 validation을 해주면 aop를 사용하지 않고 더 편하고 어노테이션도 안달아줘도 될거같은데 aop를 사용하면 장점이 무엇인가요?

spring-boot junit 소프트웨어-테스트

回答 2

1

metacoding

@ExceptionHandler(BindException.class)
public String exBind(BindException e) {
    for (FieldError error : e.getFieldErrors()) {
        return Script.back(error.getDefaultMessage() + " : " + error.getField());
    }
    throw new Exception500("알수없는오류");
}
@PostMapping("/login")
public String login(@Valid UserRequest.LoginDTO loginDTO) {
    User sessionUser = userService.로그인(loginDTO);
    session.setAttribute("sessionUser", sessionUser);
    return "redirect:/board";
}

위와 같이 처리하셔도 됩니다.

본 강의에서는 AOP를 교육한다고 생각하시면 되요!!

저도 ExceptionHandler로 처리해야 한다는 생각을 한번도 해보지 못했어요!!

좋은 질문 감사드립니다 ㅎ

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

AOP(Aspect-Oriented Programming)를 사용하는 장점 중 하나는 코드의 재사용성을 높일 수 있다는 것입니다. 특정 작업을 위해 공통적으로 사용되는 코드를 분리하여 관리할 수 있기 때문에, 같은 기능을 필요로 하는 다른 부분에서도 쉽게 재사용할 수 있습니다. 예를 들어, validation 로직을 여러 컨트롤러나 서비스에 걸쳐 일관되게 적용해야 할 경우, AOP를 사용하면 해당 로직을 중앙에서 관리하면서 필요한 곳에 적용할 수 있습니다. 이로 인해 코드의 중복을 줄이고, 유지 보수성을 향상시킬 수 있습니다.

또한 AOP를 사용하면 비즈니스 로직과 관심사를 분리할 수 있습니다. 즉, 비즈니스 로직 코드에 섞여 있을 수 있는 보안, 로깅, 트랜잭션 관리 같은 부수적인 기능을 분리해 관리할 수 있으므로, 비즈니스 로직의 가독성과 순수성을 유지할 수 있습니다.

@ExceptionHandler를 사용하는 접근 방식이 특정 상황에서 더 직관적이고 편리할 수 있지만, AOP를 활용함으로써 얻을 수 있는 장점들이 있으므로, 프로젝트의 요구 사항과 구조에 따라 적절한 방법을 선택하는 것이 중요합니다.

요청/응답 DTO 관련 문의

0

170

2

안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.

0

161

1

Dummy 클래스 위치에 대한 질문

0

293

2

테스트 방식에 관해서 질문이 있어요

0

292

2

스프링 버전업일 경우에는 Pointcut @PostMapping 조건이 달라질까요?

1

434

1

equals와 longValue 관련 질문드립니다

0

329

1

계좌번호를 Long 타입으로 하는 이유가 무엇일까요?!

0

499

2

[정보공유] Hibernate 로그 작동 안하시는 분들!!

3

346

0

UserControllerTest 테스트 실패 문의

0

318

1

스프링 시큐리티 6.2 버전 이후로 apply() 메서드를 이용한 JwtAuthenticationFilter 가 등록이 안됩니다.

2

1107

1

import 오류

0

427

3

spring initializer gradle 에서 3.x.x 대 밖에 없어요. 2.x.x는 보이지 않는데 어떡하져

0

438

2

안녕하세요 로그엔 성공적으로 들어온것같습니다..

0

237

1

JwtAuthorizationfilter test mvc.performget 관련 질문입니다!

0

287

1

JwtAuthorizationfilter test mvc.performget 부

0

226

1

longValue() 질문

0

228

1

jwt 인가필터 규현및 등록

0

334

1

스프링부트 3버전

1

334

1

권한처리를 위한 세션강제주입

0

418

1

JwtVO 를 인터페이스로 만든 이유

0

359

1

계좌 조회 질문드립니다

0

229

1

DummyObject 에 대하여

0

308

2

DTO를 이너클래스로 계속추가하는 이유

0

695

2

Builder 사용 궁금

0

404

1