본문 바로가기
웹 개발/웹사이트

JAVA 프레임워크 | SPRING 프레임워크와 스프링 부트 소개

by KISCH 2025. 2. 7.
반응형

스프링은 자바(JAVA) 기반의 웹 애플리케이션 프레임워크입니다. 스프링 프레임워크와 스프링 부트 모듈에 대해 쉽게 설명드리겠습니다.

 

 

목차

     

     

    「 SPRING 」 프레임워크

    자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크입니다. 자바 엔터프라이즈 애플리케이션 개발을 단순화하기 위해 스프링 프레임워크가 시작되었고, 동적인 웹 사이트 애플리케이션을 개발하기 위한 여러 서비스를 제공하고 있습니다.

     

    특징

    1. POJO (Plain Old Java Object) - 별도의 프레임워크가 필요하지 않고, JAVA EE의 EJB 사용할 때에 비해 특정 인터페이스를 직접 구현하거나 상속받을 필요가 없습니다. 기존 라이브러리를 지원하기 좋고 객체가 가볍습니다.

    JAVA EE 
    자바를 이용한 서버측 개발을 위한 플랫폼
    EJB (Enterprise Java Been)
    자바 기반의 Enterprise 애플리케이션 개발을 위한 서버 측 컴포넌트 모델로 비즈니스 로직을 처리 

     

    2. 관점 지향 객체 프로그래밍 - 로깅, 트랜잭션, 보안 등 여러가지 모듈에서 공통적으로 사용하는 기능을 분리하여 관리할 수 있습니다. 

    3. 의존성 주입 - 프로그래밍 구성 요소 간의 의존 관계과 소스 코드 내부가 아닌 외부에서 설정을 통해 정의

    4. 제어 역전 - 제어권이 프레임워크에게 있어 필요에 따라 외부 라이브러리 코드가 개발자의 코드를 호출합니다.

    5. Bean 생명 주기 관리 - Bean이라는 이름으로 프레임워크에서 사용되는 Java 객체의 생성, 소멸을 직접 관리합니다.

     

    모듈 (Module) 6가지

      Core  - 제어 역전과 의존성 주입 기능을 제공합니다.

    • '제어 역전'은 프로세스의 흐름이 개발자가 아닌 프레임워크에 의해 결정되고 정한 틀에 따라 적절한 코드를 작성해 넣기만 하면 됩니다.
    • '의존성 주입'은 클래스 A와 B가 있다고 가정할 때 파라미터값으로 전달받은 B객체를 A클래스 메소드내에서 비즈니스 로직에 사용하는 것을 말합니다. A와 B의 '의존' 관계가 외부에서의 '주입'을 통해 이루어진 것을 말합니다.

      DAO  - 자바의 데이터베이스 커넥터인 JDBC 추상 계층을 제공합니다. 

      ORM  - JPA, Hibernate와 같은 ORM이나 MyBatis 같은 데이터베이스 API 등과 통합할 수 있는 기능을 제공합니다. 

      AOP  - 관점 지향 프로그래밍. 공통 로직을 한군데에서 관리해서 공동으로 사용하는 개념

      Web  - Spring Web MVC, Struts, WebWork 등 웹 애플리케이션 구현에 도움되는 기능을 제공합니다.

      JEE  - EJB, JMX 등의 엔터프라이즈 J2EE 스펙에 관한 기능을 제공합니다.

     

     

     

     

    「 SPRING BOOT 」 모듈

    스프링 부트는 스프링을 기반으로 애플리케이션을 쉽게 생성하고 배포하기 위해 개발된 모듈입니다. 의존성 관리와 라이브러리 설정을 해주고, 웹 서버가 하나의 파일에 내장된 상태로 빌드되기 때문에 배포가 매우 간편해집니다.

     

    자바 엔터프라이즈 애플리케이션 개발을 단순화하기 위해 스프링 프레임워크가 시작되었고, 스프링 프레임워크를 사용하는 일이 많아지자 스프링 애플리케이션 개발 프로세스를 한층 더 단순화시킨 것이 스프링 부트입니다.

     

    5가지 핵심 기능

    1) 내장 서버 (Tomcat) - 톰캣이라고 하는 내장 서버가 있어 별도의 서버 설치가 필요가 없어서 쉽게 웹 애플리케이션을 개발하고 배포할 수 있습니다.

    2) 자동 라이브러리 관리 - 수많은 라이브러리를 베스트 프랙티스 기반으로 자동으로 선택하고 관리합니다.

    3) 자동 구성 - 복잡한 스프링 설정을 자동화하기 때문에 쉽고 빠르게 애플리케이션을 개발할 수 있습니다.

    4) 외부 설정 - 애플리케이션을 서로 다른 환경에서 사용할 때 필요한 외부 설정값을 편리하게 조회할 수 있습니다.

    5) 모니터링과 관리 기능 - 애플리케이션의 수많은 지표를 자동으로 수집, 모니터링, 관리할 수 있는 기능을 제공합니다.

     



    관련포스트
    웹프레임워크 | Nuxt.js 프레임워크 개념과 구조
    웹프레임워크 | Vue.js 프론트엔트 프레임워크 소개
    웹프레임워크 | PHP 프레임워크 소개와 폴더 구조
    개발환경 | 웹프레임워크의 종류

     

    스프링부트

     

    반응형

    댓글