KoreaIt Academy/Spring Boot

[Spring] Spring 프레임 워크란? 스프링의 장점과 특징

hongeeii 2021. 10. 7.
728x90
반응형

프레임워크란? 

뼈대나 근간을 이루는 코드들의 묶음.
개발자는 각 개개인의 능력차이가 큰 직종이고, 개발자 구성에 따라 프로젝트 결과 역시 큰 차이를 낳습니다.

이런 상황을 극복하기 위한 코드의 결과물이 바로 프레임워크입니다.
프로그램의 기본 흐름이나 구조를 정하고 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 됩니다.
 

프레임워크의 장점 

개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에, 실력이 부족한 개발자라 하더라도
반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능합니다.

회사 입장에서는 프레임워크를 사용하면 일정한 품질이 보장되는 결과물을 얻을 수 있고,

개발자 입장에서는 완성된 구조에 자신이 맡은 코드를 개발해서 넣기 때문에 개발 시간을 단축할 수 있습니다.
 

스프링 프레임워크란? 

경량 프레임 워크(light-weight).
예전 프레임워크는 다양한 경우를 처리할 수 있는 다양한 기능을 가지도록 만들다 보니
하나의 기능을 위해서 너무 많은 구조가 필요했습니다.
기술이 너무나 복잡하고 방대했기 때문에, 전체를 이해하고 개발하기에는 어려움이 많았습니다.
그래서 스프링 프레임워크가 등장했고, 특정 기능을 위주로 간단한 jar파일 등을 이용해서
모든 개발이 가능하도록 구성되어 있습니다.

스프링 프레임워크의 장점
- 복잡함에 반기를 들어서 만들어진 프레임워크
- 프로젝트 전체 구조를 설계할 때 유용한 프레임워크
- 다른 프레임워크들의 포용(여러 프레임워크를 혼용해서 사용가능)
- 개발 생산성과 개발도구의 지원

스프링 프레임워크의 특징
- POJO 기반의 구성
- 의존성 주입(DI)를 통한 객체 간의 관계 구성
- AOP(Aspect-Oriented-Programming) 지원
- 편리한 MVC 구조
- WAS의 종속적이지 않은 개발 환경
- 단위 테스트 JUnit지원

[POJO(Plain Old Java Object) 기반의 구성]
오래된 방식의 간단한 자바 객체라는 의미이며, Java 코드에서 일반적으로
객체를 구성하는 방식을 스프링 프레임워크에서 그대로 사용할 수 있다는 말입니다.

[단위 테스트]
전체 Application을 실행하지 않아도 기능별 단위 테스트가 용이하기 때문에

버그를 줄이고 개발 시간을 단축할 수 있습니다.

IntelliJ에서 test폴더에 @SpringBootTest어노테이션과 @Test어노테이션을 붙여서 단위테스트를 진행할 수 있습니다.


**스프링 부트
스프링 프레임워크를 사용함에 있어서 초기 설정 및 필요한 라이브러리에 대한 설정의 어려움이 많으며,
시간이 너무 많이 걸리기 때문에 자동설정(AutoConfiguration)과 개발에 필요한 모든 것을 관리해주는
스프링 부트를 선호합니다.

각 코어 및 라이브러리의 버전들도 맞추어 줘야하지만 스프링 부트를 사용하면 이러한 복잡성을 해결하기에도 좋습니다.

728x90
반응형

추천 글