SpringFramework 기본

uudean·2023년 5월 30일
0

Spring

목록 보기
1/13

1.FrameWork란?

소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용 가능하게 끔 일련의 협업화 된 형태로 클래스들을 제공하는 것

Framework를 사용했을때의 장점

  • 효율적인 코드 작성 가능 :
    다양한 기능들을 프레임워크가 라이브러리 형태로 제공 함으로써 개발자가 애플리케이션의 핵심로직을 개발하는데 집중할 수 있음
  • 정해직 규약이 존재해 애플리케이션 효율적인 관리 가능 :
    규약이 존재하기 때문에 유지보수가 필요한 경우 더 빠르고 쉽게 문제점을 파악가능 하고 수정할 수 있으며 다른 사람이 볼때도 마찬가지이다.

Framework를 사용했을때의 단점

  • 자유롭고 유연한 개발 어려움 : 규약을 벗어나기 어렵다
  • 사용하고자하는 Framework에 대한 학습이 필요

Framework와 Library의 차이점

  • 한번 정해진 Framework를 교체하기는 어려우나 Library의 경우 쉽게 교체가 가능하며 선택적으로 사용 가능하다. 명료하게 말해서 애플리케이션에 대한 제어권의 차이이다.

2.Spring Framwork란?

Spring Framwork의 장점

  • POJO (Plan Old Java Object) 기반의 구성
  • DI(Dependency Injection) 지원
  • AOP(Aspect Oriented Programming , 관점지향 프로그래밍) 지원
  • Java를 사용함으로써 얻는 장점
    -> 정적 타입 언어로써 변수의 타입 , 메서드의 입출력이 가져야하는 지를 강제함

객체지향 설계원칙에 잘 맞는 재사용과 확장이 가능한 애플리케이션 개발 스킬의 향상,
보다 나은 성능과 서비스의 안정성이 필요한 복잡한 기업용 엔터프라이즈 시스템을 제대로 구축하기 위한 능력을 기를 수 있음

3.Spring Framework의 특징

Spring 삼각형으로 불리며 Spring의 핵심 개념을 모두 포함하고 있으며 POJO를 IoC/DI, AOP, PSA를 통해 달성할 수 있다는 것을 의미함.

POJO(Plain Old Java Object)란?
'POJO'는 자바로 생성하는 순수한 객체를 의미

POJO 프로그래밍이란?

  • 자바나 자바의 스펙에 정의된것 이외에는 다른 기술이나 규약에 얽매이지 않아야 함
  • 특정환경에 종속적이지 않아야함

POJO 프로그래밍이 필요한 이유

  • 특정환경이나 기술이 종속적이지 않으면 재사용 가능하고, 확장 가능한 유연한 코드 작성 가능
  • 저수준 레벨의 기술 환경에 종속적인 코드를 애플리케이션 코드에서 제거함으로써 코드가 깔끔해짐
  • 코드가 깔끔해지기 때문에 디버깅도 상대적으로 쉬움
  • 특정기수이나 환경에 종속적이지 않기 때문에 테스트 역시 간단함
  • 객체지향적인 설계를 제한없이 적용가능

SOLID(객체 지향 설계 원칙)

  • S -> SRP : 단일 책임 원칙 : 한 클래스는 하나의 책임만 존재
  • O -> OCP : 개방-폐쇄 원칙 : 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀있어야 함
  • L -> LSP : 리스코프 치환 원칙 : 프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위타입의 인스턴스로 바꿀 수 있어야함
  • I -> ISP : 인터페이스 분리 원칙 : 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 나음
  • D -> DIP : 의존 관계 역전원칙 : 프로그래머는 추상화에 의존해야지 구체화에 의존해선 안됨

IoC (Inversion of Control)
라이브러리는 애플리케이션의 주도권을 개발자가 가지고 있지만 프레임워크는 주도권을 프레임워크가 가지고 있다
IoC란 애플리케이션 흐름의 주도권이 뒤바뀐것을 의미한다

DI

AOP

PSA(Portable Service Abstraction)
객체지향 프로그래밍 세계에서 어떤 클래스의 본질적인 특성만을 추출해서 일반화 하는것을 추상화(Abstraction)이라고 함
자바에서 코드로 표현할 수 있는 추상화는 인터페이스가 대표적임
PSA란 애플리케이션에서 특정 서비스를 이용할 때, 서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술자체를 유연하게 사용할 수 있도록 하는것을 말한다

PSA가 필요한 이유
PSA가 필요한 주된 이유는 어떤 서비스를 이용하기 위한 접근 방식을 일관된 방식으로 유지함으로써 애플리케이션에서 사용되는 기술이 변경될 지라도 최소한의 변경만을 가지고 변경된 요구사항을 반영하기 위함이다
즉, PSA를 통해 애플리케이션의 요구사항 변경에 유연하게 대처가 가능하다

0개의 댓글

관련 채용 정보