[Spring] Spring Framework

Max·2022년 3월 16일
0

Spring

목록 보기
1/7
post-thumbnail

1. Framework


코드를 구현하는 시간을 줄이고 코드의 재사용성을 증가시키기 위한 일련의 클래스 묶음이나 뼈대, 틀을 제공하는 라이버러리를 구현해놓은 것

특징

  • 개발자가 따라야 하는 가이드 제공
  • 개발 가능한 범위가 정해져 있음
  • 개발을 위한 다양한 도구과 플러그인을 제공

장점 및 단점

  • 장점
    + 개발 시간 단축
    + 정형화 되어 있어서 일정 수준 이상 품질 기대 가능
    + 유지보수가 쉬움

  • 단점
    + 너무 의존하게 되면 개인 개발 능력이 떨어져 스스로 개발 어려워짐
    + 습득하는데 시간이 오래 걸림

2. Spring Framework


자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크
개발하는데 유용하고 편리한 기능을 제공하는 프레임워크

특징

  • DI (Dependency Injection) - 의존성 주입

    설정 파일이나 어노테이션을 통해 객체 간의 의존 관계를 설정하여 개발자가 직접 의존하는 객체를 생성할 필요가 없음

    의존성 이란 하나의 객체가 어떠한 다른 객체를 사용하고 있음을 의미

  • IoC (Inversion of Control) - 제어 역전

    컨트롤의 제어권이 개발자가 아닌 프레임워크에 있고 객체의 생성부터 모든 생명주기 관리를 프레임워크가 주도

  • Spring AOP (Aspect Oriented Programming) - 관점 지향 프로그래밍

    트렌잭션, 보안 등 여러 모듈과 어려 계층에서 공통으로 필요한 기능을 한 곳에 보관해서 관리함으로 유지보수와 코드 재사용성이 극대화

  • POJO (Plain Old Java Object)

    일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어 개발이 쉬우며 기본 라이브러리의 지원 용이

  • Spring JDBC (Java Database Connectivity)

    자바 프로그램 내에서 SQL을 실행하기 위해 데이터베이스를 연결해주는 응용프로그램 인터페이스


Spring Framework 구조


  • Spring Core

    Spring Container를 의미하며 Spring Framework의 핵심
    Bean Factory를 기반으로 bean 클래스를 제어할 수 있는 기능을 지원하며 Bean Factory는 IoC 패턴을 적용하여 객체 구성 부터 의존겅 처리까지 모든 일을 처리하는 역할을 함
  • Spring Context

    Context 정보들을 제공하는 설정 파일로써 JNDI, EJB, Validation, Internalization 등 엔터프라이즈 서비스들을 포함하고 있음
  • Spring AOP

    AOP(관점 지향 프로그래밍)를 적용 할수 있게 도와주는 Module
    Spring Framework의 특징에서 AOP 설명해서 패스
  • Spring DAO

    DAO(Data Access Object)는 데이터베이스에 접근하는 객체로 코딩이나 예외처리를 간편화 시켜 일관된 방법으로 코드를 짤 수 있게 도와줌
  • Spring ORM

    ORM(Object Relational Mapping)는 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결) 해주는 것
  • Spring Web

    Application module에 내장되어 있으며 일반적인 Web Application을 개발하는데 있어 필요한 기본적인 기능을 지원하기 위해 Web기반의 응용프로그램에 대한 Context를 제공함
  • Spring MVC

    Application 만드는 것을 지원
    MVC(Model - View - Controller) 프레임 워크는 웹 응용 프로그램을 작성하기 위한 완전한 기능을 가진 MVC를 구현함


Spring Framework 동작 구조


1. 사용자 요청이 전달
2. Dispatcher Servlet으로 처음 전달받고 HandlerMapping을 통해 해당 Controller와 연결
3. Controller는 필요한 데이터를 추출하고 해당 데이터에 대한 뷰 이름 지정
4. View Resolver는 데이터에 대한 뷰를 생성하고 사용자에게 데이터 전달


**수정해야 될 부분들이 있으면 댓글로 알려주세요**

ref :


profile
co_der

0개의 댓글

관련 채용 정보