본문 바로가기

EFUB

[세션] 온보딩_백엔드

Spring이란?

 

 

java 웹 어플리케이션을 제작하기 위해 상용되는 엔터프라이즈급 자바 기반 프레임 워크이다.

JAVA 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임 워크

 

[ 개발 환경 ]

  1. intelliJ IDEA → 자동 완성 기능 제공
  2. 이클립스

프레임워크란?

어플리케이션을 구축할 때 자주 쓰일 만한 기능들을 한데 모아 놓은 유틸(클래스)들의 모음(집합)

화면 구현, DB연동, 개발 환경 설정 등을 돕는다.

 

 

Spring 특징

 

1)객체 지향성

자바의 특징이라고 할 수 있다.

 

2)POJO

spring framework 만의 특징

  • Plain Old Java Object = 특정 기술에 종속되어 동작하는 것이 아닌 순수한 자바 객체를 의미
  • 오래된 방식의 순수한 자바 객체
  • 장점 = spring이후에는 다른 기술과 환경에 지나치게 의존하여 객체지향의 장점을 잃어버리지 않아도 된다. → 유연한 코드 작성이 가능하다. 객체 지향성 정신에 부합
  • 예시 ) getter , setter 를 가진 단순한 자바 오브젝트는 의존성이 없고 테스트도 용이하며 수정이 편리하므로 pojo로 볼 수 있다.

(1) AOP

    Aspect Oriented Programming (관점 지향 프로그래밍)

  • 코드를 핵심적, 부가적 관점으로 분류하여 “관점을 기준”으로 각각 모듈화한다.
  • 장점 = 핵심 로직에만 집중할 수 있다.

(2) IoC와 DI

a. inversion of Control(제어의 역전)

= 매소드나 객체의 호출 작업을 개발자가 아닌 “프레임워크”가 담당하는 것이다.

 

[ 기존 ]

    (1) 객체 생성

    (2) 의존성 객체 생성한다(클래스 내부에서 생성) → 모든 권한은 유저에게 있다.

    (3) 의존성 객체 메소드 호출

 

[Spring ]

    (1) 객체 생성

    (2) 객체 주입한다(스프링이 만들어 놓은 객체) , 자신의 모든 권한을 스프링에게 맡긴다. 

    (3) 의존성 객체 메소드 호출

 

b. Dependency Injection(의존성 주입)

    = 객체를 직접 생성하는 것이 아니라 “외부에서” 생성한 후 주입시켜주는 방식이다.

  • 방법 = 외부(IOC컨테이너)에서 생성된 B, C객체를 조립(주입)시켜 setter 혹은 생성자를 통해 사용하는 방식
  • 장점 = 모듈 간의 결합도가 낮아지므로 쉽게 수정 가능하며 유연성이 높아진다.

3) PSA ( = portable service Abstraction)

       환경의 변화와 관계 없이 일관된 접근 환경을 제공하는 추상화 구조

       잘 만든 인터페이스

  • 대부분의 spring 라이브러리들은 POJO 원칙을 지키게끔 PSA 형식의 추상화가 되어 있다.
  • 장점 = 확장성이 좋고 특정 기술에 종속되어 있지 않음

'EFUB' 카테고리의 다른 글

[퍼비톡] Application Context  (0) 2023.09.20
[세션] 온보딩_프론트엔드  (0) 2022.03.26
[활동] OT  (0) 2022.03.18