본문 바로가기

프레임워크

(16)
[프레임워크] <Spring>〈Maven〉AOP 관심 분리 관심 분리(Separation of concerns) ◎ 비즈니스 메서드(비즈니스 로직, 핵심 관심, CRUD)에서 횡단 관심(공통 로직)을 분리하는 것이다. ◎ 로직(관심)들끼리 코드를 관리한다. ⇨ 높은 응집도를 보장한다. AOP를 활용하기 위한 applicationContext.xml 스키마 ◎ xmlns:aop="http://www.springframework.org/schema/aop" ◎ http://www.springframework.org/schema/aop ◎ http://www.springframework.org/schema/aop/spring-aop-4.2.xsd" 공통 로직(횡단 관심) 인증 로깅 보안 트랜잭션 예외처리 C O O X O O R X O X X X U O O O O O..
[프레임워크] <Spring>〈Maven〉pom.xml 설정 개선 feat. 어노테이션 설정들이 많아진다면? ◎ 개발자에게 부담이된다. ◎ 작은 에러라도 발생하면 프로그램이 실행되지 않는다. 개선 ◎ 과도한 설정을 줄이기 위해 @어노테이션 기능을 개발했다. ◎ 일반 스프링 환경에서는 .xml + @이지만 부트에서는 @ 위주로 실행한다. 부트를 활용하기 위한 추가 스키마 ◎ xmlns:context="http://www.springframework.org/schema/context" ◎ http://www.springframework.org/schema/context ◎ http://www.springframework.org/schema/context/spring-context-4.2.xsd" @어노테이션 ◎ 개발자의 가독성을 증가시켜 준다. ◎ xml로의 접근을 줄여준다. ⇨ .java에 ..
[프레임 워크] <Spring>〈Maven〉application.xml 생성 없을 시 발생하는 에러 파일 생성 ◎ 경로 : src/main/resources ◎ 이름 : applicationContext.xml 기본 스키마 ◎ 스키마는 시스템 버전에 따라 수정이 필요하다.
[프레임워크] <Spring>〈Maven〉스프링 프로젝트 생성 컨테이너 ◎ 톰캣 : 서블릿 컨테이너, 웹 서버.... ⇨ Servlet 클래스를 new 해준다. ⇨ FrontController 등 ⇨ web.xml ◎ 스프링 컨테이너 : POJO 클래스를 new 해준다. ⇨ DAO, DTO, Action(Controller) 등 ⇨ 코드내에서 new 역할을 담당하는 컨테이너이다. ⇨ applicationContext.xml ◎ 루트(최상위) 컨테이너 ⇨ .jar(라이브러리)를 관리해준다. ⇨ 설정 관련 컨테이너이다. ⇨ pom.xml 프로젝트 설정 ◎ Name : 프로젝트 이름 ◎ Type ⇨ Gradle : 스프링부트 기반 라이브러리 제공 ⇨ Maven : 자바 기반의 라이브러리 제공 ◎ Pakaging ⇨ JAR : 자바 아카이브 ⇨ WAR : 웹 어플리케이션 ..
[프레임워크] <Spring>〈Maven〉DI DI(Dependency Injection) ◎ 의존 주입 ◎ 기존에는 개발자가 했지만 Spring에서는 Spring 컨테이너가한다. ◎ IoC를 배울때에 함께 알아야하는 개념이다. 의존성 ◎ 어떤 메서드를 수행할 떄, 다른 객체를 미리 new 해야하는 상황을 말한다. 생성자 주입(Constructor Injection) ◎ 강제성이 짙다. ◎ 생성자 주입할 때 에러가 발생하면 해당 객체는 생성되지 않기 때문에 필수적일 때 사용하는 방식이다. setter 주입 ◎ 생성자 주입보다 덜 강제적이다. ◎ 기본 생성자가 필수이다. ⇨ 기본 생성자 + setter 리스트를 이용한 주입 a b c 맵을 이용한 주입 a 에이 b 비
[프레임워크] <Spring>〈Maven〉xml xml 특징 ◎ 세상의 모든 컨테이너는 설정 파일을 필요로 한다. ⇨ 이 때의 설정파일은 xml 파일이다. ◎ 스프링 컨테이너 역시 설정파일을 필요로한다. ⇨ 이 때의 설정파일은 applicationContext.xml이다. ◎ xml은 태그로 구성되어 있다. ⇨ 최상이 태그가 이다. ⇨ 각종 설정들이 태그로 작성되어 있다. 태그 특징 ◎ xml 태그의 핵심이다. ◎ new를 대신해주는 태그이다. ⇨ 결합도가 낮아진다. 작성 Phone phone = new Phone(); 속성 ◎ init-method = "메서드" ⇨ 생성자 역할을 해줄 메서드를 new 하는 타이밍에 호출할 수 있는 속성 ⇨ 멤버변수 초기화 역할을 해줄 메서드이다. ◎ lazy-init = "true" ⇨ 지연 로딩 방식 ⇨ 모든 은 ..
[프레임워크] <Spring>〈Maven〉BeanFactory BeanFactory ◎ 팩토리 패턴을 구현하기위한 클래스이다. ◎ 빈을 생성하고 의존관계를 설정하는 기능을 담당한다. ◎ 가장 기본적인 IoC 컨테이너이자 클래스를 말한다. ◎ 스프링 빈 컨테이너에 접근하기 위한 최상위 인터페이스이다. ◎ 스프링 빈을 관리하고 조회하는 역할을 담당한다. ◎ 각 객체 간의 의존성을 해결하고, 필요에 따라 해당 객체를 반환한다. package test; import java.util.ArrayList; // Bean == 객체 == 기능 단위 // 기능 단위로 코드를 작성해놓은 객체 public class BeanFactory { // 팩토리 패턴을 구현하기위한 클래스 // 팩토리 패턴이란? // : 객체명을 요청하면 // 해당 객체를 제공하는 것 private Array..
[프레임워크] <Spring>〈Maven〉기초 Spring 프레임워크 ◎ IoC와 AOP를 지원하는 경량의 프레임워크이다. ◎ 낮은 결합도와 높은 응집도를 가지는 코드를 작성하기 쉽다. ◎ 공통로직을 별도의 클래스로 모듈화하여 올바른 시기에 호출하는 기능을 수행한다. ◎ POJO를 다루는 컨테이너를 제공한다. IoC(Inversion of Control) 제어의 역행 ◎ Spring에서는 제어를 프레임워크에 맡긴다. ◎ 컨테이너를 통해 수행한다. 컨테이너 ◎ 객체를 생성하거나 관리해줄 수 있는 주체이다, ◎ 관리는 호출 시점을 정하는 것 혹은 소멸시점을 정하는 것이다. ◎ Spring 에서 사용하는 컨테이너는 Spring 컨테이너이다. ⇨ 일반 자바객체(POJO) 생성 가능하다. ⇨ POJO[ DTO, DAO, Action ] 제어 ◎ 객체를 생성 ..