YJ의 새벽
SpringBoot 개념정리? 본문
- 스프링이란 ?
-- 스프링은 프레임워크이다.
- 틀안에서 동작하다.
-- 스프링은 오픈소스이다.
-- 스프링은 IoC 컨테이너를 가진다. ( Inversion of Controll )
- 제어의 역전. ( 주도권이 스프링 ! )
( 객체를 가져가 heap 메모리에 저장 )
-- 스프링은 DI 를 지원한다. 의존성 주입 ( Dependency Injection )
( heap 메모리 객체를 건내줌 ) (싱글톤)
-- 스프링은 많은 filter (문지기) 를 가지고있다.
ex) 성 (톰켓 . filter(web,xml )) 안에있는 왕의집 (스프링컨테이너 . 인터셉터(AOP) )
-- 스프링은 많은 어노테이션을 가지고있다.
-- 컴파일러에게 힌트를 줌.
-- 스프링은 어노테이션을 통해 주로 객체 생성을 한다.
-- @Component : 클래스 메모리(heap)에 로딩해.
-- @Autowired : 로딩된 객체를 해당 변수에 집어넣어.
-- @Bean
-- @Controller
- DI ( Dependency Injection ) 의존성 주입 ( 부품, 조립 )
- IoC Container ( Inversion of Control ) 역순 .
- JPA 란 ??
-- JPA 는 Java Persistence API 이다. ( 데이터가 영구히 기록될수있게 해준다. )
-- JPA 는 ORM 기술이다. ( Object Relational Mapping )
-- 자바 class 실행하면, DB에 테이블이 자동으로 생성하게해주는 기법 !
-- JPA 는 반복적인 CRUD 작업을 생략하게 해준다.
ex ) Java와 DB 사이의 쿼리전송, Connection , 등등 반복적인코드들을
생략할수있게 해준다.
-- JPA 는 영속성 컨텍스트를 가지고 있다.
ex ) Java와 DB 사이에서 , 데이터를 보고 알아서 판단 .
-- JPA 는 DB와 OOP 의 불일치성을 해결하기 위한 방법론을 제공한다. ( DB는 객체저장 불가능 )
-- ORM 기술 이용.
-- JPA 는 OOP 의 관점에서 모델링을 할 수 있게 해준다. ( 상속, 컴포지션 , 연관관계 )
-- 방언 처리가 용이하여 Migration하기 좋음, 유지보수에도 좋다.
-- JPA 는 쉽지만 , 어렵다 .!
- 스프링부트 동작원리
1) 내장 톰켓을 가진다. ( jsp -> java -> 컴파일 -> html ) 읽을수있게 변환해줌.
2) 서블릿 컨테이너 ( 톰켓 )
- web.xml ??
-- ServletContext 의 초기 파라미터 ( ex 암구호 )
-- Session의 유효시간 설정
-- Servlet/JSP 정의/맵핑
맵핑 : 요청한 식별자,로케이션이 어디인지 위치를 잡아준다.
-- Mime Type 맵핑
-- 들고있는 데이터의 타입을 사용할수있게 데이터를 가공한다 .
-- Welcome FileList
-- 목적없이 들어오는아이들을 관리.
-- Error pages 처리
-- 리스너/필터 설정
-- 보안
- FrontController
-- 최초 앞단에서 request 요청을 받아서 필요한 클래스를 넘겨준다 .
-- web.xml 에 다 정의하기 힘들기때문.
request --> web.xml --> IoC 에 class저장해줌 .
( Dispach Servlet) (주소분배)
= 컴포넌트 스캔. ( @Controller ) ( @Configration) (@Repository) (@Service)
(@Component)
'Spring > Spring' 카테고리의 다른 글
Spring 3 ( 파라미터 가져오기 , 화면전환 ) (0) | 2023.04.21 |
---|---|
Spring 2 ( 개발환경 ( STS )) (0) | 2023.04.21 |
Spring 1 ( 개요 ) (0) | 2023.04.21 |
Spring ( 객체지향 설계 5가지 원칙 ( (SOLID)) (0) | 2023.02.26 |
Spring. (0) | 2023.02.13 |