본문 바로가기

개발

Spring & Spring Boot에 대한 이해

반응형

스프링(Spring)이란?

  • 스프링은 Java 기반의 엔터프라이즈 애플리케이션 개발을 위한 오픈소스 프레임워크입니다. 이는 특히 IoC(Inversion of Control, 제어의 역전)DI(Dependency Injection, 의존성 주입) 같은 개념을 통해 복잡한 환경에서 개발자가 비즈니스 로직에 더 집중할 수 있도록 설계되었습니다.

Java 개발을 쉽게 하는 방법

  • 스프링은 애노테이션 기반 구성다양한 스타터 키트를 제공하여, 반복적이고 복잡한 코드 작성을 줄여줍니다. 이를 통해 개발자는 기업이 제공하는 서비스에 필요한 핵심 비지니스 로직에 더 집중할 수 있게 됩니다.

스프링 & 스프링 부트에서의 오픈소스

  • 스프링은 오픈소스 프레임워크로서, 누구나 자유롭게 사용, 수정 및 배포할 수 있습니다. 이는 다양한 사용자와 개발자의 참여를 통해 지속적으로 개선되며, 스프링 소스라는 기업에서 관리되어 안정성도 보장됩니다.

스프링의 경량급 의미

  • 스프링은 수십 개의 모듈과 방대한 코드로 구성되어 있음에도 불구하고, 경량급으로 분류됩니다. 이는 EJB와 같은 이전 기술에 비해 상대적으로 개발자가 작성해야 할 코드가 간결하고 단순하기 때문입니다.

프레임워크란?

  • 프레임워크는 특정 목적을 달성하기 위해 미리 준비된 코드의 뼈대입니다. 애플리케이션 프레임워크는 애플리케이션 개발에 필요한 다양한 기능과 코드의 구조를 제공합니다.

스프링의 주요 요소들

POJO 프로그래밍 지향

  • POJO(Plain Old Java Object)는 순수한 자바만을 사용하여 만든 객체를 의미합니다. 이는 특정 기술이나 환경에 종속되지 않아 변화와 확장에 유연하게 대응할 수 있으며, 객체 지향 설계를 자유롭게 적용할 수 있습니다.

필요한 기술

  • IoC/DI: 객체 생성과 관리를 프레임워크가 담당하여 개발자의 부담을 줄입니다.
  • AOP(Aspect Oriented Programming): 애플리케이션의 공통 관심사항을 핵심 로직에서 분리하여 관리합니다.
  • PSA(Portable Service Abstraction): 다양한 서비스를 일관된 방식으로 추상화하여 사용합니다.

스프링 부트(Spring Boot)

  • 스프링 부트는 스프링 기반 애플리케이션의 구성을 간소화하는 도구입니다. 자체적으로 내장된
  • 웹 서버를 통해 독립적으로 실행 가능한 애플리케이션을 빠르게 개발하고 배포할 수 있습니다.

실행 조건

  • JDK 설치, 환경 변수 설정 및 IntelliJ와 같은 IDE의 설치가 필요합니다. 스프링 부트의 버전 관리와 Maven/Gradle 같은 빌드 도구의 사용도 중요합니다.

버전 관리

  • SNAPSHOT: 개발 중인 버전.
  • Milestone: 개발은 완료되었으나 기능 개선 중인 버전.
  • Release Candidate: 기능 개선 및 버그 수정이 완료된 상태로 최종 릴리즈 전 버전.
  • Artifact: 빌드 결과물의 이름.
  • Packaging: 프로젝트 압축 방법.

스프링 부트를 통해 생성한 프로젝트의 내장 WAS를 실행하는 것은 DemoApplication 클래스의 main() 메서드를 통해 이루어집니다.

반응형