Spring Framework 개념

김예인·2023년 5월 30일

백엔드 공부일지

목록 보기
32/43
post-thumbnail

Framework

기본적으로 프로그래밍을 하기 위한 어떠한 틀이나 구조
재사용 가능한 기능과 라이브러리의 집합으로 구성되어 개발자가 응용 소프트웨어를 더 쉽게 개발하고 구축할 수 있도록 지원하는 도구나 환경

장점

  1. 다양한 기능들을 라이브러리 형태로 제공함으로써 개발자가 애플리케이션의 핵심 로직을 개발하는 것에 집중하여 효율적으로 코드를 작성
  2. 정해진 규약이 있어 유지보수 및 재사용, 기능 확장 등 애플리케이션의 효율적 관리 가능

단점

  1. 사용하고자 하는 Framework에 대한 학습이 필요
  2. 정해진 규약이 있어 자유롭고 유연한 개발이 어렵다

Library

애플리케이션을 개발하는 데 필요한 기능을 미리 구현해 놓은 일련의 데이터 및 프로그래밍 코드
다양한 기능을 제공하는 부품


Framework VS Library

애플리케이션에 대한 제어권의 차이

한번 정해진 Framework를 교체하는 일은 어렵지만,
Library는 쉽게 교체가 가능하며 필요한 Library들을 선택적으로 사용할 수 있다!

💻 예시 코드

@SpringBootApplication
@RestController
@RequestMapping(path = "/v1/message")
public class SampleApplication {
    @GetMapping
    public String getMessage() {  // (2)
        String message = "hello world";
        return StringUtils.upperCase(message); // (1)
    }

    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }
}

(1) StringUtils.upperCase(message)

: 개발자가 짜 놓은 코드 내에서 필요한 기능이 있으면 해당 라이브러리를 호출해서 사용하는 Library

(2) getMessage() 메서드 , SpringApplication.run() 메서드

: 메서드 내에 개발자가 코드를 작성해 두면 Spring Framework에서 개발자가 작성한 코드를 사용해서 애플리케이션의 흐름을 만들어내는 Framework


Spring Framework

  1. POJO(Plan Old Java Object) 기반의 구성
  2. DI(Dependency Injection) 지원
  3. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원
  4. Java 언어를 사용함으로써 얻는 장점
    • 정적 타입 언어로서 변수의 타입, 메서드의 입력과 출력이 어떤 타입을 가져야 하는지를 강제하여 코드 수정, 보완 용이, 런타임오류 사전 방지 가능

Java 언어를 사용하는 Framework 가 Spring 만 있는건 아니지만, 기업의 입장에서 기업용 엔터프라이즈 시스템 개발에 있어 개발 생산성을 향상하고 애플리케이션의 유지 보수를 용이하게 하는 Framework의 기본 목적 그 이상을 달성할 수 있게 해 인기가 많다!


Spring Framework 왜 배워?

JSP (Java Server Page) 를 이용한 애플리케이션

클라이언트 측 html/Javascript 코드와 서버 측 Java 코드가 한 곳에 섞여 있는 방식
가독성과 유지 보수가 최악

서블릿(Servlet)을 이용한 애플리케이션

서블릿은 클라이언트 웹 요청 처리에 특화된 Java 클래스의 일종으로
서블릿 방식은 클라이언트 측 코드에서 분리되어 별도의 Java 클래스로 관리하는 것을 의미

그러나, 여전히 직접 코드로 작성하는 부분이 많아 가독성이 떨어짐

++ Java Servlet 은 Spring MVC 같은 Java 기반의 웹 애플리케이션 내부에서 여전히 사용
++ 서블릿 컨테이너(Servlet Container)
++ 아파치 톰캣(Apache Tomcat) : 서블릿 컨테이너의 한 종류로써 Spring MVC 기반의 웹 애플리케이션 역시 기본적으로 아파치 톰캣에서 실행

Spring MVC를 이용한 애플리케이션

특정 기능들을 Spring에서 알아서 처리하여 코드가 간결

그러나, 애플리케이션의 기본 구조를 잡는 설정 파일 작성 작업이 여전히 불편하다는 단점이 존재

Spring Boot을 이용한 애플리케이션

그 많던 설정 파일을 Spring이 대신 처리를 해주기 때문에 개발자는 애플리케이션의 핵심 비즈니스 로직에만 집중

profile
백엔드 개발자 김예인입니다.

0개의 댓글