[Spring] 스프링 이란?

김엄지·2024년 2월 19일
0

Spring

목록 보기
1/21

Spring 이란?

java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 프레임워크이다. Java Virtual Machine, JVM 에서 작동한다.

개발 초기에 기본 설정, 적용 기술만 잘 선택한다면, 기술보단 비즈니스 로직 자체에 더 집중하여 구현할 수 있다.

스프링이 나온 이유는?

스프링 등장 이전 EJB 기술이 주로 사용되었는데, 더 나아가 불필요한 코드들을 걷어내고 복잡성을 줄이기 위해 탄생한 것이 스프링이다.

스프링 프레임워크의 특징

  • POJO(Plain Old Java Object)방식
    순수 Java만을 통해서 생성한 객체. 별도의 프레임워크 없이 Java EE를 사용할 때에 비해 특정 인터페이스를 직접 구현하거나 상속받을 필요가 없어 기존 라이브러리를 지원하기가 용이하고, 객체가 가볍다.
  • 관점 지향 프로그래밍(Aspect Oriented Programming, AOP)
    로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리할 수 있다.
    추상/부모/클래스나 인터페이스로 관리된다는 게 아니라, 모듈을 관리해주는 모듈을 상하/인터페이스 관계없이 따로 마련한다는 개념에 가깝다.
  • 의존성 주입(Dependency Injectoin, DI)
    프로그래밍에서 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되는 방식이다. 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈간의 결합도도 낮출 수 있다. 계층, 서비스 간에 의존성이 존재하는 경우 스프링 프레임워크가 서로 연결시켜준다.
  • 제어 역전(Inversion of Control, IoC)
    외부 라이브러리 코드가 개발자의 코드를 호출하게 된다. 즉, 제어권이 프레임워크에게 있어 필요에 따라 스프링 프레임워크가 사용자의 코드를 호출한다.
  • 생명주기 관리
    스프링 프레임워크는 Java 객체의 생성, 소멸을 직접 관리하며 필요한 객체만 사용할 수 있다.

모듈

스프링 부트란?

스프링으로 개발 할 때에 설정해주어야 하는 복잡한 것들을 기존의 복잡한 설정을 대신 해주는 스프링 부트를 사용하면 간략하게 줄일 수 있다.

즉, 스프링 부트는 스프링으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크이다.


프레임워크란

어떠한 것(목적)을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조로, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.

예를 들어, 웹 프레임워크는 '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구한하기 위해선 페이지 구현, DB관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야 할 것이고, 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 프레임워크다.

  • 어떤 목적에 필요한 기능들, 그 기능을 보유한 것(코드의 뼈대를 미리 만들어둔 것)이 프레임워크.

참조 자료
https://namu.wiki/w/Spring(%ED%94%84%EB%A0%88%EC%9E%84 스프링 정의
https://www.codestates.com/blog/content/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 스프링과 스프링부트 사용 이유, 생성 방법

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글