1. 학습목표
의존성 주입과, 제어의 역전을 이해할 수 있다.
2.필요 개념 문장정리
의존성 주입(DI: Dependency Injection)
- 어떤 클래스가 다른 클래스에 의존한다는 뜻이다.
- @Autowired라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할을 한다.
- 빈은 스프링 컨테이너에서 관리하는 객체를 말한다.
- 기존의 자바코드는 클래스 A에서 B객체를 직접 생성했지만 스프링의 경우 스프링 컨테이너에서 객체를 주입받아 사용한다.
제어의 역전(IoC: Inversion of Control)
- 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것을 말한다.
관점지향 프로그래밍(AOP: Aspect Oriented Programming)
- 프로그래밍에 대한 관심을 핵심관점, 부가 관점으로 나누어서 관심 기준으로 모듈화하는 것을 의미한다.
- OOP에 보완적으로 확장성있게 사용하는 것으로 로깅, 권한체크, 데이터베이스연결로직 등 부가관점으로 기능을 구현한다.
- 인프라 로직은 중복코드를 만들어낼 가능성이 높고 비즈니스 로직과 함께있으면 이해가 어렵다.
이식가능한 서비스 추상화(PSA: Portable Service Abstraction)
- 스프링에서 제공하는 기술들을 추상화해 개발자가 쉽게 사용하는 인터페이스를 말한다.
- 어느 기술을 사용하던 일관된 방식으로 처리하도록 하는 것이다.
3. 코드작성
package me.ggambo.springbootdeveloper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
return "Hello, World!!";
}
}
class Point {
int x;
int y;
String getLocation(){
return "x : " + x + ", y :" + y;
}
}
class Point3D extends Point {
int z;
String getLocation() { // 오버라이딩
return "x : " + x + ", y :" + y + ", z :" + z;
}
}
4. 마무리
스프링에 대해 공부한 내용을 정리를 하게 되었다.
큰 항목부터 학습하고 세부적으로 기록해야겠다.
'SPRING > Spring' 카테고리의 다른 글
[스프링| 스프링 입문 | 코드로 배우는 스프링] 비즈니스 요구사항 정리 (0) | 2024.04.23 |
---|---|
[스프링| 스프링 입문 | 코드로 배우는 스프링] API (0) | 2024.04.22 |
[스프링| 스프링 입문 | 코드로 배우는 스프링] MVC와 템플릿엔진 (1) | 2024.04.21 |
[되기시리즈 스프링부트3| 04장 스프링부트와 테스트 ] Given-When-Then패턴 (0) | 2024.02.15 |
[되기시리즈 스프링부트3| 03장 스프링부트3 구조 이해하기] (0) | 2024.02.14 |