본문 바로가기
728x90

🍃SpringFrameworks/SpringMVC21

[SpringMVC] IoC (Inversion of Control) 💡 IoC란? IoC란 Inversion of Control의 줄임말이며, 제어의 역전이라고 한다. 스프링 애플리케이션에서는 오브젝트(빈)의 생성과 의존 관계 설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 스프링 컨테이너가 담당한다. 이를 스프링 컨테이너가 코드 대신 오브젝트에 대한 제어권을 갖고 있다고 해서 IoC라고 부른다. 따라서, 스프링 컨테이너를 IoC 컨테이너라고도 부른다. 💡 Bean과 스프링 IoC 컨테이너 스프링 IoC 컨테이너가 관리하는 객체들을 Bean 이라고 부릅니다. 스프링은 이러한 Bean들의 의존성을 관리하고, 객체를 만들어 주며, Bean으로 등록을 해 주고, 이렇게 만들어진 것들을 관리합니다. 개발자가 이 부분까지 신경쓰지 않아도, 프레임워크가 알아서 해 주는 것입.. 2023. 8. 19.
[SpringMVC] DI (Dependency Injection) 💡 의존성 주입(Dependency Injection) 이란? Spring 프레임워크는 3가지 핵심 프로그래밍 모델 (DI/IoC, PSA, AOP) 을 지원하며, 그 중 하나가 의존성 주입(Dependency Injection, DI) 이다. DI란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다. 의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다. public class Store { private Pencil pencil; } 그리고 두 객체 간의 관계(의존성)를 맺어주는 것을 의존성 주입이라고 하며 생성자 주입,.. 2023. 8. 19.
[SpringMVC] 데이터 변환 / 검증 💡 WebDataBinder 요청으로 넘어온 값들을 실제 객체에 binding하는 과정의 중간 역할 💡 1. 타입 변환 ex. sns=kakao&sns=daum&sns=insta는 String[]타입으로 저장되는데 binding된 파라미터가 String타입이면, “kakao, daum, insta”로 Spring이 자동 변환한다. 💡 2. 데이터 검증(Validation) 사용자 또는 서버의 요청(http request) 에서 잘못된 내용이 있는지 유효성 검사하는 단계 객체를 검증하기 위한 인터페이스. 객체 검증기(validator) 💡 BindingResult 타입 변환, 데이터 검증의 결과와 에러를 저장하여 에러가 발생하더라도 Controller에서 처리하도록 함. 매핑된 메서드의 파라미터 중, bi.. 2023. 8. 19.
[SpringMVC] 예외 처리 (Exception) 💡 예외처리 Controller레벨에서 처리 - @ExceptionHandler @RestController public class TestController { // 예외 핸들러 @ExceptionHandler(Exception.class) public String controllerExceptionHandler(Exception e) { return "/error/404"; } @GetMapping("hello1") public String hello1() { throw new TestException("hello1 에러 "); // 강제로 예외 발생 } } Global 레벨에서의 처리 - @ControllerAdvice @ControllerAdvice public class GlobalExcepti.. 2023. 8. 19.
[SpringMVC] Cookie & Session | 세션과 쿠키(Session, Cookie) 웹 서비스는 HTTP 프로토콜을 기반으로 사용자와 통신한다. HTTP 프로토콜은 클라이언트와 서버와의 관계를 유지하지 않는 특징인 Stateless 기반인 프로토콜이다. 이런 Stateless 상태를 해결하는 두 가지 방식이 있는데 세션(Session)과 쿠키(Cookie)다. 두 방식 모두 사용자와 서버의 연결 상태를 유지해주는 방법으로, 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 사용자에 측에서 연결 정보를 관리하는 데 차이가 있다. 쿠키(Cookie)란? 클라이언트를 식별할 때 사용. 클라이언트(브라우저) 로컬에 저장되는 이름과 값의 쌍으로 구성된 작은 정보 기본적으로 아스키 문자만 저장 가능하다. (한글은 URL인코딩 필요) 이외에도 도메인 정.. 2023. 8. 19.
[SpringMVC] redirect & forward 💡 forward Foward는 다음으로 이동 할 URL로 요청정보를 그대로 전달합니다. 그렇기 때문에 사용자가 최초로 요청한 요청정보는 다음 URL에서도 유효합니다. (URL변경 X) 시스템에 변화가 생기지 않는 단순 조회 요청(글 목록 보기, 검색)의 경우 forward로 응답하는 것이 바람직합니다. 💡 redirect Redirect의 경우 최초 요청을 받은 URL1에서 클라이언트에게 redirect할 URL2를 반환하고, 클라이언트에서는 새로운 요청을 생성하여 URL2에 다시 요청을 보냅니다. (URL변경 O) 처음 보냈던 최초의 Request와 Response 객체는 유효하지 않고 새롭게 생성됩니다. 시스템에 변화가 생기는 요청(회원가입, 글쓰기 등)의 경우에는 redirection을 사용하는 .. 2023. 8. 19.
[SpringMVC] RequestParam & ModelAttribute @RequestParam 사용자가 요청 시 전달하는 값을 Handler(controller)의 매개변수로 1:1 맵핑할 때 사용되는 어노테이션이다. 매개변수 맵핑 외에도 파라미터 필수 유무 설정(required), 디폴트 파라미터 값 설정(defaultValue)등이 가능하다 @ModelAttribute 사용자가 요청 시 전달하는 값을 오브젝트(객체) 형태로 매핑해주는 어노테이션 이다. 2023. 8. 19.
[SpringMVC] Servlet → JSP → MVC 💡 Servlet 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있고, 이 요청과 응답에는 규칙이 존재합니다. 서블릿은 이러한 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술입니다. 특징 클라이언트의 Request에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트 HTML을 사용하여 Response 한다. JAVA의 스레드를 이용하여 동작한다. MVC 패턴에서의 컨트롤러로 이용된다. HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다. UDP보다 속도가 느리다. HTML 변.. 2023. 8. 19.
[SpringMVC] MVC패턴 MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다. 사용자가 controller를 조작하면 controller는 model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 됩니다. 💡 모델, Model 애플리케이션의 정보, 데이타를 나타냅니다. 데이타베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다. 또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다. 💡 뷰, View input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다. 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출.. 2023. 8. 19.
728x90