eckrin.log
close
프로필 배경
프로필 로고

eckrin.log

  • 분류 전체보기
    • [ CS기초 ]
      • 알고리즘
      • 컴퓨터구조
      • 오토마타
      • 데이터베이스
      • 네트워크
      • 운영체제
      • Linux
    • [ 아키텍쳐, 방법론, 디자인패턴 등 ]
    • [ Backend ]
      • Spring
      • Spring Web
      • Spring DB, JPA
      • Infra
      • 기타
    • [ Languages ]
      • Java
      • C
      • Kotlin
      • Go
    • [ 기타 ]
      • 백준, 프로그래머스
      • 코딩
      • 잡담
    • [ 코딩테스트 ]
    • 일기장
  • 홈
  • 태그
  • 방명록
  • 글쓰기
[Spring MVC] 스프링 API 에러처리

[Spring MVC] 스프링 API 에러처리

저번에 HTML 페이지를 이용한 에러 처리를 공부했다. https://eckrin.tistory.com/entry/Spring-MVC-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC [Spring MVC] 스프링 HTTP 에러 처리 기본 예외처리 자바의 경우, 예외가 발생했을 때 그 예외를 별도로 처리해주지 않는다면 해당 메소드를 호출한 상위 스택에 예외를 던지고, main에 이르러서까지 예외가 처리되지 않는다면 정 eckrin.tistory.com API 예외처리 그런데 앱 서버를 만드는 등 HTML을 사용할 수 없고 API를 사용해야 하는 경우에는 어떻게 해결할 수 있을까? 이 경우 HTML 오류 페이지를 만드는 단순한 방법으로는 ..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 8. 22.
  • textsms
[Spring MVC] 스프링 HTTP 에러 처리

[Spring MVC] 스프링 HTTP 에러 처리

기본 예외처리 자바의 경우, 예외가 발생했을 때 그 예외를 별도로 처리해주지 않는다면 해당 메소드를 호출한 상위 스택에 예외를 던지고, main에 이르러서까지 예외가 처리되지 않는다면 정보를 출력하면서 main 쓰레드가 종료된다. 비슷하게 웹 애플리케이션의 경우 사용자 요청별로 별도의 쓰레드가 할당되어 서블릿 컨테이너 안에서 실행되는데, 애플리케이션에서 발생한 에러를 서블릿 안에서 처리하지 못하고 바깥으로 전달되면 톰캣과 같은 WAS(Web Application Server)까지 예외가 전달된다. 그러면 WAS는 서버에서 처리할 수 없는 오류가 발생한 것으로 생각해서 HTTP 500 error를 발생시킨다. 커스텀 서블릿 오류 화면 설정 설정 이전에 에러시 Whitelabel 화면을 띄워주지 않도록 에러..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 8. 18.
  • textsms
[Spring MVC] 서블릿 필터, 스프링 인터셉터

[Spring MVC] 서블릿 필터, 스프링 인터셉터

서블릿 필터 일반적으로 웹 서비스에서, 로그인을 해야 들어갈 수 있는 페이지들이 존재한다. 서블릿 필터가 없다면 이러한 기능을 위해서 각각의 컨트롤러에서 클라이언트가 알맞은 권한을 지녔는지 확인하고, 기능 추가시마다 별도로 필터를 추가해주어야 한다. 서블릿 필터는 클라이언트로부터 서버로 요청이 들어오면 서블릿(스프링이라면 Dispatcher Servlet으로 이해) 실행 직전에 필터링해준다. 권한O 사용자 : HTTP 요청 -> 서블릿 컨테이너 -> 필터 -> 서블릿 -> 컨트롤러 권한X 사용자 : HTTP 요청 -> 서블릿 컨테이너 -> 필터(적절하지 않은 요청이라 판단, 서블릿 호출X) 이러한 필터는 하나 이상으로 구성될 수도 있다.  필터 사용필터를 사용하려면 Filter 인터페이스를 구현하고, 설..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 8. 14.
  • textsms
[Spring MVC] 쿠키+세션을 사용한 로그인

[Spring MVC] 쿠키+세션을 사용한 로그인

이전 글 : https://eckrin.tistory.com/entry/Spring-MVC-%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98 쿠키를 사용해서 로그인을 할 수 있지만, 쿠키 값은 클라이언트가 임의로 변경 가능하다. 또한 쿠키에 저장된 정보도 가져가서 보관할 수 있기 때문에, 보안상의 문제가 있다. (클라이언트쪽에 보관되는 것들은 무조건 보안에 위험이 있다.) 따라서 사용자별로 예측 불가한 임의의 토큰을 노출해서 클라이언트 쪽에서 해킹이 이루어져도 찾을 수 없게 만들고, 서버에서 토큰과 사용자 id를 매핑해서 인식한 후, 그 토큰을 서버에서 관리하게 하면 된다. 또한 토큰 자체의 만료시간을 설정해서 토큰을 악용하지 못하게 하자. 세션, 쿠키 활용 세션 기반 인증의 state..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 8. 9.
  • textsms
[Spring MVC] 쿠키를 사용한 로그인

[Spring MVC] 쿠키를 사용한 로그인

로그인 api를 개발할 때, 쿠키(영속 쿠키, 세션 쿠키)를 이용하여 로그인 상태를 유지할 수 있다. @PostMapping("/login") public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { if(bindingResult.hasErrors()) { return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if(loginMember==null) { bindingResult.reject("loginFail", ..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 8. 8.
  • textsms
[Spring MVC] 검증 2 - Bean Validation

[Spring MVC] 검증 2 - Bean Validation

https://eckrin.tistory.com/entry/Spring-MVC-%EA%B2%80%EC%A6%9D앞서 요청 검증방법에 대해서 알아봤다. 하지만 검증 기능을 지금처럼 매번 코드로 작성하는 것은 매우 번거롭다. 따라서 어노테이션을 이용한 검증방법인 Bean Validation에 대해서 알아보자. Bean Validation은 검증 어노테이션과 인터페이스들의 모음이며, 일반적으로 하이버네이트 Validator를 사용한다. Bean ValidationBean Validation을 사용하면 다음과 같은 검증 어노테이션들을 지원한다.@NotBlank : 빈값 + 공백만 있는 경우를 허용하지 않는다. @NotNull : null 을 허용하지 않는다. @Range(min = 1000, max = 1000..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 7. 14.
  • textsms

[Spring MVC] 검증 - BindingResult, @InitBinder

Validation 개요 웹 어플리케이션 폼에서 숫자를 문자로 작성하는 등의 오류가 발생할 수 있다. 이러한 처리를 별도로 해주지 않는다면 사용자는 오류 페이지로 이동하고, 처음부터 다시 입력해야 하는 문제가 생긴다. (실제 서비스에 적합하지 않다). 실제로 사용되는 웹 서비스들은 오류가 발생하면, 고객이 입력해놓은 데이터를 유지한 상태로 오류 현황을 알려주곤 한다. 타입 검증: 가격, 수량에 문자가 들어가는 등의 오류 필드 검증: 공백이 허용되지 않거나, 수 범위가 설정되는 등의 제약 필드 조합 검증: 여러 필드의 값을 조합하여 검증 (ex.가격*수량의 합이 10000 이하) 일반적으로 검증은 클라이언트 검증과, 서버 검증이 존재한다. 클라이언트 검증(using js)은 조작을 이용한 보안에 취약하다는..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 7. 8.
  • textsms

[Spring MVC] 메세지, 국제화

개요 - 메세지 협업이나 실무의 과정에서 화면에 보이는 문구를 고치기 위해서는 HTML에 일일히 하드코딩된 단어들을 변경해야 할 수 있다. 이러한 경우 실수가 일어날 수 있고 단어의 수에 따라 매우 번거로울수도 있다. 따라서 이러한 단점을 해결하기 위해서 메세지를 한 곳에서 관리하는 방법이 있다. item=상품 item.id=상품 ID 이런 식으로 messages.properties와 같이 메세지 관리 파일을 만들고, HTML에서는 해당 데이터를 key값으로 불러서 사용하는 것이다. - 국제화 메세지를 각 나라별로 별도로 관리하면, 서비스 자체를 국제화 할 수 있다. properties파일을 여러개 만들어서 분리해서 접속 지역(HTTP 헤더 accept-language)에 따라서 별도의 파일이 사용되게 ..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 7. 8.
  • textsms
[Spring MVC] URL 매핑, 데이터 전송/조회

[Spring MVC] URL 매핑, 데이터 전송/조회

@RequestMapping("uri") uri에 들어간 url 호출이 오면 애노테이션이 표시된 메소드가 실행되도록 매핑해준다. RequestMapping에 method속성으로 HTTP메서드(GET, POST, PUT...)를 지정하지 않으면 HTTP메서드와 무관하게 모두 호출되므로, 적절한 사용을 위해서는 method속성을 명시해주자 @RequestMapping(method = RequestMethod.GET) 다음과 같이 메서드를 지정해주면 GET방식의 요청만 받아들이게 되고, POST등의 다른 요청이 오면 MVC는 HTTP 405 상태코드를 반환한다 (Method Not Allowed) 또 @GetMapping 애노테이션 코드를 보면 안에 @RequestMapping 애노테이션의 method가 설정..

  • format_list_bulleted [ Backend ]/Spring Web
  • · 2022. 2. 19.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
전체 카테고리
  • 분류 전체보기
    • [ CS기초 ]
      • 알고리즘
      • 컴퓨터구조
      • 오토마타
      • 데이터베이스
      • 네트워크
      • 운영체제
      • Linux
    • [ 아키텍쳐, 방법론, 디자인패턴 등 ]
    • [ Backend ]
      • Spring
      • Spring Web
      • Spring DB, JPA
      • Infra
      • 기타
    • [ Languages ]
      • Java
      • C
      • Kotlin
      • Go
    • [ 기타 ]
      • 백준, 프로그래머스
      • 코딩
      • 잡담
    • [ 코딩테스트 ]
    • 일기장
인기 글
최근 댓글
공지사항
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바