본문 바로가기
Web/Spring

1. Spring 이란

by jungwon3004 2021. 12. 7.
728x90
반응형

1. Spring Framework 

(1) Spring Framework의 주요 기능

 : DI, AOP, MVC, JDBC 등 제공해준다

 

- DI (Dependency Injection)

 : interface를 사용해서 class 사이의 의존관계를 최소화

재사용성 높임, 테스트 용이, 코드 단순화, 종속적인 코드 수 줄임, 코드 읽기 편해짐, 결합도 낮춤

 ex. Constructor에 arguments를 주입함으로써 constructor 안에서 새로 생성하는게 아닌 this.myGas = gas.getGas(); 를 통해서 주소 값으로 불러옴 (getter, setter를 활용)

 

- IoC (Inversion of Control) (Spring에서 Container를 부르는 이름)

 : '제어의 역전'이라는 뜻 그대로, method나 object의 호출을 개발자가 정하는게 아닌 외부에서 결정하는 것

 객체를 생성하고 그 객체에 DI (의존성을 주입시킴)으로써 Control을 Spring에게 맡겨서 작업처리하게 된다

 

- Bean

 : Spring IoC Container에서 관리하는 자바 객체 + Spring Container에 생성된 자바 객체

 참고로 Spring에서 Bean은 보통 Singleton으로 존재함

 Beans는 Container에 공급하는 설정 메타 데이터(xml 파일)에 의해 생성됨

 new 연산자로 생성되는 객체는 Bean이 아니고 ApplicationContext.getBean() 으로 얻어질 수 있어야 Bean임

 

- AOP (Aspect Oriented Programming)

 : 로직을 핵심적인 관점과 부가적인 관점으로 나누어서 보고 각 관점을 각각 모듈화하는 것

 class를 기준으로 하는 것이 아니라 각 aspect를 기준으로 분리해서 따로 모듈화하는 것

 

- MVC (Model, View, Controller)

 : 하나의 어플리케이션 (프로젝트)를 구성할 때 그 구성요소를 Model, View, Controller의 3가지로 구분한 패턴

user가 controller를 조작하면 controller는 model을 통해서 data를 가져오고 그 정보를 바탕으로 시작적 표현을 담당하는 view를 제어해서 user에게 보여주는 일련의 과정을 거친다.

controller는 data와 user interface를 잇는 다리 역할, 즉 이벤트 처리 (사용자의 클릭 등)

정리: 사용자가 보는 페이지 View + 데이터 처리 Model + 중간에서 둘을 제어하는 Controller

 

- JDBC (Java DB Connector)

https://moonsonghada.tistory.com/5?category=939006

 

POJO, JPA, ORM, Hibernate 뭘까? 숲을 보자!

0. 들어가기 java는 객체지향 언어로 수많은 객체(Objects)로 이루어져 있다. 그 중에서 POJO는 뭘까? 그렇다면 그것과 반대되는 개념이라고 하는 ORM, JPA, Hibernate는 무엇일까? 1. POJO - Plain Old Java Obje..

moonsonghada.tistory.com

 

 

728x90

 

2. Spring Framework Module

 대표적 Spring Module 종류 기능
spring-core Spring의 핵심인 DI (Dependency Injection)과 IoC (Inversion of Control)을 제공 (Spring Framework의 핵심적인 module)
spring-aop AOP (Aspect Oriented Programming) 구현 기능 제공
(공통된 부분을 뽑아내서 개발자는 필요에 따라 넣었다 뺐다 가능)
spring-jdbc DB를 쉽게 다룰 수 있는 기능 제공
spring-tx Spring에서 제공하는 트렌젝션 관련 기능 제공
spring-webmvc 스프링에서 제공하는 Controller와 View를 황용한 Spring MVC 구현 기능 제공

Spring Framework에서 제공하고 있는 Module를 사용하려면, xml 파일 등에 모듈에 대한 의존설정을 하면 된다

각각의 module은 library라고 생각하면 된다.

 

과거에는 필요에 따가 각각의 module(library)를 다운받고 파일에 명시해주면 자동으로 import됐다.

 

하지만 현재는 그것보다 더 간단해졌다,

이제는 mxl 파일 등에 필요한 module에 대한 설정만 바꿔주면 자동으로 다운로드 받고 import해서 사용한다.

즉, xml 파일에서 추가, 삭제만 해주면 다 자동으로 되기 때문에, 다운로드, import 같은 건 우리가 신경쓸 부분이 아니게 되었다.

 

반응형

3. Spring Container (=IoC) 기초

- container : Spring에서 객체를 생성하고 조립한다

- Bean: Contianer를 통해 생성된 객체를 Bean이라고 부른다

 

1) xml 문서 등을 통해 객체 생성 및 속성 데이터 작성

2) Spring Container에서 Bean (객체) 생성 및 조립

3) Spring Contrainer에 만들어진 Bean을 java 파일 등의 개발문서에서 끌어와 사용해 application(program) 구현

interface로 구현되어있는 container에 interface를 implement하고 있는 class들을 주입해서 필요에 따라 container를 바꿔서 사용하는 개념을 머리에 딱 넣으면 된다.

단, interface를 implement한 class를 직접 넣는 것이 아닌 xml 파일에 적어두면 자동으로 진행된다는 점은 차이가 있음

728x90
반응형