1. SpringBoot?
- Spring으로 Application을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 FrameWork임
- 기존에 어려운 초기 설정에 쏟아야 했을 시간과 노력을 절약하여 비즈니스 Logic을 구현하는데 집중할 수 있음
- 기존에, 별도의 외장 웹 Server를 설치하고, Project를 War File로 Build하여 배포를 진행했다면? SpringBoot는 자체적 Web Server를 내장하고 있어 빠르고 간편하게 배포를 할 수 있음
- 독립적으로 실행 가능한 Jar File로 Project를 Build할 수 있어 Cloud Service 및 Docker와 같은 Virtualization 환경에 빠르게 배포가 가능함
2. SpringBoot Initializr
- SpringBoot를 실행하기 전 샘플 프로젝트를 만들어 미리 어떻게 만들어질지를 예상해보고, 실제 Project에 Dependency를 가져다 사용하는 형태로 이용됨
- → https://start.spring.io/ [SpringBoot initializr Site]
- [용어정리]
- Project : Build Tool을 Select
- Language : Project에 사용하고자 하는 Programming Language를 Select
- Spring Boot : Version Name 뒤에 아무 것도 붙지 않은 Version 중, 가장 New Version을 Select
- SNAPSHOT : 아직 개발이 완료되지 않은 Version을 의미함
- M(Milestone) : 개발은 완료되었지만, 아직 기능들을 개선하는 중 or 버그를 수정하고 있는 Version을 의미함
- RC(Release Candidate) : 기능 개선과 버그 수정이 완료되었으나, 최종적으로 릴리즈되지는 않은 Version을 의미함
- Project Metadata : Project Info를 입력함
- Group : Project를 만드는 Group의 naming으로 하거나, 기업의 Domain Naming을 역순으로 입력함
- Artifact : Build 결과물의 Name임
- Name : Project의 Name임
- Description : Project에 대한 간략한 설명을 입력함
- Package name : Project에 생성할 Package를 설정함
- Packaging : 배포를 위해 Project를 압축하는 방법을 선택함
- Java : PC에 설치된 JDK의 Version을 Select하면 됨
- Dependencies : Project를 통해 만든 Application의 동작에 필요한 :Libirary를 Select함
3. SpringBoot 총정리
- Spring은 엔터프라이즈용 Java Application 개발을 편하게 할 수 있게 해주는 Open Source 경량급 Application FrameWork임
- Spring은 POJO[Plain Olld Java Object - Java만을 통해서 생성한 객체임]Programming을 지향하는 Feature을 가지며, IoC/DI, AOP, PSA를 지원함
- IoC는 Object 간의 의존관계를 개발자가 아닌 Spring이 맺어주는 것을 말함
- DI는 의존 Object를 특정 Class에서 직접 생성하는 것이 아니라, 외부로부터 주입해주는 것을 말함
- AOP는 Application 전반에 걸쳐 공통적으로 적용되는 Code들을 비즈니스 Logic으로부터 분리해내는 것을 의미함
- PSA는 특정 기술과 관련된 Service들을 Abstract하여 일관된 방식으로 사용할 수 있도록 한 것을 의미함
- SpringBoot는 Srping Application을 만들 때에 필요한 초기 설정을 간편하게 해주는 FrameWork임
- Spring Initializr를 사용하면 Srping Project를 편리하게 생성 할 수 있음