스프링 프레임 워크 란 ?
스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션
프레임워크로서 간단히 스프링(Spring)이라고도 한다.
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.
프레임 워크란?
프레임워크는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체를 말한다.
스프링에서 말하는 프레임워크는 서버 개발 프레임워크로 웹 프레임워크로도 불린다.
이러한 프레임워크는 기능 구현을 위한 기본적인 형태를 지원할 뿐이고 필수적인 사항은 아니다.
하지만 사용여부에 따라 생산하는 코드 품질 및 개발 속도를 높일 수 있다.
스프링 프레임워크 특징
- POJO(Plain Old Java Object) 방식
POJO는 Java EE의 EJB(Enterprise JavaBeans) 를 사용하면서 해당 플랫폼에 종속되어 있는 무거운 객체들을 만드는 것에 반발하며 나타난 용어다. 스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 직접 구현하거나 상속받을 필요가 없어서 기존 라이브러리를 지원하기가 용이하고, 객체가 가볍다.
- 관점 지향 프로그래밍(Aspect Oriented Programming, AOP)
로깅, 트랜잭션, 보안 등 여러 모듈에서 공통 관심 사항(cross-cutting concern) 과 핵심 관심 사항(core concern) 분리하여 관리할 수 있다.
- 의존성 주입(Dependency Injection, DI)
구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되는 방식이다. 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈간의 결합도도 낮출 수 있다. 계층, 서비스 간에 의존성이 존재하는 경우 스프링 프레임워크가 서로 연결시켜준다.
- 제어 역전(Inversion of Control, IoC)
컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
- 생명주기 관리
스프링 프레임워크는 Java 객체의 생성, 소멸을 직접 관리하며 필요한 객체만 사용할 수 있다.
- 모델-뷰-컨트롤러(MVC) 패턴
스프링은 웹 프로그램밍 개발 시 거의 표준적인 방식인 Spring MVC라 불리는 모델-뷰-컨트롤러(MVC) 패턴을 사용한다. DispatcherServlet이 Controller 역할을 담당하여 각종 요청을 적절한 서비스에 분산시켜주며 이를 각 서비스들이 처리를 하여 결과를 생성하고 그 결과는 다양한 형식의 View 서비스들로 화면에 표시될 수 있다.
출처: https://hcjo.tistory.com/7
Spring Boot 세팅
1. 이클립스 내부의 마켓플레이스에서 spring tool 3 버젼을 다운로드한다.
2. 환경을 spring으로 변경
3. 스프링 홈페이지에서 프로젝트 세팅후 다운
- Maven Project
- 제일 아래 버젼 설정
- Lombok, Spring Boot DevTools, Spring Web, Thymeleaf(서버)
4. 다운받은 프로젝트를 불러오게 되면 Maven이 되면서
필요한 라이브러리들이 자동으로 생성되게 된다.
5. 포트 번호를 아래의 경로를 따라 지정해준다.
기본적인 세팅이 끝났다.
이제 내부를 살펴보면 java 폴더에 자동으로
패키지와 클래스가 생성 되어있는걸 확인 할 수 있다.
Spring boot는 따로 서버를 세팅 하지 않아도
내부에 저장되어 있어서 가능한 것인데
아까 위에서 세팅했던 Thymeleaf 자체에서
서버를 실행 할 수 있게 자동으로 생성 한 것이다.
이제 간단하게 서버를 실행하여 페이지를 로드 하기 위해 코드를 작성해 보겠다.
먼저 templates 폴더안에 Method 폴더를 만들고
get.html을 생성하였다.
기본적인 html 세팅이다. 여기서 xmlns:th 라는 키워드가 눈에띄는데 thymleaf와 관련된 것이다.
위에 보이는 것 처럼 세팅을 하지 않을 경우 배포를 했을시 서버 로드가 되지 않아서
일일이 다 넣어서 수정해줘야하는 번거러움이 있기 때문에 html생성시 꼭 넣어 줘야한다.
그리고 자바 폴더로가서 처음 생성 되었던 패키지 안에 패키지 를 생성해주고
컨트롤러 클래스를 생성한다.
그리고 클래스안에 페이지를 로드 할 수 있게 설정을 해준다.
이전 자동 생성된 자바 파일로 서버 실행이 가능하지만
직접 Controller 를 어노테이션해서 서버를 실행 할 수 있게 세팅하고
GetMapping으로 맵핑주소를 세팅하고 / 와, /index로 설정한다.
아까 method 폴더에 생성한 get을 실행하게 리턴값을 주었다.
여기서 어노테이션과 관련된것들은 추후에 설명하겠다.
서버를 실행 했을때 get.html이 실행된다.
서버가 오류없이 잘 실행 됬다고 나온다.
만약 서버실행이 계속 되고 있어서 겹친다고 나오면
따로 서버를 제거해줘야한다.
그리고 아까 지정했던 포트 번호와 맵핑주소를 사용해서
확인을 해보면 페이지가 잘 로드 된 것을 확인 할 수 있다.
'Java > Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring MVC(@Service) (0) | 2022.07.26 |
---|---|
[Spring Boot] Spring MVC (@RestController, @ResponseBody, @RequestMapping) (0) | 2022.07.24 |
[Spring Boot] Spring MVC(@Controller, @GetMapping, @RequestParam) (0) | 2022.07.21 |