본문 바로가기
Spring

Spring Framework

by irerin07 2019. 6. 13.
728x90

Framework

  • 아키텍처에 해당하는 골격 코드.

  • 애플리케이션의 구조를 결정하는 아키텍처에 해당하는 코드를 프레임워크가 제공한다.

  • 그렇기에 개발자는 비즈니스 로직에 집중 할 수 있다.

  • Spring(MVC) - MVC 아키텍처를 제공하는 UI Layer 프레임워크

  • Spring(IoC, AOP) - IoC와 AOP모듈을 미용하여 Spring 컨테이너에서 동작하는 엔터프라이즈 비즈니스 컴포넌트를 개발 할 수 있다.

  • Hibernate, JPA - ORM Framework. SQL 명령어를 프레임워크가 자체적으로 생성하여 DB연동을 처리. JPA는 모든 ORM의 공통 인터페이스를 제공하는 자바 표준 API.

탄생배경

  • EJB로 구현하는것은 매우 복잡하고 비싸며 많은 시간과 노력이 필요.
  • 스프링 프레임워크는 POJO를 사용하면서 EJB에서만 가능했던 많은 일을 가능하도록 지원.

특징

  • IoC와 AOP를 지원하는 경량 컨테이너 프레임워크
    • POJO형태의 객체를 관리하기 때문에 가볍다.
  • IoC, Inversion of Control
    • 개발을 할 때는 항상 낮은 결합도와 높은 응집도를 항상 신경써야 한다.
    • IoC는 결합도와 관련이 있다.
    • 객체 생성을 개발자가 직접 처리하는 것이 아니라 컨테이너가 대신 처리해준다.
    • 소스코드에 의존관계가 명시되지 않으므로 결합도가 떨어진다.
  • AOP, Aspect Oriented Programming
    • OOP를 더욱 OOP답게 사용 할 수 있도록 도와준다.
    • 응집도와 관련이 있다.
    • 핵심 비지니스 로직과 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리하여 응집도를 높여준다.
  • 컨테이너
    • 특정 객체의 생성과 관리를 담당
    • 객체 운용에 필요한 다양한 기능을 제공
    • 서버 안에 포함되어 배포 및 구동

IoC 컨테이너

  • 설정 파일을 로딩하여 구동
  • 클라이언트로부터 요청 수신
  • 해당되는 클래스를 찾아 객체를 생성하고 해당 메소드 호출
  • 실행 결과를 클라이언트에게 전송

결합도

  • 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 나타낸다.
  • 이를 낮추기 위해...
    • 다형성 이용하기(Polymorphism)
    • 디자인 패턴 이용하기
      • Factory패턴이 적용된 BeanFactory
728x90

'Spring' 카테고리의 다른 글

Spring Framework 2  (0) 2019.12.04
Spring Framework 1  (0) 2019.12.04
1  (0) 2019.08.25
SpringFramework 3  (0) 2019.06.13
Spring Framework 2  (0) 2019.06.13