Spring

Spring/Spring DI와 AOP

[Spring AOP] AOP의 개념과 사용

1.AOP(Aspect Oriented Programming)란? AOP의 약자를 풀어쓰면 관점 지향 프로그래밍이다. 관점 지향 프로그래밍? 어려운 말이다. 간단히 말하면 관점을 나눠서 프로그램을 짜는 방식이라고 말할 수 있다. AOP는 다른 말로 부가기능(advice)을 동적으로 추가해주는 기술이다. 이 말도 어렵다 부가기능은 무엇이고 동적이란 말은 무엇인가? 부가기능은 핵심기능의 반댓말이다. 그리고 동적이란 말은 실행중이라는 뜻이다. 즉 핵심기능이 아닌 기능을 실행중에 추가하는 기술이다. 하지만 그래도 어렵다. 마지막으로 한 줄로 AOP를 요약하면 메서드의 시작 또는 끝에 자동으로 코드(advice)를 추가하는 기술이다. 코드를 통해 AOP의 개념을 조금 더 살펴보자. 2.공통 코드의 분리 MyCla..

Spring/Spring DI와 AOP

[Spring DI] BeanFactory / ApplicationContext 와 IoC / DI

1.Bean과 Spring container Bean은 Spring Container가 관리하는 객체이다. Spring container는 Bean의 저장소이며 Bean을 저장, 관리(생성,소멸,연결) 한다. BeanFactory : Bean의 기본기능(생성, 연결...)을 정의 ApplicationContext : BeanFactory를 확장하여 기능을 추가 정의. Spring Container와 유사함. 2.ApplicationContext XML Java Config non-Web GenericXmlApplicationContext AnnotationConfigApplicationContext Web XmlWebApplicationContext AnnotationCofigWebApplicationC..

Spring/SpringMVC

[SpringMVC] @RequestParam과 @ModelAttribute

1.@RequestParam @RequestParam은 요청의 파라미터를 연결할 매개변수에 붙이는 애너테이션이다. @RequestParam이 쓰이는 경우를 살펴보자. 1-1.@RequestParam을 생략하는 경우 @RequestParam은 기본적으로 매개변수로 파라미터의 이름을 나타내는 name과 @RequestParam 필수 여부를 따지는 required를 매개변수로 갖는다. 그림과 같이 필수 여부를 따지는 required가 false일 경우 @RequestParam을 생략해도 문제가 없다는 의미로 생략이 가능하다. required 값이 필수가 아닐 경우 null과 ""(공백)이 요청값으로 들어올 경우 타입문제가 발생한다. 오류를 막기위해 required 값이 필수가 아닐 경우 기본 값을 1로 지정한..

Spring/SpringMVC

[SpringMVC] rediect와 forward

1.redirect redirect는 브라우저에서 받은 요청을 다른 URL로 재요청한다. 브라우저에서 1.요청을 하면(수동, GET/POST둘다 가능) 헤더에서는 302 즉 다른 URL로 재요청하는 300 Redriect가 입력되고 다른 URL로 요청되는 위치를 Location에 쓰여진다. 2.응답을 받은 브라우저는 새로운 위치(login.jsp)로 3.요청 재요청(자동, GET만 가능)하게 된다. 요청후에 작업이 완료된 login.jsp에서 브라우저로 응답한다. redirect는 요청이 두 번 발생한다. request가 두 번 발생하는 데 두 request는 다르다. 일상생활에 비유하자면 서비스 센터에서 담당이 달라 다른 번호를 알려주고 재연결을 요청하는 것과 유사하다. 예를들어 컴퓨터 AS를 맡기기위..

Spring/SpringMVC

[SpringMVC] 요청과 응답

Web 원격 프로그램 실행 웹은 브라우저 그 자체로 작동하지 않는다. 호출 및 요청을 하는 브라우저와 함께 요청을 받은 내용을 수행하고 결과를 넘겨주는 서버/WAS가 필요하다. 브라우저와 서버는 간단히 연결 할 수 있는데 연결방법을 알아보자. 브라우저에서는 'http://111.222.333.444.8080/ch/hello'를 호출한다. 호출을 받은 서버는 브라우저에서 요구하는 프로그램을 등록하고 브라우저에서 입력한 URL과 프로그램 내의 메서드를 연결한다. 서버에서는 브라우저의 요청에 따라 프로그램을 등록하고 URL과 메서드를 연결해야하는데 @Contoller와 @RequestMapping을 이용해 등록 및 연결을 한다. 프로그램 등록과 URL연결이 끝나면 서버는 결과물을 브라우저에게 보내준다. Htt..

Spring/SpringMVC

[SpringMVC] 데이터 변환과 검증

데이터 변환과 검증 1.변환 1-1.WebDataBinder 요청메시지가 들어오면 쿼리스트링(요청메세지의 빨간줄)의 값은 Map으로 담긴다. Controller인 main객체에서 @ModelAttribute Mydate를 매개변수로 가지면 그림과 같이 MyDate 객체가 생성되고 요청 데이터들이 담기게 된다. 데이터가 넘어가는 중간에 WebDataBinder가 데이터의 타입을 변환하고 검증하는 작업을 한다. Map담긴 데이터의 타입은 String이다 하지만 MyDate에 담긴 데이터의 타입은 Int다. Map에 담긴 데이터가 MyDate에 담기기 위해선 Int 타입으로 변경 해야하는데 스프링에서는 WebDataBinder를 통해 타입 변환을 시킨다. 타입이 변환되면 에러, 결과값을 BindingResul..

Spring/SpringMVC

[Spring MVC] MVC 패턴

1.관심사의 분리 위의 코드는 요일 계산을 코드다. 코드는 크게 입력, 요일 계산, 프로그램(코드) 출력 세 부분으로 나뉜다. 객체지향 설계(OOP설계)의 첫 번째 원칙은 '하나의 메서드는 하나의 책임' 단일책임원칙(SRP)다. 스프링 MVC는 단일 책임에 따라 작성하는 방법론이다. 따라서 위 코드를 MVC 패턴에 따라 작성하면 단일책임원칙에 따라 작성하게 된다. ※객체지향 설계 5원칙 SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open-Closed Principle) : 개방 폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segragation Principle) : 인터페..

Spring/SpringMVC

[Spring MVC] 예외처리

예외처리 스프링은 try-catch문 뿐만 아니라 다양한 예외처리 방법을 제공한다. 스프링에서 제공하는 다양한 예외처리 방법에 대해 알아보겠다. 1.@ExceptionHandler와 @ControllerAdvice 1-1@ExceptionHandler main메서드와 main2메서드를 살펴보면, 각각 Exception, NullPointerException이 발생할 걸 알 수 있다. 일반적인 예외처리 방식인 try-catch문을 쓰면 각 메서드에 추가적인 코드가 생기지만 @ExceptionHandler를 사용하면 위와 같이 메서드의 예외에 해당하는 예외처리 메서드로 이동하여 코드를 좀더 간결하게 만들 수 있다. 만약 하나의 메서드에서 여러개의 예외를 처리 하고 싶다면 catcher2메서드와 같이 '{}'..

각시탈코더
'Spring' 카테고리의 글 목록 (2 Page)