YJ의 새벽

SpringBoot 개념정리? 본문

Spring/Spring

SpringBoot 개념정리?

YJDawn 2023. 3. 9. 01:58

 

 

 

  • 스프링이란 ?

 

-- 스프링은 프레임워크이다. 

   - 틀안에서 동작하다.

-- 스프링은 오픈소스이다.

-- 스프링은 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
Comments