Spring - 프레임워크

2022. 6. 13. 22:10·STUDY/SPRING
반응형

프레임 워크(framework) : 어떤 대상을 구성하는 뼈대

    => SW : 기능을 미리 클래스나 인터페이스 형태로 만들어서 제공하는 형태

    => 모든 팀원이 동일한 구조에서 결과물을 생성 할 수 있음 => 개발 시간이 단축됨

 

* Spring 2.5 : 애노테이션을 지원 (@Controller 등)

  Spring 3.0 : Java 클래스를 설정 파일로 지원

  Spring 4.0 : REST 방식 지원

 

스프링 특징

 1. EJB(enterprise java beans)보다 가볍고 학습하기 쉬운 경량 프레임워크

 2. POJO(Plain Old Java Object) 기반의 구성 = 자바 형태로 만들어져 있음

 3. 제어의 역행(IoC, Inversion Of Control) 기술을 사용 => 애플리케이션의 약한 결합을 제어

      : 메서드/객체의 호출 작업을 개발자가 결정하는 것이 아닌 외부에서 결정(주로 프레임워크에서 결정)

 4. 의존성 주입(DI, Dependency Injection)기능 지원

      : 제어의 역행이 발생할 때, 스프링 내부에 있는 객체(Bean)을 관리하는 기법

       * 의존성 : 객체가 혼자서 처리할 수 없음. 다른 객체를 통해 도움을 받아야지만 처리가 가능함

         => 의존관계에 있는 객체를 직접 생성, 제어가 아니라 제어의 역행을 통해서 필요한 객체를 외부에거 결정해서 연결

               1. 생성자를 사용한 주입     /       2. set()을 사용한 주입

 5. 관점지향 프로그래밍 지원(AOP, Aspect-Oriented Programing)지원 => 자원관리 가능

      : 개발자가 비즈니스로직에만 집중해서 개발하도록 하는 방법

      : '횡단 관심사'를 분리하여 제작하여 개발하는 방법

 6. 편리한 MVC 패턴 구조

 7. 영속성 관련 다양한 서비스 제공

 

* AOP : 개발자가 비즈니스로직에만 집중해서 개발하도록 하는 방법

          : '횡단 관심사'를 분리하여 제작하여 개발하는 방법

  - aspect : 구현하고자 하는 보조기능(보안, 로그, 트렌젝션)

  - advice : aspect의 실제 구현 클래스(메서드 호출 기준으로 여러 곳 호출 가능)

  - joinpoint : advice를 적용하는 지검

  - pointcut : advice가 적용되는 대상 지점(패키지명/클래스명/메서드명)

  - target : advice가 적용되는 클래스

  - weaving : advice를 주기적으로 적용하는 것

 

* AOP기능 구현 

  1. target클래스를 지정한다.

  2. advice 클래스를 지정한다.

  3. 설정파일에서 pointcut 을 지정

  4. 설정파일에서 advice + pointcut 결합

  5. 스프링 ProxyFactoryBean 클래스를 사용해서 target에 advice를 적용

  6. getBean()사용해서 적용

 

* 주기능 : 계산

* 보조기능 : 로그출력

 

* 스프링 주요 기능

1. Spring Core : 다른 기능과 설정 기능을 분리하기 위한 IoC기능(제어의 역행)을 제공

2. Spring Context : 스프링의 기본기능, 애플리케이션의 각 기능을 빈에 접근하는 방법

3. Spring DAO : JDBC기능을 편리하게 사용 가능

4. Spring ORM : 하이버네이트/마이바티스와 같은 영속성 프레임 워크를 제공(DB관련 프레임 워크가 따로 존재함)

5. Spring AOP : 관점 지향 기능 제공

6. Spring WEB : 웹 애플리케이션 개발에 필요한 기능 제공

7. Spring WebWVC : MVC구현 기능 제공

 

* 강한 결합 : 직접적인 연관관계가 있어서 코드 변경이 어려움

* 약한 결합 : 직접적인연관관계가 없어서 코드 변경이 쉬움

 

 

반응형
저작자표시 (새창열림)

'STUDY > SPRING' 카테고리의 다른 글

SPRING - bean grape가 안뜰 때  (0) 2022.06.14
Spring - mysql 연결 테스트  (0) 2022.06.14
Spring Legacy와 boot 차이점  (0) 2022.06.13
spring - Controller테스트  (0) 2022.06.13
spring -(view, Service, Controller) 이론  (0) 2022.06.13
'STUDY/SPRING' 카테고리의 다른 글
  • SPRING - bean grape가 안뜰 때
  • Spring - mysql 연결 테스트
  • Spring Legacy와 boot 차이점
  • spring - Controller테스트
3unB
3unB
  • 3unB
    ILLILI
    3unB
  • 전체
    오늘
    어제
    • 분류 전체보기 (158)
      • STUDY (107)
        • JAVA (30)
        • SPRING (29)
        • JSP (11)
        • DATABASE (19)
        • HTML (0)
        • CSS (4)
        • GITHUB (2)
        • ETC (4)
        • 자격증 (1)
        • ERROR (6)
      • PROJECT (6)
        • Personal_Project 01 - commu.. (1)
        • TeamProject - JOINUS (4)
      • EUNB (30)
        • 맛집 (27)
        • 여행 (3)
        • 전세사기 (0)
      • 오블완챌린지 ++ (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 짱민지
    • 아랄이
  • 공지사항

  • 인기 글

  • 태그

    전포동 맛집
    alter
    망미 카페
    인제 두부
    전포동 카페
    센텀 신세계백화점 팝업
    속초 중앙시장 감자전
    망미 바
    속초 해변 숙소
    오블완
    전포 오꼬노미야끼
    서면 설야멱
    전포 맛집
    서면 맛집
    전포 밥집
    망미 조용한 카페
    전포 신상 맛집
    전포 데이트
    배열 한 컬럼에 넣기
    oracle
    콩콩팥팥 두부
    Database
    속초 숙소 내돈내산
    전포동 핫플
    티스토리챌린지
    전포 연어덮밥
    망미 테린느
    mysql
    콩콩팥팥 맛집
    인제 고향집
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.0
3unB
Spring - 프레임워크
상단으로

티스토리툴바