- 스프링 부트
- 스프링 코어, 스프링 MVC의 모든 기능을 자동으로 로드하여 개발 환경 구성
- 자체적으로 WAS를 갖고있다. (톰캣 등)
- WAS: 웹 어플리케이션을 실행하기 위한 장치
- IoC(Inversion of Control)
- 제어의 역전
- 다른 객체를 직접 생성하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것
- 스프링에서 객체들을 관리하기 위해 사용
- 예로 new로 객체 생성이 아닌, private A a; 처럼 받아오는 것
- DI(Dependency Injection)
- 의존성 주입
- IoC을 구현하기 위해 사용하는 방법이며, 스프링 컨테이너에서 객체를 주입받아 사용
- 예로 @Autowired 어노테이션은 스프링 컨테이너에 있는 빈(스프링 컨테이너에서 관리하는 객체)을 주입하는 역할이며 private A a; 코드 바로 위에 작성하여 객체를 주입받는다.
- 스프링 컨테이너
- 빈을 생성하고 관리
- @Autowired 같은 어노테이션을 사용해 빈을 주입받을 수 있다.
- 빈
- 스프링 컨테이너가 생성하고 관리하는 객체
- 클래스 위에 @Component 어노테이션을 붙이면 해당 클래스가 빈으로 등록된다. 이후 스프링 컨테이너에서 이 클래스를 관리한다.
- 빈의 이름은 첫글자 소문자로 시작한다.
- AOP(Aspect Oriented Programming)
- 관점 지향 프로그래밍
- 코드를 핵심 기능과 부가 기능으로 나눠서 프로그래밍
- PSA(Portable Service Abstraction)
- 이식 가능한 서비스 추상화
- 스프링 제공 기술을 추상화해서 개발자가 쉽게 사용하는 인터페이스
- 예로 클라이언트의 매핑과 클래스, 메서드 매핑을 위한 어노테이션, 데이터베이스의 JPA, MyBatis, JDBC, 그리고 WAS 존재
- @GetMapping
- 메서드와 매핑할 떄 스프링 부트에서 설정한 경로
- @RestController
- 라우터 역할을 하는 어노테이션
- 라우터: HTTP 요청과 메서드를 연결하는 장치
- 해당 어노테이션으로 클라이언트 요청에 맞는 메서드 실행 가능
- 라우터 역할을 하는 어노테이션
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
return "Hello World!";
}
}
- 스프링 부트 스타터
- 의존성이 모여 있는 그룹이며 spring-boot-starter-{작업유형} 의 명명규칙이 있다.
- 스타터
- spring-boot-starter-web
- Spring MVC를 사용하여 RESTful 웹 서비스 개발
- spring-boot-starter-test
- 스프링 어플 테스트
- spring-boot-starter-validation
- 유효성 검사
- spring-boot-starter-actuator
- 모니터링
- spring-boot-starter-jpa
- ORM을 사용하기 위한 JPA 사용
- spring-boot-starter-web
- @SpringBootApplication
- 자바의 main() 같은 역할이며 여기서 스프링 부트가 시작된다.
- SpringApplication.run() 메서드는 어플리케이션 실행
@SpringBootApplication public class SpringbootDeveloperApplication { public static void main(String[] args) { SpringApplication.run(SpringbootDeveloperApplication.class, args); } }
- @Component
- @Configuration
- 설정 파일 등록
- @Repository
- ORM 매핑
- @Controller, @RestController
- 라우터
- @Service
- 비즈니스 로직
- @Configuration
728x90
'Back-end > Spring Boot' 카테고리의 다른 글
스프링부트3 백엔드개발자되기 / 4장 스프링 부트 3와 테스트 (0) | 2023.11.18 |
---|---|
스프링부트3 백엔드개발자되기 / 3장 스프링 부트 3 구조 이해하기 (0) | 2023.11.18 |
스프링부트3 백엔드개발자되기 / 1장 자바 백엔드 개발자가 알아두면 좋은 지식 (0) | 2023.11.18 |
[Spring DB] Annotation (0) | 2023.11.06 |
[Spring Boot] Thymeleaf (0) | 2023.11.03 |