ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring 용어정리
    WebSetting 2020. 1. 16. 13:44
    • JSP Model1, Model2, Spring MVC pattern 차이
    • Spring framework /Spring boot
    • POJO
    • IoC
    • DI(3 types)
    • AOP
    • DTO
    • DAO

    <Architecture>

     

    1. Model1 

    출처 제타위키

    뷰와 로직을 JSP 페이지로 처리하는 구조

    구조가 단순하다

     

    단점 :

    1. JSP 안에서 너무 많은 일(html,css,javascript,java)들이 이루어짐 -> 개발자가 쓰기엔 좋으나 디자이너들에게는 접근성이 좋지 않음

    2. 분업이 쉽지 않다

    3. 보안에 문제가있다(database 연결을 직접적으로 할 경우 노출 가능성 높음)

     

     

    2. Model2 (MVC)

     

    출처 제타위키

    M : model  -> database 관리

    v : view  -> 사용자가 보는 화면

    c : controller -> view와 model 관리

         requsest 요청 받는다 -> front controller : 요청을 받는 주체 ; 서버로 들어오는 모든 요청을 처리하는 컨트롤러

         servlet로 구성되어있고 model에 있는 db 정보 다 받아서 viewpage와 연결해서 set를 만들어서 방출

         코드가 간단하다

         뷰와 로직처리 분업이 가능하다

     

    단점:    

    1. 구조가 복잡하고 습득하기 어려우며 작업량이 많다.

     

    3. Spring MVC

    출처 https://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm

    - DispatcherServlet 

    1. front controller; 서버로 들어오는 모든 요청을 처리하는 컨트롤러

    2. 받은 요청은 HandlerMapping 으로 전달된다.

     

    - Handler Mapping

    1. 사용자의 요청 URL을 mapping할 Controller를 찾는다 

     

    - View Resolver

    1. Controller가 반환한 View Name(the logical names)에 prefix, suffix를 적용하여 View Object(the physical view files)를 반환한다.

    예를 들어 view name: home, prefix: /WEB-INF/views/, suffix: .jsp는 "/WEB-INF/views/home.jsp"라는 위치의 View(JSP)에 Controller에게 받은 Model을 전달한다.

    (Reference : https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html)

     

    4. Spring framework

    1. Spring : 자바 엔터프라이즈 개발을 위한 오픈소스 애플리케이션 framework

    2. Framework : 전체를 총괄하는 역할 ;  소프트웨어 설계와 구현을 재사용이 가능하도록 협업화된 형태로 클래스를 제공한다.

    Library : 어떤 특정한 일을 관리하는 역할

     

    5. Spring boot

    1. Spring 프로젝트가 제공하는 다양한 library와 framework를 더 빠르고 쉽게 사용할 수 있게 도와주는 툴이다.

    (Reference : https://spring.io/projects/spring-boot )

     

    6. POJO (Plain Old Java Object)

    1. 상속, 인터페이스가 없는 아주 단순한 구조

    2. 필요한 business logic 만 넣으면 된다.

     

    7. IOC (inversion of control, 제어의 역전)

    1. spring framwork 는 객체에 대한 생성 및 생명주기를 관리할 수 있다 -> 제어의 권한을 넘기는 것을 말함

    2. IOC가 어떻게 제어하는지에 따라 코드를 짜야한다.

    3. framework의 event, delegate에 나의 method를 등록시켜, 전달되는 인자와 반환 형식만 일치하면 framework가 등록된 method를 인식하여 실행한다.

    (Reference : https://vandbt.tistory.com/43)

     

    8. DI (Dependency Injection, 의존성 주입)

    1. 객체의 의존성을 외부에서 주입하는 개념 = 필요한게 있으면 내가 직접 만드는 것이 아니라 선언을 통해 외부에서 알아서 제공해주겠다고 하는 것을 의미한다.

     

    의존성 주입 방법:

    1. setter 메소드를 이용한 의존성 주입 

        setter() 메소드는 외부에서 object 내부의 attribute값을 변경하려는 용도로 주로 사용된다. 핵심기능은 파라미터로 전달된 값을 내부의 인스턴스 변수에 저장하는 것이다. 마찬가지로 spring에서는 외부에서 제공받은 오브젝트 레퍼런스를 저장해뒀다가 내부의 메소드에서 사용한다.

    (Reference: http://www.nextree.co.kr/p11247/)

    2. 생성자 주입 : 필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해(파라미터를 만들어둠) 의존성을 주입한다.

    3. 초기화 인터페이스 : 주입하기 위한 인터페이스를 정의한 후 사용한다.

     

    9. AOP(Aspect Oriented Programming , 관점 지향 프로그래밍)

    출처 https://engkimbs.tistory.com/746

    1. 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원한다.

    2. interceptor의 기능을 한다.

    3. 필요한 기능을 만들어놓고 그걸 넣고 싶은 모듈에 넣으라고 하면 된다.

     

    10. DTO (Data Transfer Object)

    1. 계층 간 데이터 교환을 위한 객체(Java Beans); DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체

    2. 로직을 갖고 있지 않는 순수한 데이터 객체; getter, setter 메서드만 가지고 있다.

    11. DAO (Data Accress Object)

    1. 계층 간 데이터 교환을 위한 객체(Java Beans); DB에서 데이터를 얻어 Service 나 Controller 등으로 보낼 때 사용하는 객체

    2. 로직을 갖고 있지 않은 순수한 데이터 객체; getter/setter 메서드만을 갖는다.

    (Request: https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html)

     

    외)

    어노테이션 : 자동으로 webservlet 주소 같은 것을 지원해주는 것

    Maven: 자바 프로젝트 빌드를 자동화해주는 빌드 툴, 자바소스 compile, packaging, deploy를 자동화함, 동일한 빌드 시스템으로 설정

     

     

     

     

     

     

     

    'WebSetting' 카테고리의 다른 글

    Spring Controller Parameter Type 정리  (0) 2020.01.17
    Spring Controller 메서드 Return Type  (0) 2020.01.17
    SQL DATABASE 정리  (0) 2020.01.15
    SQL 정리  (0) 2020.01.15
    JSP 개발환경 구축(Mac OS)  (0) 2020.01.08
Designed by Tistory.