Spring
-
AOP(Aspect Object Programming)Spring 2023. 4. 10. 22:07
AOP란 AOP(Aspect-Oriented Programming)는 OOP(Object-Oriented Programming)에서의 모듈성과 재사용성을 증대시키기 위한 프로그래밍 기법 중 하나입니다. AOP는 어떤 시스템에서 발생하는 여러 개의 요구사항들 중에서 핵심적인 기능이 아니라 간섭적인 부분(관심사)들을 분리시켜서 관리하는 기법입니다. AOP는 크게 측면(aspect), 조인 포인트(join point), 포인트 컷(pointcut), 어드바이스(advice), 위빙(weaving) 등의 개념으로 이루어져 있습니다. 측면(aspect) 관심사의 모듈화를 의미합니다. 예를 들어, 로깅이나 트랜잭션과 같은 공통적인 관심사를 분리하여 모듈화합니다. 조인 포인트(join point) 언제 측면이 실행될..
-
MockMvc의 사용 이유Spring 2023. 3. 20. 11:40
MockMVC란, 개발한 웹 프로그램을 실제 서버에 배포하지 않고도 테스트를 위한 요청을 제공하는 수단입니다. GET, POST, PATCH, DELETE 등의 요청을 만들어 보낼 수 있습니다. MockMVC를 이용한 테스트는 단위 테스트와 통합 테스트 사이의 테스트라고 합니다. - 출처 : google mockMvc 사용 이유 추천 스니펫 mockMvc를 사용하면 데이터 테스트를 훨씬 빠르게 작업할 수 있다는 장점이 있다고 생각한다. 만약 기본적인 CRUD 기능을 테스트할 때 웹 애플리케이션을 구동하고, 화면 상으로 결과를 확인하는 작업은 많은 시간이 소요되고 번거롭다. 하지만 MockMvc를 사용하면 웹 애플리케이션을 구동하지 않아도되기 때문에 번거롭지 않고 빠른 테스트가 가능하다.
-
@ResponsBodySpring 2023. 3. 18. 17:53
@ResponseBody는 ViewResolver를 요구하지 않고 원하는 데이터 반환을 json 형태로 본문에 응답해준다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public ErrorResponse inValidRequestHandler(MethodArgumentNotValidException e){ ErrorResponse response = ErrorResponse.builder() .code("400") .message("잘못된 요청입니다.") .build(); for(FieldError fieldError : e.getFieldErrors..
-
@ControllerAdvice, @ExceptionHanlderSpring 2023. 3. 18. 17:36
ExceptionHandler 어노테이션은 Controller와 RestController 클래스에서 발생한 예외를 별도의 메소드를 custom으로 생성해서 처리해준다. 쉽게 설명하자면 Controller 클래스에서 발생하는 예외 처리는 필드가 많아질 수록 복잡해진다. BindingResult result if(result.hasError()){ List fieldErros = result.getFieldErrors(); FieldError fieldError = fieldErrors.get(0); String fieldName = fieldError.getField(); String ErrorMessage = fieldError.getDefaultMessage(); Map error = new Hash..
-
@RequestParam 생략 가능Spring 2023. 3. 17. 15:29
@RequestParam은 어노테이션을 생략 가능하다. 대신에 변수 명이 요청 파라미터 명과 같아야 한다. @GetMapping("/boardDelete") public String boardDelete(Integer id){ boardService.boardDelete(id); return "redirect:/boardList"; } 위 코드를 보면 분명히 파라미터로 넘어온 id 값을 사용해서 게시글을 제거하는 것일 텐데 @RequestParam이 제거되어있다. 만약 @RequestParam 어노테이션을 제거해도 되는 사실을 모른다면 인자로 Integer id로만 선언을 해줬는데 정상적으로 내가 원하는 게시글이 삭제될 수 있는 이유를 알지 못할 것이다. 위 코드를 조금 더 상세하게 선언해 보자면 @Ge..
-
AnnotationProcessorSpring 2023. 3. 15. 17:16
AnnotationProcessor ? : Annotation Processor는 컴파일 단계에서 Annotation에 정의된 일렬의 프로세스를 동작하게 하는 것을 의미합니다. 컴파일 단계에서 실행되기 때문에, 빌드 단계에서 에러를 출력하게 할 수 있고, 소스코드 및 바이트 코드를 생성할 수도 있습니다. 사용하는 예로 자바의 @Override가 있으며, Lombok(롬북)이라는 라이브러리도 있습니다. [출처 : https://roadj.tistory.com/9]