Spring

이경준·2021년 9월 30일

면접

목록 보기
3/4

프레임워크 : 개발할 때 설계 기본이 되는 뼈대나 구조 / 환경 (문제 영역을 해결한 재사용, 확장 가능한 라이브러리.)

사용하는 이유

  • 비기능적인 요소들을 초기 개발 단계마다 구현해야 하는 불합리함을 극복해준다.
  • 기능적인 요구사항에 집중할 수 있도록 해준다.
  • 디자인 패턴과 마찬가지로 반복적으로 발견되는 문제를 해결하기 위한 특화된 solution을 제공한다.

Spring Framework : Java 엔터프라이즈 개발을 편하게 해주는, 오픈소스 경량급 애플리케이션 프레임워크

  • 애플리케이션 프레임워크 : 특정 계층이나 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크
  • 경량급 프레임워크 : 단순한 웹컨테이너에서도 엔터프라이즈 개발의 고급기술을 대부분 사용 가능
  • 엔터프라이즈 개발 용이 : 개발자가 복잡하고 실수하기 쉬운 Low Level에 많이 신경 쓰지 않으면서 Business Logic 개발에 전념할 수 있게 함
  • 오픈소스 : OpenSource의 장점을 충분히 취하면서 동시에 단점과 한계를 잘 극복함

<특징>
1. 컨테이너 역할

  1. IoC (Inversion of Control - 제어의 역전)
  • 객체의 생성, 생명주기의 관리까지, 모든 객체에 대한 제어권이 바뀌었다는 것을 의미
  • 객체의 생성을 책임지고, 의존성을 관리
  • 의존성을 역전시켜 객체 간의 결합도를 줄이고, 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다.
  1. DI (Dependency Injection - 제어의 역전) 지원
  • 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.
  • DI를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다.
  1. AOP (Aspect Oriented Programming - 관점 지향 프로그래밍) 지원
  • 공통적으로 필요한 모듈들을 실제 핵심 모듈에서 분리해서 관리
  1. POJO (Plan Old Java Object) 지원
  • 기본적인 기능만 가진 자바 객체
  • 객체지향 원리에 충실한다.

profile
The Show Must Go On

0개의 댓글