티스토리 뷰
스프링의 주요특징에 대해 알아보자! : POJO, DI, AOP, MVC, WAS??
douStory 2021. 9. 17. 09:52스프링의 중요한 특징들은 무엇인가?
첫번째 . POJO (Plain Old Java Object)기반의 구성
스프링은 객체간의 관계를 구성 할 수 있는 특징이 있다.
근데 다른 프레임워크는 별도의 API를 사용해서 구성하였지만
스프링은 JAVA코드를 이용하여 객체를 구성하는 방식을 그대로 스프링에서 사용 할 수 있다는 말이다!
(set 방식, 생성자..)
두번째 .의존성 주입을 통한 객체 간의 관계구성
스프링 하면 가장 먼저 떠올려야 하는게 DI(Dependency Injection) '의존성 주입'
그리고 IoC(Inversion Of Control) '제어의 역행' 이다
제어의 역행이라는 말은 메소드, 객체의 호출작업을 (new ~~어쩌구 하는거 있잖아요..)
개발자가 결정하는게 아니라 프레임워크에서 결정한다.
예를 들어 컴퓨터를 조립한다면 메인보드를 결정하고, 그에 맞는 부품들을 구매하게 된다.
각 부품간의 연결이나 호출은 메인보드에서 컨트롤 하기 때문에,
각 부품은 이전과 다음의 관련 부품에 대한 고민 없이 제작이 가능하다
한마디로 이렇게 복잡하게 의존성 주입을 하는 이유는 '코드 끼워넣기' '코드 바꿔 끼워넣기' 가 용이해지고..
사전적으로 말하자면
'의존성 주입은' '제어의 역행'이 일어날 때 스프링 내부에 있는 개체 'Bean'빈 들의 관계를 관리할 때 사용하는 기법이다.
그럼 '의존성 주입'은 살짝 알겠다.. '제어의 역행'은 뭘까?
제어의 역행은 말이 어려워서 그렇지
개발자가 프레임워크에 필요한 부품들을 개발하고, 조립하는 방식의 개발을 하게 된다.
이렇게 조립된 코드의 최종 호출은 개발자에 의해서 이뤄지지 않고,
프레임워크의 내부에서 결정된 대로 이뤄지게 되는데 이걸.. '제어의 역행' 이라고 표현합니다.
AOP지원
좋은 개발환경이란 개발자가 비즈니스 로직에만 집중할 수 있게 한다 입니다.
이목표를 이루기 위해 몇가지 중요한 원칙이 있지만,, 가장 중요한건 반복적인 코드의 제거라고 할 수 있습니다.
대부분의 시스템이 공통으로 가지는 보안, 로그, 트랜젝션 과 같이 비즈니스 로직은 아니지만
반드시 처리가 필요한 부분을 스프링에서는 횡단 관심사(cross-concern) 라고 표현하는데
스프링은 이러한 횡단 관심사를 분리해서 제작하는 것이 가능합니다.
AOP(Aspect Oriented Programming) 는 이러한 횡단관심사를 모듈로 분리하는 프로그래밍 패러다임이다.
트랜잭션의 구조
트랜잭션처리란?
데이터베이스를 이용할 때 반드시 신경써야하는 부분중 하나로 하나의 업무가 여러 작업(트랜잭션)으로 이뤄지는 것을 말한다.
이 트랜젝션 처리는 상황에 따라서 복잡하게 구성될 수도 있고, 그때마다 코드를 이용해서 처리하는 것은 굉장히 굉장히 피곤한 일입니다.
스프링은 이런 트랜잭션의 관리를 애노테이션이나 XML로 설정할 수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성하 필요가 없도록 설계되어 있습니다.
'Back-end > Spring Framework' 카테고리의 다른 글
스프링예상문제 (0) | 2021.10.08 |
---|---|
[스프링 프레임워크] 스프링 개요 (0) | 2021.10.01 |
스프링에 대한 간단소개 : 스프링의 인기 비결은? (0) | 2021.09.17 |
- Total
- Today
- Yesterday
- JAVA프로젝트
- 하이브리드앱만들기
- 등산로API
- 스프링개념
- 프레임워크
- 등산어플
- 앱만들기
- SQL
- SQLD
- 스프링부트
- tkgiddl
- 추상클레스
- 프레임워크란
- 프레임워크 라이브러리 차이점
- static
- 모바일웹만들기
- 스프링
- 리츠란
- Java
- SET연산자
- 정규화
- 모바일앱만들기
- 라이브러리란
- Spring프로젝트
- 컬렉션프레임워크
- 쉬운개념
- 등산웹개발
- map
- select사용법
- 등산앱개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |