Spring

Spring/Spring MVC - 활용

[Spring] API ExceptionHandler(API 예외 처리)

API 예외 처리 방법 API에서 예외 처리는 HTML 페이지와는 다르다. API는 오류 페이지를 보여주는 것 외에도, 각 오류 상황에 따른 응답 스펙을 제공해야 한다. [1. 서블릿 오류 페이지 활용] 'WebServerCustomizer' 를 사용하여 서블릿의 오류 페이지 경로를 설정할 수 있다. 이를 통해, WAS에서 예외가 발생하거나 'response.sedError()'가 호출될 때 지정한 오류 페이지 경로로 이동하게 된다. @Component public class WebServerCustomizer implements WebServerFactoryCustomizer { @Override public void customize(ConfigurableWebServerFactory factory)..

Spring/Spring MVC - 활용

[Spring] ExceptionHandler , ErrorPage(예외 처리, 오류 페이지)

서블릿 예외 처리 서블릿 환경에서의 예외 처리에 대해 이해하려면 웹 애플리케이션의 구조와 동작원리를 알아야 한다. 1. 예외 처리 방법 서블릿에서 예외 처리는 주로 두 가지 방법으로 처리된다. Exception을 통한 처리 respon.sendError(상태 코드, 오류 메시지)를 통한 처리 2. 자바 직접 실행 vs 웹 애플리케이션 자바 직접 실행 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외를 처리하지 않으면, 처음 실행한 main() 메서드를 넘어 예외 정보가 출력되고, 해당 쓰레드는 종료된다. 웹 애플리케이션 웹 애플리케이션에서는 각 사용자 요청마다 별도의 쓰레드가 생성된다.이러한 쓰레드들은 서블릿 컨테이너 내에서 동작한다. 만약 웹 애플리케이..

Spring/Spring MVC - 활용

[Spring] Servlet Filter, Spring Interceptor(서블릿 필터, 스프링 인터셉터)

Servlet Filter 1. 공통 관심 사항(Cross-cutting Concern) 애플리케이션 여러 로직에서 공통으로 관심이 있는 것을 의미한다. 예를 들어, 인증과 권한 확인은 여러 웹 페이지나 기능에서 반복적으로 처리해야하는 공통 관심시가 될 수 있다. 로그인하지 않은 사용자도 특정 URL로 직접 접근 가능하다면 문제가 발생한다. 이런 공통적인 로직을 모든 컨트롤러나 서비스에서 반복적으로 구현하는 것은 유지보수의 어려움을 가져온다. 2. 서블릿 필터의 도입 서블릿 필터는 웹 애플리케이션에서 반복되는 공통 관심사를 처리하기 위한 기능이다. 웹 요청이 들어올 때 필터를 거쳐 해당 로직(로그인 확인)을 처리하고, 그 후 실제 서비스 로직(컨트롤러)를 수행한다. 3. 필터의 작동 흐름 HTTP 요청 ..

Spring/Spring MVC - 활용

[Spirng] Cookie, Session(쿠키, 세션)

로그인 처리 - 쿠키 사용 웹에서 사용자의 로그인 상태를 관리하려면 상태를 유지할 수 있는 방법이 필요하다. HTTP 프로토콜은 상태가 없는 프로토콜이기 때문에 쿠키를 사용하여 상태 정보를 저장하고 관리할 수 있다. 쿠키의 기본 개념쿠키는 작은 텍스트 파일로, 사용자의 브라우저에 저장되는 정보이다. 서버는 HTTP 응답 헤더를 통해 쿠키를 클라리언트에 전달하며, 클라이언트는 이후 요청에서 해당 쿠키를 포함하여 서버에 다시 전송한다. 쿠키에는 크게 두 가지 유형이 있다. 영속 쿠키 : 만료 날짜가 지정된 쿠키로, 해당 날짜까지 유지된다. 세션 쿠키 : 만료 날짜가 지정되지 않는 쿠키로, 브라우저 종료시 삭제된다. 로그인 구현 로그인에 성공하면 서버는 해당 사용자의 고유 ID나 다른 식별 정보를 쿠키로 생성..

Spring/Spring MVC - 활용

[Spirng] Bean Vaildation(빈 밸리데이션) - 검증

Bean Validation 소개와 이해 Bean Validation 은 개발자가 반복적으로 작성해야하는 검증 로직을 표준화하여 관리하는 기술이다. 이를 통해 코드로 매번 검증 로직을 작성하는 대신, 어노테이션을 사용하여 간결하게 검증을 수행할 수 있다. Bean Validation 이란? Bean Validation 은 특정 구현체가 아니라 JSR-380(Bean Validation 2.0)이라는 기술 표준이다. 기본적으로 검증 어노테이션과 인터페이스의 모음으로 구성되어 있다. Bean Validation 표준의 구현체 중 가장 대표적인 것은 Hibernate Validator 이다. Hibernate Validation 는 ORM 과는 관련이 없으며, 검증 기능에 특화되어 있다. Hibernate V..

Spring/Spring MVC - 활용

[Spring] Validation(밸리데이션) - 검증

검증 Validation 검증은 웹 애플리케이션의 핵심 요소 중 하나이다, 잘못된 데이터 입력은 시스템의 안정성을 저해하거나 예상치 못한 오류를 일으킬 수 있다. 검증 로직을 구현하지 않으면, 사용자가 잘못된 값을 입력했을 때 시스템이 오류 화면으로 넘어가버리는 문제가 발생할 수 있다. 이러한 경험은 사용자에게 부정적인 인식을 심어주므로, 웹 서비스에서는 오류 발생 시 오류의 원인을 알려주고 입력한 데이터를 유지해야 한다. 클라이언트 검증 vs 서버 검증 클라이어트 검증 : 사용자에게 실시간 피드백을 제공하지만, 보안 측면ㅇ에서는 취약하다, 클라이언트의 코드는 조작될 수 있기 때문이다. 서버 검증 : 보안적으로 더 안정적이지만, 사용자 경험을 향상시키기 위해서는 즉각적인 피드백이 부족하다. 그러므로, 클..

Spring/Spring MVC - 활용

메시지, 국제화

메시지 / 국제화 메시지 기획자가 화면에 보이는 문구 중 "상품명" 단어를 "상품 이름" 으로 바꾸고 싶어한다면 ? 각 화면에서 이 단어를 일일이 변경해야 한다. 화면이 많아질수록 변경해야하는 파일의 수도 기하급수적으로 늘어날 것이고, 이는 비 효율적이다. 해결 방법 이러한 문제를 해결하기 위해 메시지 기능을 사용할 수 있다. 메시지 기능은 다양한 메시지(문구)를 한 곳에서 통합적으로 관리할 수 있다. 예시 : message.properties - 메시지 관리 파일 생성한다 item=상품 item.id=상품 ID item.itemName=상품명 item.price=가격 item.quantity=수량 각 HTML 파일에서는 해당 데이터를 key 값으로 불러와 사용한다. addForm.html: editFo..

Spring/Spring MVC - 활용

스프링 MVC - 기본 기능

요청 매핑 스프링 프레임워크의 @RequestMapping 어노테이션을 사용하여 다양한 형태의 HTTP 요청을 처리할 수 있다. @GestMaping, @PostMapping 등의 축약된 어노테이션과 @PathVariable, params, headers, consumes, produces 등의 추가적인 매핑 조건 등이 있다. 기본 요청 매핑 @RequestMapping 어노테이션을 사용하여 특정 URL에 접근했을 때, 실행될 메서드를 지정할 수 있다. @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") pub..

진이최고다
'Spring' 카테고리의 글 목록