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
  • 전체
    오늘
    어제
    • 분류 전체보기 (153)
      • STUDY (109)
        • JAVA (31)
        • SPRING (29)
        • JSP (11)
        • DATABASE (19)
        • HTML (0)
        • CSS (4)
        • GITHUB (2)
        • ETC (5)
        • 자격증 (1)
        • ERROR (6)
      • PROJECT (6)
        • Personal_Project 01 - commu.. (1)
        • TeamProject - JOINUS (4)
      • EUNB (30)
        • 맛집 (27)
        • 여행 (3)
        • 전세사기 (0)
      • 오블완챌린지 ++ (4)
  • 블로그 메뉴

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

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

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바