일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 운영체제
- 테스트코드
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2장
- AWS EC2 구현
- 스프링부트
- 자바스크립트
- 내가해냄
- Flexbox
- CS
- 스프링부트와 AWS로 혼자 구현하는 웹서비스
- 개발자기술면접
- 어찌저찌해냄
- jpa
- 스프링부트 테스트코드
- 트랜지스터
- 오늘도
- 스프링부트와 AWS로 혼자 구현하는 웹 서비스
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 기술면접
- 그래도일단
- Today
- Total
개발 공부
스프링의 주요 특징 본문
1. POJO 기반의 구성
일반적인 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 쓸 수 있다.
다른 프레임워크는 객체 간의 관계를 구성할 때 별도의 API를 사용해야 하지만 스프링은 그렇지 않음
여기서 POJO는 Plain Old Java Object의 약자이다.
2. 의존성 주입을 통한 객체 간의 관계 구성
*의존성: 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것
의존성 주입이란, 어떤 객체가 필요한 객체를 외부에서 밀어 넣는다는 의미이고, 필요한 객체를 외부에서 받는다는 것은 편리하기만 한 것이 아니라 어떤 객체에 의존하든 자신의 역할에만 집중할 수 있다는 것임
스프링에서는 필요한 객체들을 생성하고 주입하는 역할을 'ApplicationContext'라는 존재가 해줌
ApplicationContext가 관리하는 객체 -> Bean
Bean과 Bean 사이의 의존관계를 처리하는 방식 -> xml 설정, 어노테이션 설정, Java 설정
3. AOP의 지원 (Aspect Oriented Programming)
횡단 관심사(cross-concern) : 대부분의 시스템이 공통으로 갖고 있는 보안, 로그, 트랜잭션과 같이 비즈니스 로직은 아니지만, 반드시 처리가 필요한 부분
AOP는 횡단 관심사를 모듈로 분리하여 개발자가 핵심 비즈니스 로직에 집중해서 개발할 수 있게 해 주고, 각 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화시킬 수 있으며, 원하는 관심사의 유지보수가 수월한 코드를 구성할 수 있게 해 줌.
스프링은 AOP를 AspectJ의 문법을 통해 작성
4. 트랜잭션의 지원
DB를 이용할 때 하나의 업무가 여러 작업으로 이루어지는 경우의 트랜잭션 처리를 신경 써야 함.
스프링은 트랜잭션의 관리를 어노테이션이나 xml로 설정 가능 (매번 코드를 이용해 처리하는 작업은 번거로운 일)
참고: 코드로 배우는 스프링 웹 프로젝트