Spring111 [Spring Web] 예외 처리 & 에러 페이지 Spring Web - 예외 처리 & 에러 페이지 Servlet의 예외 처리 서블릿은 다음 2가지 방식으로 예외 처리를 지원한다. Exception 처리 response.sendError() Exception 처리 웹 애플리케이션은 사용자 요청마다 별도의 쓰레드가 할당되고, 서블릿 컨테이너 안에서 실행된다. 그런데 애플리케이션 실행 중 예외가 발생했는데, 예외를 잡지 못하고 서블릿 밖으로 까지 예외가 전달되면 어떻게 동작할까? WAS(여기까지 예외 전파) 2022. 10. 12. [Spring Web] Filter & Interceptor Spring Web - Filter & Intercepter 서론 - 웹과 관련된 공통 관심사 해결하기 로그인을 한 사용자만 상품 관련된 페이지에 들어갈 수 있어야 한다고 하자. 만약 상품과 관련된 모든 컨트롤러(등록, 수정, 조회 등) 로직에서 공통으로 로그인 여부를 확인해야 한다면? 더 큰 문제는 향후 로그인과 관련된 로직이 변경될 때 생긴다. 작성한 모든 로직을 다 수정해야 한다. 이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 있는 것을 공통 관심사(cross-cutting concern) 라고 한다. 여기서는 상품 등록, 수정, 삭제, 조회 등등 여러 로직에서 공통으로 인증에 대해서 관심을 가지고 있다. 이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만, 웹과 관련된 공통 관심사.. 2022. 10. 12. [Spring Web] Session & Cookie Spring Web - Session & Cookie 로그인 처리하기 - 세션 Stateless 한 HTTP의 특성상, 로그인 같은 기능을 구현하기 위해서는 서버와 클라이언트 사이의 연결을 유지할 수 있는 방법이 필요하다. 그렇다고 클라이언트의 로그인 상태를 유지하기 위해 모든 HTTP request 마다 ID와 비밀번호를 전달받을 수는 없는 노릇이다. 이는 보안상으로도 문제가 될 수 있다. 따라서 보안상의 문제를 해결하기 위해서는 클라이언트의 중요한 정보를 모두 서버에 저장해야 한다. 그리고 클라이언트와 서버는 추정 불가능(Brute-forcing이 불가능)한 임의의 식별자 값으로 연결해야 한다. 이 식별자로는 값 자체만으로는 어떠한 의미도 가지지 않는 UUID를 사용할 수 있다. 이렇게 서버에 중요한.. 2022. 10. 12. [Spring Web] Bean Validation Spring Web - Bean Validation Bean Validation이란? Bean validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 쉽게 이야기해서 검증 애노테이션과 여러 인터페이스의 모음이다. 마치 JPA가 표준 기술이고 그 구현체로 하이버네이트가 있는 것과 같다. 일반적으로 하이버네이트 Validator 구현체를 사용한다. 참고: 하이버네이트 Validator 관련 링크 공식 사이트: http://hibernate.org/validator/ 도큐먼트에서 검증 어노테이션을 찾아서 사용하면 된다. 왠만한 검증 로직은 다 이미 구현되어있다. 특정 필드에 대한 검증 로직들을 잘 살펴보면 매우 일반적인 로직이 대부분이다. 빈 값인.. 2022. 10. 12. [Spring Web] 검증(Validation) Spring Web - Validation 서론 웹 앱에서 사용자가 HTML Form 등에 정보를 입력해서 서버에 전송을 하는 경우, 사용자가 입력한 정보에 문제가 있는지 서버에서 검증 절차를 거쳐야 한다. 그런데 만약 검증 결과 사용자가 입력한 정보에 문제가 있다고 해서 바로 오류 화면을 띄운다거나 하면, 사용자는 입력한 정보를 처음부터 다시 작성해야 한다. 좋은 웹 앱은 사용자 입력 시 오류가 발생하면, 사용자가 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한다. 컨트롤러의 중요한 역할중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 참고: 클라이언트 검증 & 서버 검증 클라이언트 검증은 조작이 가능하므로 보안에 취약하다 (JS를 활용한 클라이언트 검증은 Postman.. 2022. 10. 12. 이전 1 ··· 5 6 7 8 9 10 11 ··· 23 다음