본문 바로가기
Back-End/Spring Framework

[IT교육] Spring의 특징

by 언니팬더 2016. 4. 18.



[ Spring 특징 ]


Spring은 잘하는건 자기가 하고 못하는 건 연결시켜주는 유능한 접작체의 역활을 해줌


스프링의 가장 큰 특징


1. DI 의존성 주입 (Dependency Injectiond)

나는 조종말 할테니까 체워만 줘라

다른 객체들을 스프링이 챙겨 주겠다. 

의존성 주입을 위해 어떤 세팅을 해야 하는가를 알아야 함

전쟁 갈때 총알있나? 뭐있나뭐있나? 다 챙기지 않도록 해주는 


2. AOP 

Aspect Oriented Programming

관점 지향 프로그램

에러 트렌젝션 등의 잡다 과정 관리 

횡단 관심(보조 업무)


cf) 

EJB : 트렌젝션 처리 방법이 있었으나, 너무 무거워서 개인 PC에 돌아가기 힘든 점이 존재

개인 PC에서 개발하고 서버에 올리는 개발 방식임으로 개발 시에 너무 효용성이 떨어져 쓰지 않음

EJB없이도 기업용 프로그램 개발이 가능하다. << 이게 Spring! 2MB가 되는 Jar파일로 가능!


cf)  JVM이 스칼라에서 돌아가는 등 JVM이 있기 때문에 JAVA는 오래 갈 수 있지만,

코드는 전혀 다른 언어를 사용 할 수도 있다. 

"현재" 사용하는 Spring 



mvc model


Model View Controller

Spring은 잘하는건 자기가 하고 못하는 건 연결시켜주는 유능한 접작체의 역활을 해줌


mvc model 1

: 기존 jsp, php처리 방식


mvc model 2


Spring도 다 잘하는데 아니다.

Model부분이 약하다, 데이터 처리는 다른 것과 연동해서 사용 


Model : MyBatis, Hidernate사용 ( JDBC, Spring JDBC,)

잡착제 역활을 하는 Spring


View : view만 전담하는 jsp


Controller : Spring MVC


cf) 데이터 액세스 층 = DB접근 



Hidernate 와 MyBatis


DTO와 DAO의 역활을 해주는 Hidernate와 MyBatis


DTO : Data Transfere Object 

( = TO : 연결의 의미 // VO: 화면과 연관되어 있는)

DAO : Data Access Object

( DB에 접급해서 처리하는 클래스, Spring을 안쓰더래도 사용 )



Hidernate : ORM (

Object : 객체

Relation : 관계형 DB

Mapping : 맵핑 

insert/update/delete를 안써도 DB처리가 가능해짐 

)


- ORM은 객체와 DB테이블의 모습이 틀림으로 사이에 중제하는 게 필요해 중재하여 매핑해주는 것

- 한 레코드를 관리하는 녀석 : DTO

insert/update/delete을 객체로 관리하게 됨 

: 간단한 코드는 1:1 관계로 바로 객체를 만들어 객체.save하면 DB에 저장 가능

프로그램이 중요하지 DB는 중요하지 않다는 개념

복잡하다 모든 관계를 객체로 표현해야 하기 때문에 

: 국내에서는 별로 선호하지 않는 방법 

MyBatis : SQLMapper, DTO와 DAO의 역활을 해주는


:  sql문장을 밖으로 빼서 xml에다가 

iBatis : 2.x 절반정도 이걸로 사용 중 

  MyBatis : 3.x



바즈니스 로직 층 

: 비지니스 레이어


Client > View 화면 레이어 (JSP)

> Controller ( URL Controller + 비지니스 레이어(업무, 비지니스 로직 DB에 넣기전에 처리하는 로직 ) ): Spring Mvc

> 데이터 액세스 레이어 * MyBatis 

> DB



- JPA : 규약 Java Persistence(영속성) API