1. Version
💬
2. Spring 이란
💬 spring 개념
- 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임 워크이다.
- 자바 객체와 라이브러리들을 관리해주며, 톰캣과 같은 WAS가 내장되어 있어 웹 어플리케이션을 구동할 수 있다.
💬 spring 특징
-
DI (의존성 주입)
- 컨테이너에서 관리할 객체를 지정해주고, 코드내에서 객체를 받아 사용하는 방식이다.
-
IOC (제어의 역전)
- 객체의 생성부터 소멸까지 객체의 모든 생명주기를 개발자가 아닌 스프링 프레임워크(IoC 컨테이너)가 주체가 되어 담당한다.
new
키워드를 사용하지 않아도 스프링에서 객체를 생성할 수 있도록 해준다.
3. Spring Boot 란
💬 spring boot 개념
- 스프링을 더 쉽게 이용하기 위해 커맨드 도구를 제공하고 톰캣이나 제티 같은
내장 서버
를 통해 복잡한 설정과 실행을 간소화 한 것이다.
💬 spring boot 특징
- 라이브러리 관리 자동화
Starter
라는 것을 이용해 특정 기능에 필요한 라이브러리 의존성을 더욱 간단히 처리
할 수 있다.
- 설정의 자동화
- 프로젝트에 추가된 라이브러리를 기반으로 실행에
필요한 환경을 자동으로 설정
한다.
- 개발에 필요한 라이브러리들을 추가하면 알아서 인지해 관련된 스프링 설정을 자동으로 처리해주기 때문에 따로 복잡한 설정을 하지 않고도 개발이 가능하다.
- 라이브러리 버전 자동 관리
- 스프링 부트 버전에 해당하는 스프링 라이브러리뿐만 아니라 서드 파티 라이브러리들도 호환 버전으로 다운로드 해준다.
- 테스트 환경과 내장 Tomcat
- Junit와 같은 테스트 관련 라이브러리들이 기본적으로 포함되어 있어
단위 테스트가 용이
하다.
- Tomcat 서버를 내장하고 있어
main()
메소드를 가진 calss를 실행하는 방식으로 서버를 구동하기 때문에 실행결과를 빠르게 확인할 수 있다.
- 독립적으로 실행 가능한 JAR
- 독립적으로 실행 가능한 애플리케이션을 빠르게 개발하는 것을 목표로 하기 때문에 웹 애플리케이션도 WAR가 아닌
JAR파일로 패키징 하여 사용
할 수 있다.
4. Spring Boot 구조
💬 spring boot 구조 그림
💬 Controller
- 웹 브라우저의
요청을 전담하여 처리
한다.
- Controller가 Service를 호출한다.
💬 Service
비지니스 로직을 수행
한다.
- DB에 접근하는 DAO를 이용해서 결과값을 받아 온다.
💬 DAO
- DB에 접속하여 비즈니스 로직 실행에
필요한 쿼리를 호출
한다.
💬 DB
💬 DTO
- Data Transfer Object의 약자
- 각 계층이
데이터를 주고 받을 때 사용
하는 객체이다.
- Getter, Setter
💬 VO
read-Only
가 특징
- 사용하는 도중에 변경 불가능하며
오직 읽기
만 가능합니다.
- Getter
📚 참고
스프링 처음 공부할 때 봤었으면 엄청 도움 됐을 것 같아요.
스프링 개념도 그렇고 설계 구조도 간략히 잘 정리하셨네요👍👍