- 대상 : java와 db를 써본 사람(비전공자면 더 환영)
- 목적 : Spring에 대한 기본개념, 궁금한 점 간단 정리
1. Spring이란?
- 쉽게 말하자면 java framework
- 개발자가 엔터프라이즈 레벨의 비즈니스 로직 개발에 집중하도록 기능 제공 : https://spring.io/projects/spring-framework
- 종속성 주입(Dependency Injection) : 객체를 주입 받아 사용! new 연산자로 매번 새로운 객체를 만드는 게 아니라 Spring에서 객체를 만들어 관리하고, 해당 객체를 사용하는 코드들은 Spring으로부터 주입받아 공통으로 사용
- 데이터 바인딩 : db의 테이블을 entity로 취급하여 java에서 데이터를 다루기 쉽게 함
- 그 외에도 다양한 특징이 있으나 써보면서 가장 크게 느꼈던 특징만 기록
2. SpringBoot와는 무슨 차이?
- SpringBoot는 Spring을 더 빠르게 사용할 수 있게 만들어놓은 것
- 세밀한 조정을 직접 하고 싶으면 Spring을, 어느정도 자동화 된 키트를 사용하고 싶다면 SpringBoot를 선택하면 된다
- 보다 자세한 설명은 inflearn 고승조님의 spring 과 springBoot의 차이점 참고
3. 왜 사용하는가?
사용하기 쉽다
- 복잡한 초기설정 필요 x --> 개발자가 사용하기 쉬움
- 문서 및 튜토리얼 잘 되어있음
고도로 모듈화 되어있다
- 전체 스프링 프레임워크를 사용해도 되고, 필요한 모듈만 사용해도 됨
테스트하기 쉽다
- 스프링 애플리케이션은 대부분 POJO로 구성 --> 단위 테스트 용이
- 단위 테스트가 복잡해지는 MVC의 경우는 목(Mock) 객체를 제공
실제로 Spring을 사용해봤을 때, 처음에는 그것조차 어렵다고 느꼈지만
지금은 DB 연결 및 DB에서 불러온 데이터를 사용함에 있어서 정말 편리하다고 느끼고 있다.
Annotation을 통해 객체 특성을 부여 및 Spring에 관리를 자동화 하고 쓴다는 것도 굉장한 이점으로 느껴진다. 이외에도 굉장한 장점들이 많을텐데 블로그로 정리하면서 더 잘쓰는 방법들을 배워나가야지!
이렇게 유용한 정보를 공유해주셔서 감사합니다.