organize/스프링

프레임워크, Spring과 Spring Boot

001cloudid 2024. 10. 4. 15:44
728x90

프레임워크

 "프레임워크가 무엇인가요?"라고 물어본다면 "애플리케이션을 만드는 데 기본적인 골격을 제공하는 소프트웨어"라고 대답할 것 같다. 정보처리기사에서 프레임워크라는 용어가 나오기 때문에 이렇게 외운 적 있다. 뭔가 부족한 답변인 것도 안다. 그렇다면 프레임워크란 무엇인지에 대해 정리해 보도록 하겠다.

 

 프레임워크는 소프트웨어 개발을 위한 일종의 틀이나 구조로, 특정한 문제를 해결하기 위해 미리 설계된 클래스와 라이브러리의 집합이다. 개발자는 이 틀을 기반으로 애플리케이션을 개발하면서 일관성과 생산성을 높일 수 있다.

 프레임워크의 특징으로는 재사용성, 구조 제공, 기능의 확장성이 있다.

  • 재사용성 : 이미 정의된 코드를 재사용하여 개발 시간을 단축
  • 구조 제공 : 일관된 코드 작성을 위해 규칙과 구조를 제공
  • 기능의 확장성 : 필요에 따라 기능을 추가, 수정 가능

 

Spring과 SpringBoot

자바 프레임워크의 종류

스프링 프레임워크, 스프링 부트, 자바 서버 페이스스(JavaServer Faces, JSF), 하이버네이트, 스트럿츠 등 다양하게 존재한다.

 

 국내에서 가장 많이 사용되는 것이 스프링과 스프링 부트가 아닐까 싶다. 취업 현황을 보더라도 스프링과 스프링 부트를 사용할 수 있는 개발자를 많이 뽑는 것으로 봐서는... 그렇다면 스프링과 스프링 부트는 무엇이며 둘의 공통점과 차이점은 무엇일까? 에 대해 알아보고자 한다. 그 전에 내가 생각하는 차이점은(실제로 스프링 부트를 사용한 경험은 없어 그 차이를 잘 모르지만) '스프링을 경량화한 것이 스프링 부트'라고 대답할 것이다. 자세히 알아보자

 

공통점

  1. 자바 기반
  2. 의존성 주입 : 의존성 주입을 활용하여 코드의 모듈성을 높이고, 테스트 용이성을 향상
  3. 모듈화 : 스프링의 다양한 모듈(Spring MVC, Spring Data(사용해본적없음))을 사용할 수 있어 다양한 기능을 지원
  4. POJO 중심 : Plain Old Java Object를 활용하여 비즈니스 로직을 구현

차이점(스프링 - 초록색, 스프링 부트 - 파란색)

  1. 설정 방식
    -XML이나 Java Configuration 클래스를 사용해 설정
    -자동 설정 기능을 통해 대부분의 설정을 자동으로 처리
  2. 기본 제공 기능
    -기본적으로 핵심 기능만 제공되며, 필요한 라이브러리나 설정을 직접 추가
    -내장 웹 서버를 포함하고 있어, 별도의 서버 설정 없이도 애플리케이션을 바로 실행 가능
  3. 프로젝트 시작
    -새로운 프로젝트를 시작할 때 필요한 설정이 많고, 초기 설정이 복잡
    -Spring Initializr와 같은 도구를 통해 간편하게 시작할 수 있고, 기본적인 프로젝트 구조가 자동으로 생성
  4. 의존성 관리
    -의존성 관리를 수동으로 해야 할 경우가 많음
    -스타터 의존성을 제공하여 필요한 라이브러리를 쉽게 관리
  5. 배포
    -WAR 파일로 배포하거나 외부 서버에 배포
    -JAR 파일로 패키징하여 독립 실행형 애플리케이션으로 쉽게 배포

요약하자면 "스프링 부트는 스프링의 장점을 더욱 쉽게 활용할 수 있게 해준다."라고 할 수 있다.

 

참고교재 : 정보처리기사 실기_시나공, 코드로 배우는 스프링 웹 프로젝트_남가람북스

728x90

'organize > 스프링' 카테고리의 다른 글

스프링 웹 프로젝트 1  (3) 2024.12.27
웹 시큐리티  (0) 2024.10.05
redirect, redirect와 RequestDispatcher  (0) 2024.10.03
페이지 처리  (0) 2024.10.02
스프링 프로젝트 정리 1  (0) 2024.09.18