스프링 설명
스프링 프레임워크란?
- 자바가 언어라면, 스프링은 책을 쓰기 위한 틀
- 코틀린, 그루비같은 다른 언어로도 사용할 수 있다.
- 깃허브에서 스프링프레임워크 소스를 참고하며 공부해보는 것도 추천!
- 15년이상 된 성숙된 기술. 다양한 기능이 존재하고, 이걸 적재적소에 쓰는 것이 중요해졌다.
스프링 부트란?
- 사람들이 자주 쓰는 기능이 존재한다. 이걸 자동으로 설정해준 프레임워크!
- 톰캣이 내장되어있음
스프링 핵심기술 프롤로그
DI와 IoC
- 스프링의 근간, 내가 만든 클래스를 스프링이 직접 관리하여 어플리케이션을 동작하게 한다
AOP
- 공통적인 코드를 프레임워크 레벨에서 지원해주는 방법
Validation, Data binding
- 검증 그리고 외부에서 받은 데이터를 담아내는 방법
Resource
- 스프링 내부에서 설정이 들어있는 파일들에 접근하는 동작 원리
SpEL
- 짧은 표현식을 통해 필요한 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어
Null-Safety
스프링의 디자인 철학
- 모든 기능에서 다양한 가능성(다양한 모듈)을 사용 가능, 심지어 외부 모듈을 활용 가능
- 너무 높은 자유도. 어떤 점에서는 스프링을 어렵게 하는 요소
- 유연하게 계속 추가 개발을 하고 있는 프레임워크
- 이전 버전과의 강력한 호환성
- 너무 많은 레거시(옛날 기능) 때문에 코드의 복잡성이 높아지긴 함
- API 디자인을 섬세하게 노력한다
- 높은 코드 품질을 유지하려 함
- 스프링 프로젝트 github은 아주 좋은 참고 소스이자 PR과 이슈 관리도 좋은 프로세스 참고용
→ 한마디로 높은 자유도를 주고 계속 발전하는 고품질의 다양성이 있는 프로젝트, 그런데 너무 자유로워서 때론 어렵다.