본문 바로가기

학원

(182)
[Spring] AOP(Aspect Oriented Programming) AOP (Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 모듈에서 공통으로 처리되는 사항, 즉 횡단 관심사항을 별도로 모듈화해서 재사용성을 극대화하기 위한 프로그래밍 방법이다. AOP 주요 개념 및 구성요소 - 핵심 관심 : 시스템의 핵심 가치와 목적이 드러난 관심 영역, 적용하고자 하는 핵짐 비지니스 로직 비즈니스 클래스 = XXXServiceImpl 클래스 비즈니스 클래스에는 비즈니스 메서드가 구현되어 있으며, 비즈니스 메서드가 가진 코드를 핵심 관심 코드라고 한다. - 횡단 관심 : 쉽게 분리된 모듈로 작성하기 힘든 요구 사항, 공통 모듈 횡단 관심 클래스 = XXXAdvice 클래스 횡단 관..
[Spring] Lombok 라이브러리 https://mvnrepository.com/ 사이트에서 복사해서 pom.xml 파일에 붙여넣는다. Lombok 라이브러리 Lombok 라이브러리는 클래스 작성에 필요한 메소드를 자동으로 생성하여 제공하는 기능의 라이브러리이다. Lombok 라이브러리가 제공해주는 어노테이션 종류에 대해 알아보자 @NoArgsConstructor @NoArgsConstructor은 매개변수가 없는 생성자를 자동 생성하여 제공하는 어노테이션이다. @AllArgsConstructor @AllArgsConstructor은 매개변수가 존재하는 생성자를 자동으로 생성하는 어노테이션이다. 모든 필드에 초기값을 저장할 수 있는 매개변수가 있는 생성자를 생성한다. @RequiredArgsConstructor @RequiredArgsC..
[Spring] Annotation 이용한 의존성 주입 (수정..) @Component @Component은 클래스를 스프링 컨테이너가 관리할 수 있는 Spring Bean으로 등록하기 위한 어노테이션이다. 스프링 프레임워크에서 컴포넌트 스캔(Component Scan)을 통해 빈(Bean)으로 등록한다. 여기서 컴포넌트 스캔은 스프링에서 자동으로 빈으로 등록할 클래스를 찾아주는 기능을 말한다. 클래스의 이름을 beanName으로 자동 설정할 수 있다. (클래스의 이름에서 첫문자는 소문자로 변환한다.) @Compontent 어노테이션의 value 속성을 사용하여 beanName 변경이 가능하다. @Component 어노테이션이 붙은 클래스는 자동으로 스프링의 컴포넌트 스캔에 의해 빈으로 등록되어, 이후에 해당 빈을 필요로 하는 다른 클래스에서 @Autowired 어노테이..
[Spring] Bean 컬렉션 주입 / autowire 속성 예제) CollectionBean 클래스 package xyz.itwill05.di; import java.util.List; import java.util.Set; public class CollectionBean { private Set nameSet; private List nameList; public CollectionBean() { System.out.println("### CollectionBean 클래스의 기본 생성자 호출 ###"); } public Set getNameSet() { return nameSet; } public void setNameSet(Set nameSet) { this.nameSet = nameSet; } public List getNameList() { return..
[Spring] 의존성 주입(Dependency Injection) Dependency 관리 Dependency 관리는 Spring에서 Famework가 관리하는 Bean을 다른 Bean에서 사용할 수 있도록 설정해주는 역할까지 대행하는 것을 말한다. 예제) xyz.itwill05.di 패키지 생성 학생정보를 저장하기 위한 클래스, 즉 VO 클래스(DTO 클래스, POJO 클래스 - Plane Old Java Object) [Student]를 선언 → 학생정보를 표현하기 위한 값을 필드에 저장할 것이다. * POJO란 특정 기술에 종속되지 않는 순수한 자바 객체를 말한다. package xyz.itwill05.di; //학생 정보를 저장하기 위한 VO클래스(DTO 클래스) public class Student { private int num; private String ..
[Spring] 스프링 빈(Spring Bean) 스프링 빈(Spring Bean) 스프링 빈(Spring Bean)은 Spring 프레임워크에서 IoC 컨테이너에 의해 생성, 관리되는 객체를 말한다. Spring 컨테이너에 등록된 빈은 일반적으로 XML, 어노테이션 또는 자바 설정 파일에 정의되며, 애플리케이션의 다양한 컴포넌트들을 대표한다. 먼저 스프링빈을 XML을 이용해 정의해보자 스프링빈을 사용하는 방법을 예제를 통해 알아보자 [CreateBean] 클래스 선언 package xyz.itwill04.bean; public class CreateBean { public CreateBean() { System.out.println("### CreateBean 클래스의 기본 생성자 호출 ###"); } public void display() { Sys..
[Spring] 제어의 역전(Inversion of Control, IoC) Inversion of Control(IoC) : 제어의 역전 IoC는 소프트웨어 개발에서 객체의 생성과 관리를 개발자가 아닌 프레임워크나 컨테이너가 담당하는 디자인 패턴이다. 객체간의 결합도 먼저 컨테이너를 이용하지 않고 클래스 내에서 객체를 생성해 메소드를 호출해보자. package xyz.itwill01.old; //DAO 클래스 public class HelloMessageObject { public String getHelloMessage() { return "Hello!!!"; } } //서비스 클래스 public class MessagePrint { public void helloMessagePrint() { HelloMessageObject object=new HelloMessageObje..
[Spring] 로그 구현체 설정 로그 구현체를 설정해보자 main에 있는 log4j.xml과 test에 있는 log4j.xml은 각각 다르다 먼저 src/main/resources의 log4j.xml 파일을 설정해보자 log4j 라이브러리는 로그 구현체가 실행될 때 빌드된다. 따라서 log4j.dtd를 찾을 수 없기 때문에 에러가 발생한다 이를 해결하기 위해보자 해결방법1) pom.xml에서 scope 엘리먼트를 지워버리면 된다. (scope 엘리먼트가 프로젝트에 빌드되는 시점을 설정하기 때문에) *scope 엘리먼트를 사용하는 이유는 경량화를 위해서이다. 해결방법2) [log4j.xml]에 인터넷 상의 파일로 변경해준다 log4j.xml log4j.xml 파일은 로그 구현체의 실행을 위한 정보를 제공하는 환경설정파일이다. append..