HttpMethod HTTPMethod 란 HTTP 프로토콜에서 사용되는 HTTP 메서드를 나타내는 표현방식입니다 HTTPMethod 는 클라이언트가 서버에 요청을 보낼 때 어떤 동작을 수행할 것인지를 정의하며 대표적으로는 GET , POST , PUT , Patch , DELETE 가 있습니다 GET (@GetMapping) - 데이터 요청 Htt...
Spring MVC 와 HTTP
Spring - MVC Spirng MVC는 웹 애플리케이션을 개발하기 위한 인기 있는 프레임워크 중 하나입니다 MVC를 활용하면 모델 - 뷰 - 컨트롤러 아키텍처를 기반으로 개발을 진행을 하게 됩니다 모델 (Model) 웹 애플리케이션에서 데이터와 비즈니스 로직을 담당하는 계층입니다 모델은 컨트롤러와, 뷰 사이에서 데이터를 전...
Spring AOP
Aspect-Oriented Programming 소프트웨어에 개발에서 코드를 모듈화하는 방법 중에 하나로 관심사를 중심으로 코드를 구조화하는 기법입니다 횡단 관심사와, 핵심 관심사를 모듈화해서 분리하고 횡단 관심사를 여러 모듈 코드에서 중복 없이 사용할 수 있도록 도와줍니다 횡단 관심사 , 핵심 관심사 예를 들어서 다음의 로직이 있다 이 중에서 횡...
Spring Validator
Validator 이는 스프링 프레임워크에서 제공하는 데이터 유효성 검증을 위한 인테페이스 입니다 사용자로부터 받은 데이터나 외부 데이터의 유효성을 검사하여 오류를 찾고 필요한 경우 에러 메시지를 만들어냅니다 Member 도메인 그러면 예를 들어서 Member를 만든다고 했을 때 이메일 주소와, 이름과, 나이를 받는다고 하자 그러면 도메인은 이렇게 ...
Spring Ioc Resource
Resource Spring으로 넘어오면서 리소스 처리 방식에 대해서 변화가 생겼습니다 org.springframework.core.io. 하위에 있는 Resource는 하위 수준 리소스에 대한 액세스를 더욱 쉽게 만들기 위해서 만들어진 인터페이스입니다 아래에 있는 메서드 또는 필드를 보면 유추하기 쉬운 것들로 이루어져 있고 이번 시간에는 UrlRe...
Spring Ioc @Value
@Value 스프링 프레임워크에서 제공하는 애노테이션 중 하나로, 주로 프로퍼티 값을 주입하기 위해 사용됩니다. @Value 애노테이션을 사용하면 XML이나 JavaConfig와 같은 외부 설정 파일에서 값을 읽어와 빈에 주입할 수 있습니다. 우리는 앞에서 이미 @Value를 한번 본 적이 있습니다 기억을 더듬어보면 다중 DB 연결할 때 사용했습니다...
Spring Ioc 와 Bean Scope Request
Bean 의 생성전략 Request 생성 전략은 HTTP 요청 한 건당 새로운 빈 인스턴스를 생성하는 스코프입니다 즉 각각의 HTTP 요청이 들어올 때마다 새로운 bean 이 생성이 되면 해당 요청이 완료되면 이 Bean 은 소멸이 됩니다 이때 Bean의 유지시간은 HTTP 요청이 끝날 때까지 값이 유지가 됩니다 이때는 IoC 와 서블릿 컨테이너의 동...
Spring Ioc 와 Bean Scope ProtoType
Bean 생성전략 Spring 은 bean의 생성 전략 기본은 싱글톤 전략인데 이 중에서도 다른 전략을 선택할 수 있습니다 그중에서 프로토타입 전략을 사용할 수 있습니다 프로토타입 (ProtoType Strategy) 프로토타입은 매번 bean 을 요청할 때마다 새로운 인스턴스를 생성하여 반환합니다 싱글톤하고는 다르게 bean의 생성 전략을 지정을 ...
Spring Ioc 와 Bean Scope Singleton
Bean 의 생성전략 기본적으로 Spring의 Bean의 생성 전략은 싱글톤입니다 싱글톤 (Singleton Strategy) 우리는 앞에서 계속해서 Bean으로 생성된 것들은 IoC 컨테이너가 관리한다는 말을 계속 보고 있다 이때 이 IoC는 이 bean의 전략을 보고 어떻게 bean 을 만들지 전략을 만들게 되는데 이 기본적인 전략은 싱글톤입니다...
Spring Ioc @Primary ,@Qualifier
@Primary spring 은 기본적으로 동일한 타입의 bean 을 생성하지 않습니다 예를 들어서 다음과 같은 소스가 있다고 생각을 해봅시다 public interface Printer { void print(); } ============================== @Component public class InkjetPrint...