SEB_BE 34일차 - Spring Framework 기본

subimm_·2022년 10월 12일
0

코드스테이츠

목록 보기
34/83

💡 오늘의 학습목표

  • Spring Framework
  • POJO
  • IoC
  • DI
  • AOP
  • PSA

📙 Spring Framework

Framework
https://start.spring.io/

  • 어떤 애플리케이션을 만들기 위해 기본적인 프로그래밍 틀 혹은 구조를 제공
  • Frmaework를 교체하는 것은 어렵지만 Library는 쉽게 교체와 선택 가능

📖 Spring Framework

  • Spring Framework의 장점
  1. POJO(Plan Old Java Object)기반의 구성
  2. DI(Dependency injection) 지원
  3. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원
  4. Java언어 사용
  • 기업용 엔터프라이즈 시스템을 구축하기 좋음
    • Java Servlet ? 클라이언트 웹 요청 처리에 특화된 Java클래스의 일종
      Spring MVC 같은 Java 기반의 웹 애플리케이션 내부에서 여전히 사용

📔 Spring Framework의 특징

📖 POJO (Plain Old Java Object)

  • Java로 생성하는 순수한 객체
    • Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.
    • 특정 환경에 종속적이지 않아야 한다.
  • Spring에서는 POJO 프로그래밍을 위해 Ioc/DI, AOP, PSA 기술을 지원.![]

📖 IoC(Inversion of Control)

  • 애플리케이션 흐름의 주도권을 Spring이 갖는다.

ex) 서블릿 기반의 애플리케이션을 웹에서 실행할 때 별도의 main()메서드가 존재 x
서블릿 컨테이너의 경우, 클라이언트의 요청이 들어올 때마다 컨테이너 로직(service()메서드)이 서블릿을 직접 실행시켜줌.

main() 메서드처럼 애플리케이션이 시작되는 지점을 엔트리 포인트 라고 한다.

📖 DI (Dependnecy Injection)

  • 의존성 주입( IoC 개념을 좀 더 구체화 시킨 것 )

    클래스 다이어그램 도구 : https://online.visual-paradigm.com/diagrams/features/

  • 클래스 간의 의존 관계 성립

    1. 클래스끼리 사용하고자 하는 클래스의 객체 생성 후 참조하게 되면 의존 관계가 성립
    2. 생성자를 통해서 어떤 클래스의 객체를 전달 받는것 (의존성 주입)
  • 클래스의 생성자로 객체를 전달 받는 코드가 있다면, 객체를 외부에서 주입 (의존성 주입)

    결합을 할 때 느슨한 결합이 필요하다. <인터페이스 사용>

📖 AOP (Aspect Oriented Programming)

  • 관심 지향 프로그래밍
    애플리케이션에 필요한 기능 중에서 공통적으로 적용되는 공통 기능에 대한 관심
  • 공통 관심 사항 : 공통 기능들에 대한 관심사
  • 핵심 관심 사항 : 비즈니스 로직, 어플의 주 목적을 달성하기 위한 핵심 로직에 대한 관심사
    • 애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션과 같은 공통 기능 로직들을 분리하는 것

📖 PSA (Portable Service Abstraction)

  • 클라이언트가 추상화 된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것
  • 서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술 자체를 유연하게 사용할 수 있도록 하는 것
profile
코린이의 공부 일지

0개의 댓글