프레임워크
"프레임워크가 무엇인가요?"라고 물어본다면 "애플리케이션을 만드는 데 기본적인 골격을 제공하는 소프트웨어"라고 대답할 것 같다. 정보처리기사에서 프레임워크라는 용어가 나오기 때문에 이렇게 외운 적 있다. 뭔가 부족한 답변인 것도 안다. 그렇다면 프레임워크란 무엇인지에 대해 정리해 보도록 하겠다.
프레임워크는 소프트웨어 개발을 위한 일종의 틀이나 구조로, 특정한 문제를 해결하기 위해 미리 설계된 클래스와 라이브러리의 집합이다. 개발자는 이 틀을 기반으로 애플리케이션을 개발하면서 일관성과 생산성을 높일 수 있다.
프레임워크의 특징으로는 재사용성, 구조 제공, 기능의 확장성이 있다.
- 재사용성 : 이미 정의된 코드를 재사용하여 개발 시간을 단축
- 구조 제공 : 일관된 코드 작성을 위해 규칙과 구조를 제공
- 기능의 확장성 : 필요에 따라 기능을 추가, 수정 가능
Spring과 SpringBoot
자바 프레임워크의 종류
스프링 프레임워크, 스프링 부트, 자바 서버 페이스스(JavaServer Faces, JSF), 하이버네이트, 스트럿츠 등 다양하게 존재한다.
국내에서 가장 많이 사용되는 것이 스프링과 스프링 부트가 아닐까 싶다. 취업 현황을 보더라도 스프링과 스프링 부트를 사용할 수 있는 개발자를 많이 뽑는 것으로 봐서는... 그렇다면 스프링과 스프링 부트는 무엇이며 둘의 공통점과 차이점은 무엇일까? 에 대해 알아보고자 한다. 그 전에 내가 생각하는 차이점은(실제로 스프링 부트를 사용한 경험은 없어 그 차이를 잘 모르지만) '스프링을 경량화한 것이 스프링 부트'라고 대답할 것이다. 자세히 알아보자
공통점
- 자바 기반
- 의존성 주입 : 의존성 주입을 활용하여 코드의 모듈성을 높이고, 테스트 용이성을 향상
- 모듈화 : 스프링의 다양한 모듈(Spring MVC, Spring Data(사용해본적없음))을 사용할 수 있어 다양한 기능을 지원
- POJO 중심 : Plain Old Java Object를 활용하여 비즈니스 로직을 구현
차이점(스프링 - 초록색, 스프링 부트 - 파란색)
- 설정 방식
-XML이나 Java Configuration 클래스를 사용해 설정
-자동 설정 기능을 통해 대부분의 설정을 자동으로 처리 - 기본 제공 기능
-기본적으로 핵심 기능만 제공되며, 필요한 라이브러리나 설정을 직접 추가
-내장 웹 서버를 포함하고 있어, 별도의 서버 설정 없이도 애플리케이션을 바로 실행 가능 - 프로젝트 시작
-새로운 프로젝트를 시작할 때 필요한 설정이 많고, 초기 설정이 복잡
-Spring Initializr와 같은 도구를 통해 간편하게 시작할 수 있고, 기본적인 프로젝트 구조가 자동으로 생성 - 의존성 관리
-의존성 관리를 수동으로 해야 할 경우가 많음
-스타터 의존성을 제공하여 필요한 라이브러리를 쉽게 관리 - 배포
-WAR 파일로 배포하거나 외부 서버에 배포
-JAR 파일로 패키징하여 독립 실행형 애플리케이션으로 쉽게 배포
요약하자면 "스프링 부트는 스프링의 장점을 더욱 쉽게 활용할 수 있게 해준다."라고 할 수 있다.
참고교재 : 정보처리기사 실기_시나공, 코드로 배우는 스프링 웹 프로젝트_남가람북스
'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 |