728x90
목차
01장 스프링 프레임워크
프레임 워크 : 개발을 편하게 해주는 뼈대
스프링 프레임워크 (스프링): 자바 개발환경의 프레임워크
스프링 구성
- 스프링부트
- 스프링 애플리케이션을 빠르게 작성 제공
- 스프링 프로젝트
- 스프링 MVC :MVC (모델- 뷰 -컨트롤러) 웹 application 간단 생성
- 스프링 데이터 : 데이터 접근에대한 기능
- 스프링 배치 : 배치 처리 기능
- 스프링 시큐리티 : 인증/허가 기능
- 스프링 DI : DI(의존성 주입) 기능
- 스프링 AOP : AOP (관점지향 프로그래밍) 기능
02장 기초 지식 배우기
- 인터페이스
- 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한다.
- 다른 클래스에서 구현하는 것을 전제로 만든다(implements)
- 메소드를 상속/구현 하여 재구현 하는 것을 Override라고 하며 @Override를 붙인다.
- 컬렉션 :자바의 배열와 달리 길이에 제약이 없어 복수의 데이터를 쉽게 사용
- 리스트 :순서대로 저장 / 중복X
- ArrayList :검색에 유리
- LinkedList : 추가/삭제유리
- 세트:순서유지X/ 중복X
- 맵 : 한쌍으로 관리(키 - 값 ) / 순서X / 키 중복X 값 중복 O
- 리스트 :순서대로 저장 / 중복X
웹 지식
- HTTP통신
- 클라이언트 - 웹서버간의 HTTP 요청과 응답으로 상호작용하는 것
- GET / POST
- http 요청의 한 유형
- GET - 브라우저에서 웹서버로 값을 전달할때 URL뒤에 값(query string)을 보내는 방식
- POST - 브라우저에서 웹 서버에 값을 보낼때 요청본문(request body) URL에는 보이지 않는 장소에 값을 넣어서 보내는 방식
- 둘의 차이를 모르겠다면 저는 이렇게 구분합니다
- Get : 주소로 바로 접속가능( 회사주식정보)
- Post : 특정주소에서 요청해야 보이게함(로그인폼)
03장 스프링 프레임워크의 핵심 기능 알아보기
의존성주입(Dependenct Injection)
의존하는 부분을 외부에서 주입을 의미
- 의존성
- 클래스A를 수정했더니 A를 사용하는 클래스Main이 수정해야할 경우 Main는 A에 의존한다.
- 클래스 의존 / 인터페이스 의존 나눠진다
- 클래스 의존
- Main에서 클래스 B의 메서드를 사용하고있을때 클래스 C의 메서드로 변경해야할때
- 아래처럼 사용되는 객체를 바꿔준다
- 지금의 경우는 메소드도 동일하지만 규칙없이 작성하다보면 다양한 코드를 바꿔야하고 수정작업이 많아지게 된다.
main(){
//B action = new B();
C action = new c();
action.eat();
}
- 인터페이스 의존
- B와 C를 인터페이스로 추상화된 I를 쓴다고 했을경우
- 인터페이스에서 구현한 메소드 들이기 때문에 한곳만 수정하게 된다.
main(){
I action = new c(); //B();
action.eat();
}
- DI컨테이너
- 위의 코드에서는 인스턴스를 생성할 때 각자 new를 사용하였다.
- 스프링에서는 인스턴스 생성과 같은 작업을 DI 컨테이너가 생성한다.
- DI컨테이너 사용 다섯가지 규칙
- 인터페이스를 사용하여 의존성 제작
- 인스턴스를 명시적으로 생성X (new X)
- 어노테이션을 클래스에 부여
- 스프링에서 인스턴스를 생성
- 인스턴스를 이용하고 싶은곳에도 어노테이션 부여
- 관련 어노테이션
@Controller 인스턴스 생성 지시, 컨트롤러에 부여 @Service 인스턴스 생성 지시, 트랜잭션 경계가 되는 도메인(서비스) 기능에 부여 @Repository 인스턴스 생성 지시, 레포지토리에 부여 @Component 위 용도 이외의 클래스에 부여 @Autowired 인스턴스를 이용하는 클래스에 참조를 받는 필드를 선언하고 필드에 부여
관점 지향 프로그래밍( Aspect Oriented Programming)
- AOP의 두요소
- 중심적 관심사 (구현하고 싶은 프로그램) : 구현해야할 기능
- 횡단적 관심사 (부수적 프로그램) : 본질적인 기능이 아니지만 품질, 유지보수등의 관점에서 꼭 필요한 기능
- 횡단적 관심사를 분리하여 기존 코드를 수정하지 않아도 공통 처리를 위한 기능을 추가 할 수 있게 한다.
-
AOP 고유용어
Advice 횡단적 관심사의 구현 Aspect 어드바이스를 정리한 것(클래스) JoinPoint 어드바이스를 중심적인 관심사에 적용하는 타이밍 Pointcut 어드바이스를 삽입할 수 있는 위치 Interceptor 처리의 제어를 인터셉트하기 위한 구조 또는 프로그램 Targer 어드바이스가 도입되는 대상
728x90
'==6. 책 공부== > 북스터디' 카테고리의 다른 글
[북스터디] Clean Code (0) | 2024.11.02 |
---|---|
[북스터디]스프링 프레임워크 첫걸음 3주차 (0) | 2024.10.27 |
[북스터디]스프링 프레임워크 첫걸음 2주차 (0) | 2024.10.27 |
[북스터디]스프링 프레임워크 첫걸음 목차 (0) | 2024.10.20 |
댓글