

시작 하기에 앞서 Spring 입문을 위한 사전지식
- Java - 기본지식
- Html,Css,Js - 웹 문서지식
- Servlet,Jsp - 서버지식
- DB - 기본 데이터베이스
스프링 에 대한 사전적의미는 여러가지 있지만 한가지 명확하게 표현할수 있다면
"스프링은 웹사이트 개발을 위한 백엔드 프레임워크이다."
기존에 있던 프레임워크 와의 호환성도 높아 혼용하여 사용이 가능하고 다른 프레임워크에 비해 경량 이지만 강력한 성능으로 기업들의 니즈를 충족시켰다.
백엔드
백엔드 (Back-end): 웹 개발 프로세스를 프론트(Front-end),와 백엔드(Back-end)로 구분하는 경우가많다. 일반적으로 서버측에서 동작하는 프로그램을 다루는 프로세스적 요소를 백엔드 라고 한다.
프레임워크
프레임워크 (Framework):프로그램 설계에 있어 미리 구축되어있는 뼈대 라고 이해할수있는 부분이다 백엔드 프로세스를 구축하는데 복잡한 초기 설정 구축을 위해 스프링이라는 기본 뼈대를 제공하여 상위 퀄리티의 프로그램을 비교적 빠른시간에 개발할 수 있게된다.
의존성 주입
(DI: Dependency Injection): 프로그램 구성요소간의 의존 구조를 외부 파일에서 정의해준다. 각 요소 또는 서비스 사이에 의존성이 존재하는 경우 스프링에서 의존 관계를 정의, 외부파일을 통해 설정해준다. 설정파일을 분리하기 때문에 유지보수가 쉬워지며 각 구성요소간 결합성이 낮아지게 된다.(각 개체가 독립적으로 존재, 연결 자체는 스프링에서 지원한다
POJO 방식
Plain Old Java Object 의 약자, 말그대로 기존의 일반적인 java 코드를 이용해서 프로그래밍이 가능하다. 기존의 프레임워크(Java EE)의 방식에선 미리 설계되어있는 인터페이스나 클래스를 상속받아 무거운 객체들을 만들어야만 했는데, 그럴 필요가 없이 일반적인 java코드로만으로도 객체를 구성할 수 있게된다. 따라서 더 유연한 프로그래밍이 가능해지며 가볍고 생산성이 높아진다.
관점지향 프로그래밍(AOP)
관점에 따라 각각의 기능을 분리하여 프로그래밍 하는것이 가능해진다. 비즈니스 로직, {로깅, 트랜잭션, 보안} 등을 다른 모듈로 분리하여 따로 관리할 수 있다. 스프링에서는 서로다른 관점을 조합하는 기능또한 제공한다. 이러한 방식은 유지보수가 수월하며 각각의 관점에 최적화된 프로그래밍이 가능해진다는 장점이 있다.
제어의 반전 (IoC: Inversion of Control)
기존의 프로그래밍 방식에선 라이브러리를 호출하여 코드에 포함시켜 프로그램을 실행시켰다. 하지만 스프링에서는 지원하는 형식에 맞게 프로그램을 작성하면 프레임워크에서 사용자가 작성한 코드를 호출해서 사용하는 방식으로 제어의 권한이 역전된 모습을 보여준다.

Spring 을 더쉽게 이용하기 위한 도구 이다 스프링을 이용하여 개발할 때, 이것저것 세팅을 해야될요소가 많은데. 여러가지를 세팅해야하는 진입 장벽을 줄여주는 존재로 간단한 방법을 통해 초기 설정값을 잡아준다.
김영한 강사님의 Spring 입문 강의를 토대로 복습하기위한 글 이며 벨로그 글
강의를 들은 다른분들의 학습내용이 포함되어 있습니다
해당하는 모든 출처는 링크와 강의에 있습니다.