Framework/Spring2024. 9. 7. 00:30[Spring] - HandlerExceptionResolver 활용하여 예외처리하기

이 포스팅을 읽기전에 이전의 작성한 포스팅들과 연관되어 설명하는 것이 많기때문에 이전 포스팅들을 읽고오는 것을 추천한다.아래 링크는 포스팅 순서대로 첨부한 것이다.2024.09.04 - [Framework/Spring] - [Spring] 쉬우면서 정확하게 익혀보는 필터와 인터셉터의 예외처리 흐름과 예외 페이지 응답 [Spring] 쉬우면서 정확하게 익혀보는 필터와 인터셉터의 예외처리 흐름과 예외 페이지 응답스프링을 사용하지 않는 순수 서블릿 컨테이너는 Exception과 response.sendError(Http상태코드, 오류메시지)두 가지 방식으로 예외를 처리한다.  Exception으로 처리하기기본적으로 자바는 예외가 발생하lee-dev-log.tistory.com2024.09.06 - [Frame..

Framework/Spring2024. 9. 7. 00:19[Spring] - 스프링에서 예외처리를 위한 'HandlerExceptionResolver' 알아보기

[Spring] - API예외 처리를 이해하기위한 기본 개념!이 포스팅은 이전에 작성한 아래 포스팅을 읽었다는 가정하에 작성한다.이전포스팅을 읽어야만 현재 포스팅이 이해되는 것은 아니지만 글의 흐름을 이전포스팅과 연관지어서 작성하며 코드를lee-dev-log.tistory.com  [Spring] 쉬우면서 정확하게 익혀보는 필터와 인터셉터의 예외처리 흐름과 예외 페이지 응답스프링을 사용하지 않는 순수 서블릿 컨테이너는 Exception과 response.sendError(Http상태코드, 오류메시지)두 가지 방식으로 예외를 처리한다.  Exception으로 처리하기기본적으로 자바는 예외가 발생하lee-dev-log.tistory.com먼저 이 포스팅을 읽기전에는 이전에 작성했던 위의 포스팅을 읽은 후에 ..

Framework/Spring2024. 9. 6. 13:26[Spring] - API예외 처리를 이해하기위한 기본 개념!

이 포스팅은 이전에 작성한 아래 포스팅을 읽었다는 가정하에 작성한다.이전포스팅을 읽어야만 현재 포스팅이 이해되는 것은 아니지만 글의 흐름을 이전포스팅과 연관지어서 작성하며 코드를 이전 포스팅의 것을 재사용하기때문에 이전 포스팅을 읽어보는것을 권장한다 ! [Spring] 쉬우면서 정확하게 익혀보는 필터와 인터셉터의 예외처리 흐름과 예외 페이지 응답스프링을 사용하지 않는 순수 서블릿 컨테이너는 Exception과 response.sendError(Http상태코드, 오류메시지)두 가지 방식으로 예외를 처리한다.  Exception으로 처리하기기본적으로 자바는 예외가 발생하lee-dev-log.tistory.com  이전 포스팅에서는 예외 처리, HTTP 상태코드에 맞는 에러 페이지를 작성하여 /template..

[Spring] 쉬우면서 정확하게 익혀보는 필터와 인터셉터의 예외처리 흐름과 예외 페이지 응답
Framework/Spring2024. 9. 4. 00:43[Spring] 쉬우면서 정확하게 익혀보는 필터와 인터셉터의 예외처리 흐름과 예외 페이지 응답

스프링을 사용하지 않는 순수 서블릿 컨테이너는 Exception과 response.sendError(Http상태코드, 오류메시지)두 가지 방식으로 예외를 처리한다.  Exception으로 처리하기기본적으로 자바는 예외가 발생하면 예외를 다음 메서드로 계속 넘기다가 main()메서드가 종료될 때 까지 예외를 처리하지 못할 경우 예외 정보를 남기고 해당 쓰레드는 종료된다.웹 애플리케이션은 쓰레드가 하나만 있는것이 아니라 사용자별로 각각의 쓰레드가 할당된다.애플리케이션 어딘가에서 예외가 발생하고 그 예외를 처리하지 않고 서블릿 밖으로 까지 예외가 전달된다면 어떻게 될까?컨트롤러(예외발생) -> 인터셉터 -> 서블릿 -> 필터 -> WAS예외는 타고타고 올라가서 WAS까지 전달되며 WAS는 서버에서 발생한 예외..

테스트2024. 9. 1. 21:22[테스트] 테스트를 위한 Mock

이메일을 전송하는 비즈니스 로직의 테스트코드를 작성해야한다고 해보자어떻게 작성해야할까?'벤더의 SMTP를 통하여 클라이언트로부터 받은 정보를 데이터로 만들어 이메일을 전송한다'라는 로직을 수행해야하는데 일반적으로 테스트코드를 작성한다면 실제 이메일이 테스트코드를 실행할때마다 날라가게된다. 만약 회원가입시에 이메일을 통해 인증번호를 받고 인증번호를 서버와 일치하는지 확인하고.. 이런테스트 코드를 작성하려면 너무 많은 고민을 해야하고 시간과 자원을 낭비하게 될 수 있다."만약 이메일을 전송한셈 치면어떨까?" 라는 생각으로 사용하는 테스트 라이브러리가 Mock이다.Mock은 "가짜"라는 의미로 테스트 코드에서 사용하고자하는 컴포넌트를 가짜 컴포넌트 대상으로 만들어 해당 컴포넌트에 대한 반환값 또는 동작 기능을..

에러/JPA2024. 9. 1. 13:06[에러] 테스트코드 실행중 참조 무결성 제약조건위반

문제발생관리자가 원하는 날짜의 주문판매현황을 조회한 후 이메일로 전송받는 로직의 테스트코드이며 테스트 메서드 자체에는 문제가 없지만 테스트의 독립성을 위해 테스트 후 deleteAllInBatch() 메서드를 통해 저장소를 비우는 과정에서 예외가 발생한듯 하였다. @SpringBootTestclass OrderStatisticsServiceTest { @Autowired OrderStatisticsService orderStatisticsService; @Autowired OrderRepository orderRepository; @Autowired ProductRepository productRepository; @AfterEach void tearDown()..

카테고리 없음2024. 8. 27. 12:19[JWT] - REST의 stateless를 구현하기위한 JWT

웹 애플리케이션은 클라이언트의 로그인 여부(인증)를 확인하기위해서 서버는 아래 3가지 방법을 대표적으로 사용한다.쿠키세션토큰==쿠키방식의 단점==보안에 취약하다쿠키에는 용량 제한이 있어 많은 정보를 담을 수 없다웹 브라우저마다 쿠키에 대한 지원 형태가 다르기때문에 브라우저간 공유가 불가능하다쿠키의 사이즈가 커질수록 네트워크에 부하가 심해진다==세션방식의 단점==세션 ID자체를 탈취당하는 보안문제가 있다서버에서 세션을 유지하기때문에 stateless하지않다토큰 인증토큰 기반 인증 시스템은 클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 '토큰'을 부여한다. 이 토큰은 유일하며 토큰을 받는 클라이언트는 또 다시 서버에 요청을 보낼 때 요청 헤더에 토큰을 심어서 보냄으로써 서버..

image