본문 바로가기

Spring69

Spring API 예외처리 / ResponseEntitiy 예외 처리를 따로 배우는 이유! 1. 웹 애플리케이션의 “예외”에 대하여 다시 한 번 인지할 필요가 있습니다. 2. 웹 애플리케이션에서의 에러를 Client와 Server 모두가 잘 알지 못하면, 서비스하는 환경에서 발생하는 에러에 대해서 제대로 대응 할 수가 없습니다. 3. AOP를 배웠던 만큼, 에러를 처리하는 것 역시 관심사를 분리해서 더 효율적으로 처리 할 수 있지 않을까 고민해보는 시간이 필요해서 입니다. 서버가 응답을 보낼 때 start-line에 있는 응답 코드를 보겠습니다. 응답 헤더에는 API 요청에 대한 상태코드를 함께 보냅니다. Response 메시지 : start-line (상태줄) : API 요청 결과 (상태 코드, 상태 텍스트) // HTTP/1.1 404 Not Found (복.. 2024. 2. 19.
Spring AOP Spring AOP 란? 스프링 프레임워크에서 제공하는 기능 관점 지향 프로그래밍을 지원하는 기술입니다. 로깅, 보안, 트랜잭션 관리 등과 같은 공통적인 관심사를 모듈화 하여 코드 중복을 줄이고 유지 보수성을 향상 @Aspect Spring 빈(Bean) 클래스에만 적용 가능합니다. 어드바이스 종류 @Around: '핵심기능' 수행 전과 후 (@Before + @After) @Before: '핵심기능' 호출 전 (ex. Client 의 입력값 Validation 수행) @After: '핵심기능' 수행 성공/실패 여부와 상관없이 언제나 동작 (try, catch 의 finally() 처럼 동작) @AfterReturning: '핵심기능' 호출 성공 시 (함수의 Return 값 사용 가능) @AfterThr.. 2024. 2. 19.
Spring Unit Testing & Mockito &통합 테스팅 Unit test 하는 이유. 버그 발견 시간이 늦어짐에 따라 비용이 기하급수적으로 커지는 걸 알 수 있습니다. 따라서 테스트 코드를 작성한다면 프로그램의 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방지할 수 있습니다. 개발자는 단위 테스트 (Unit Testing) 를 작성하여 프로그램을 테스트 할 수 있습니다. JUnit5 다루기 어노테이션 Before - After @BeforeEach : 각각 테스트 실행전에 실행 (모든 테스트들) @AfterEach : 각각 테스트 실행후에 실행 (모든 테스트들) @BeforeAll : 테스트 가 실행 되기전에 최초로 실행 (한번) @AfterAll : 테스트 가 실행 된 후 에 실행 (한번) 어노테이션 테스트 꾸미기 : @DisplayNam.. 2024. 2. 16.
02-05 til 최신 버전 Spring 3.2.2 사용 할때 주의점. + Spring security 조금 보통 pathvariable 하면 이렇게 하는데. @PutMapping("/schedule/{id}") public Long updateSchedule(@PathVariable Long id, @RequestBody ScheduleRequestDto requestDto,@AuthenticationPrincipal UserDetailsImpl userDetails) { return service.updateSchedule(id,requestDto,userDetails.getUser()); } 이렇게 하면 이상한 에러가 (그것도 엄청 많이)뜹니다. 그 이유는 id 값을 찾을 수 없다면서 입니다..... (name = "id") 로 값으 지정해 주어야 알아 뭘 가져 와야 하는 지 이해 합니다.. @PutMap.. 2024. 2. 5.