Spring Boot 시작

배지원·2022년 10월 29일
0

SpringBoot

목록 보기
1/11

1. SpringBoot 정의

  • 스프링 프레임워크 기반 프로젝트를 어려운 설정이나, WAS에 대한 설정 없이 바로 개발에 들어갈 수 있도록 만든 프레임워크

웹서버(예.Apache)

  • 클라이언트가 웹 브라우저에서 어떠한 페이지 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버


WAS(Tomcat)

  • 웹 서버와 웹 컨테이너가 합쳐진 형태로, 웹 서버 단독으로는 처리할 수 없는 데이터베이스의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다.
    WAS는 JSP,Servlet 구동환경을 제공해주기 때문에 웹 컨테이너,서블릿 컨테이너라고도 불린다.
    컨테이너란? JSP,Servlet을 실행시킬 수 있는 소프트웨어


    참고자료 : https://codechasseur.tistory.com/25

(1) SpringBoot 장점

  • 의존성 관리 : Spring-boot-starter 모듈 라이브러리
  • 자동 설정 : 스프링 부트 애플리케이션이 실행되면 우선 @ComponentScan어노테이션이 @Component 시리즈 어노테이션이 붙은 클래스를 발견해 빈등록
    @Component 시리즈 어노테이션 종류 :
    - @Controller
    - @RestController
    - @Service
    - @Repository
    - @Configuration
    위의 어노테이션이 있다면 자동으로 bean등록이 됨
  • 내장 WAS(Web - Application - Server) : 톰캣을 통해 8080포트로 로컬 서버 사용가능

(2) SpringBoot 구조


(3) 제어 역전(IOC)

  • 객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것
  • 제어 역전을 통해 의존성 주입, 관점 지향 프로그래밍이 가능해짐
@RestController
public class NoDIController {
	
	// 개발자가 직접 객체를 관리
	private MyService service = new MyServiceImpl();
	
	// 객체 관리를 컨테이너가 제어함
	@GetMapping("/no-di/hello")
	public String getHello() {
		return service.getHello();
	}
}

(4) 의존성 주입(DI)

  • IoC방법중의 하나로, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식.

@Autowired

의존성 주입하는 어노테이션. 스프링 4.3이후 생략가능!

의존성 주입방식 3가지(if Di 클래스를 생성한다고 할때)**

- 생성자를 통한 의존성 주입

Myservice myService; // 공식문서 권장 방향 

@Autuwired
public Di(Myservice myservice){ // Di 생성자로 객체 주입 
	this.myService = myservice;
}

- 필드 객체 선언을 통한 의존성 주입

@Autuwired
public Myservice myservice) // 필드로 바로 객체 주입 

(5) 관점 지향 프로그래밍(AOP)

  • 핵심 기능(비즈니스 로직)과 부가기능(모니터링, 캐싱, 로깅, 트랜잭션..)을 나누어 개발하는 방식
  • Spring은 비지니스 로직에 집중 할 수 있도록 그래서 생산성을 높일 수 있는 방향으로 진화하고 있다.
  • TDD가 가능하도록 한다.

2. SpringBoot 실행

  • Intellij를 통해 실행함
  • Spring Initializr를 통해 설정을 한다.
  • 자신이 사용할 의존성을 선택하면 자동으로 SpringBoot 환경이 만들어 진다.
profile
Web Developer

0개의 댓글