12. Spring, Spring Boot

강혜성·2024년 1월 30일
0

사이드 프로젝트

목록 보기
12/12

Spring

스프링이란 POJO(Plain Old Java Object)를 통해 자바 애플리케이션을 쉽게 만들 수 있도록 도와주는 프레임워크

Spring Framework is a Java platform that provides comprehensive infrastructure support for developing Java applications. Spring handles the infrastructure so you can focus on your application.

Spring Framework는 Java 애플리케이션 개발을 위한 포괄적인 인프라 지원을 제공하는 Java 플랫폼입니다. Spring은 인프라를 처리하므로 애플리케이션에 집중할 수 있습니다.

Spring enables you to build applications from “plain old Java objects” (POJOs) and to apply enterprise services non-invasively to POJOs. This capability applies to the Java SE programming model and to full and partial Java EE.

Spring을 사용하면 POJO(Plain Old Java Object)에서 애플리케이션을 구축하고 POJO에 엔터프라이즈 서비스를 비침투적으로 적용할 수 있습니다. 이 기능은 Java SE 프로그래밍 모델과 전체 및 부분 Java EE에 적용됩니다.

프레임워크

프레임워크란 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다.

프레임워크란 프로젝트에서 사용할 수 있는 뼈대가 되는 코드의 집합을 의미한다.

라이브러리

주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.

라이브러리란 혼자서 동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된 프로그램이다.

Spring 특징

POJO 프로그래밍 지향

POJO는 자바 언어 사양 외에 어떠한 제한에도 묶이지 않은 자바 오브젝트라 할 수 있다.
특정 자바 모델이나 기능, 프레임워크 등을 따르지 않은 자바 오브젝트를 지칭하는 말로 사용되었다.

IoC

Inverse Of Control, 제어의 역전이란 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 의미한다.

전통적인 프로그래밍에서는 프로그래머가 작성한 프로그램이 외부 라이브러리 코드를 호출하지만, IoC가 적용된 구조에서는 외부 라이브러리의 코드가(프레임워크) 프로그래머가 작성한 코드를 호출한다.

제어권이 프로그래머가 작성한 프로그램에서 프레임워크로 역전된다.

DI

Dipendency Injection, 의존성 주입이란 제어의 역전의 방법 중 하나로, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식을 의미한다.

AOP

Aspect of Programing, 관점 지향 프로그래밍으로 관점이란 어떤 기능을 구현할 때 핵심 기능, 부가 기능으로 구분해 각각을 하나의 관점으로 보는 것을 의미한다.

핵심 기능이 비즈니스 로직이라면 부가 기능은 로깅, 트랜잭션 등의 코드가 될 수 있다.

AOP 방식이 아닌경우 한 기능에 핵심 기능 + 부가기능으로 개발해야 한다. 개발해야하는 기능이 여러개라면 각 기능마다 부가기능을 개발해야한다. 부가 기능(로깅, 트랜잭션)등은 공통 코드가 많으므로 비효율적이다.

AOP 방식을 이용한다면 핵심 기능이 어떤 기능인지와 무고나하게 해당 기능이 수행되기 전, 후로 부가 기능을 수행할 수 있다. 여러 비즈니스 로직에서 반복되는 부가 기능을 하나의 공통 로직으로 처리하도록 모듈화 해 사용하는 방식을 AOP라 한다.

Spring Boot

스프링 프레임워크는 기존 개발 방식의 문제와 한계를 극복하기 위해 다양한 기능을 제공하지만 설정이 복잡하다. 스프링 부트는를 이용해 기존의 복잡한 설정을 간편하게 처리해주는 별도의 프레임워크이다.

스프링 부투는 내장 웹 서버가 있기 때문에 실행 시 바로 웹 서비스를 제공할 수 있다. 또한, 독립적으로 실행 가능한 Jar 파일로 프로젝트를 빌드할 수 있어 다양한 환경에서 배포할 수 있다.

0개의 댓글