ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 프레임워크 시작하기
    개발자 수업/Spring 2021. 12. 29. 09:56

    1. SW 재사용 방안
        1) 복사 & 붙이기
        2) 메서드 정의, 호출
        3) 클래스 재사용(상속)
        4) AOP (Aspect Oriented Programming)
            - 로깅, 보안
        
    2. 디자인패턴
        1) GoF(Gang of Four) - Design Patterns
            - 재사용 가능한 객체지향 소프트웨어 요소(디자인 패턴)
        2) 구조적인 가이드라인
        3) 구현된 기반코드를 제공하지 않음

    3. 프레임워크
        1) 비기능적 요구사항(성능, 보안, 확장성, 안정성)을 만족하는 구조와 구현된 기능을 안정적으로 실행하도록 제어해주는 잘 만들어진 구조의 라이브러리임
        2) 비기능적 요소들을 초기 개발 단계마다 구현해야 하는 불합리함을 극복해줌
        3) 기능적인(Functional) 요구사항에 집중할 수 있도록 해줌
        4) 기반 클래스 라이브러리, 구현코드를 제공

    4. 디자인패턴 & 프레임워크
        1) 디자인패턴은 프레임워크의 핵심적인 특징임
        2) 프레임워크를 사용하는 애플리케이션에 그 패턴이 적용됨

    5. IoC(Inversion of Control)
        1) 제어의 역전
        2) 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줌
        3) 컨테이너 역할을 해주는 프레임워크에게 제어하는 권한을 넘겨서 개발자의 코드가 신경써야 할 것을 줄이는 전략임
        4) 프레임워크의 동작원리가 반대로 동작하므로 IoC라고 함
        5) Spring 컨테이너는 IoC를 지원함

    6. 특징             프레임워크                          라이브러리
      ------------------------------------------------------------------------------
        유저코드 작성   프레임워크 클래스를 기반            독립적으로 작성
        호출흐름        프레임워크 코드가 유저코드를 호출   유저코드가 라이브러리를 호출
        실행흐름        프레임워크가 제어                   유저코드가 제어
        객체의 연동     프레임워크가 정의                   독자적으로 정의

        -> 프레임워크와 라이브러리 구분하는 방법 : 실행제어가 어디서 일어나는가에 달려있음
            - 라이브러리 : 개발자가 만든 클래스에서 직접 호출하여 사용. 실행 흐름에 대한 제어를 개발자의 코드가 관장함
            - 프레임워크 : 프레임워크에서 개발자가 만든 클래스를 호출하여 실행의 흐름에 대한 제어를 담당함

    7. 프레임워크 = 디자인 패턴 + 라이브러리
        1) 웹 : Spring MVC
        2) ORM(Object Relational Mapping) : MyBatis, Hibernate, JAP, Spring JDBC
        3) AOP : Spring AOP
        4) DI (Dependency Injection) : Spring DI
        5) Build와 Library 관리 : Ant, Maven, Gradle
        6) JavaScript : jQuery, React, Vue, Angluar

    '개발자 수업 > Spring' 카테고리의 다른 글

    6. Spring MVC  (0) 2021.12.30
    5. AOP  (0) 2021.12.29
    4. IoC와 DI  (0) 2021.12.29
    3. 스프링 의존성 주입  (0) 2021.12.29
    2. 스프링 프레임워크  (0) 2021.12.29

    댓글