스프링 책 구매 - 45000원
=======================
chapter01 스프링 프레임워크란 무엇일까 ?
스프링 프레임워크를 줄여서 '스프링' 이라고 부름
개발을 단순하게 해주는 오픈 소스 애플리케이션 프레임워크다
스프링을 사용하면 웹 애플리케이션을 개발하고 데이터베이스에 접근하며, 트랙잭션을 관리하고
단위 테스트와 통합 테스트를 개발하는 등의 일을 할 수 있다.
스프링 모듈 간의 상호 의존관계가 있다 .
스프링 IoC 컨테이너 ( 스프링 컨테이너 )
객체가 다른 객체와 상호작용하는 경우 = > 의존관계
DI는 객체간의 의존관계를 생성자 인수, 세터 메서드 인수를 명시한다
스프링 컨테이너가 생성하고 관리하는 애플리케이션 객체들을 빈이라고 부른다.
스프링의 장점 ?
- 스프링은 객체 생성과 의존 관계 주입을 처리함으로써 자바 애플리케이션 조합을 쉽게 만들어 준다.
- 스프링은 POJO로 애플리케이션을 개발하는 것을 권장한다
트랜잭션?
트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다
자원에 따라 정해지는 트랜잭션을 지역 트랜잭션이라고 부른다 JTA(Java Transaction) API ( 자바 트랜잭션. API ) JTA 트랜잭션을 전역 트랜잭션 ( 분산 트랜잭션 ) 이라고 한다.
스프링을 사용하면 트랜잭셔을 선언적으로 관리 할 수 있다.
메서드에 @Transctional 애너테이션을 설정하면 스프링이 트랜잭션을 관리한다.=> 스프링이 비침입적이라는 사실을 나타낸다 스프링이 트랜잭션 관리를 알아서 하므로 트랜잭션 관리 API를 직접 다룰 필요가 없다.
보안
스프링 시큐리티는 스프링 위에 만들어진 프로젝트이다 스프링 시큐리티는 자바 애플리케이션을 안전하게 만들기 위해 필요한 사용자 인증과 권한 부여 기능을 제공한다. @Secured 애너테이션 설정할수 있다. 예로 @Secured({ "SAVINGS_ACCOUNT_CUSTOMER", "APPLICATION_ADMIN" }) 이렇게 권한 부여할때 예시로 적은거임
JMX ( Java Management Extension ) 자바 관리 확장
예로 은행앱 은행 앱 스케줄러 애플리케이션은 JMS API를 사용해 원격에서 인스턴스와 상호작용을 한다
클래스에 @ManagedResource를 설정하면 클래스의 인스턴스를 MBean 서버에 등록할 수 있고,메서드에 @ManagedOperation을 설정하면 @ManagedResource가 설정한 클래스의 메서드를 JMX 연산으로 노출시킬수 있다.
JMS ( Java Message Service ) 자바 메시지 서비스
JMS 제공자에게 메시지를 받거나 보낼 수 있다. @Autowired 애너테이션을 설정할수있다.
캐싱
스프링의 캐시 추상화를 사용하면 애플리케이션에서 앨관성 있게 캐시를 사용 할 수 있다. @Cachable 애너테이션은 메서드가 반환하는 캐시를 저장한다.
=====================https://github.com/getting-started-with-spring/4thEdition
책에 소개된 자료는 깃허브에서 다운받기
간단한 스프링 애플리케이션 만들기
스프링 DI 기능을 사용하려면 단계를 밟아야한다. 1. 애플리케이션에 쓰이는 여러 객체와 객체간의 의존관계를 파악한다2. 1단계에서 파악한 각 애플리케이션 객체에 상응하는 POJO 클래스를 만든다.3. 애플리케이션 객체 간 의존 관계를 표현하는 설정 메타데이터를 만든다 4. 스프링 컨테이너의 인스턴스를 만들고 설정 메타데이터를 인스턴스에 전달한다5. 스프링 컨테이너의 인스턴스로 애플리케이션 객체에 접근한다.
< 책 예시로는 은행 애플리케이션 만듦 >
<시퀀스 다이어그램은 2차원으로 표현되며, 수직은 발생 시간 순서로 메시지/호출 시퀀스를 보여주고 수평은 메시지가 전송되는 객체 인스턴스를 나타내고 있다. 시퀀스 다이어그램은 매우 간단하며, 다이어그램의 상단에 각 클래스의 인스턴스를 박스 안에 놓아 클래스 인스턴스(객체)를 구분한다.>
책 내용 간추리면
< 1. 애플리케이션에 쓰이는 여러 객체와 객체간의 의존관계를 파악한 >
1. << 웹 컨트롤러 >> 에 제출한 폼을 전달받은 웹 컨트롤러이다.
2. 웹 컨트롤러에 FixedDepositDetail에 정기 예금 정보가 들어있다.
3. 웹 컨트롤러에는 << 서비스>>에 creatFixedDeposit 메서드를 호출한다
4. 서비스는 DAO객체를 호출해서 정기 예금 정보를 애플리케이션 데이터 저장소에 저장한다
결론적으로 웹 컨트롤러는 --- 서비스에 의존하고 //// 서비스는 ----- DAO 객체에 의존한다
<2. 파악한 애플리케이션 객체에 상응하는 POJO 클래스를 만들기 >
FixedDepositController / FixedDepositService / FixedDepositDao 애플리케이션 객체에 해당하는 POJO 클래스를 만든다.
설정 메타데이터를 스프링컨테이너에 전달하는 방법은 XML 파일을 사용하는 방법 과 POJO 클래스에 애너테이션 설정하는 방법이 있다.
난 학원에서 @Configurtion @Bean 애너테이션 사용하는 방법을 배웠으니 그걸로 배우기
'코딩 > 스프링' 카테고리의 다른 글
스프링 AOP 수업내용 (1) 용어 정리 / 흐름 (0) | 2022.07.12 |
---|---|
AOP 7월 11일 (0) | 2022.07.11 |
스프링 컨테이너 이용하기 (0) | 2022.07.10 |
스프링 자동의존주입 @Autowired (0) | 2022.07.10 |
스프링 컨테이너 의존주입 (0) | 2022.07.07 |