2023. 03. 16 (4 week)

김준태·2023년 3월 16일
0

멋쟁이사자처럼

목록 보기
15/16
post-thumbnail

스프링부트 용어

빈(Bean)

  • 빈은 스프링이 생성, 관리하는 객체를 의미, Bean은 보통 싱글턴으로 존재
  • 빈의 생명주기는 초기화(initialization)와 소멸(destruction)로 나눌 수 있으며, 스프링에서는 이를 빈 생명주기 콜백(bean lifecycle callback)이라고 부릅

빈 컨테이너

  • Bean 객체들을 생성하고 관리하는 역할
  • 객체를 생성하고 의존성 주입을 수행하기 위해 XML, Java Config, Annotation 등의 설정 정보를 이용

생명주기(lifecycle)

  • 객체의 생성부터 소멸까지의 과정을 의미

DI(Dependency Injection)

  • 스프링 프레임워크에서 객체간 의존성을 관리하기 위해 사용되는 개념
  • 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이기 때문에 코드의 재사용성과 유지보수성이 향상

Ioc(Inversion of Control)컨테이너

  • Bean 객체의 생성, 관리, 의존성 주입 등을 담당하는 스프링의 핵심 컴포넌트
  • 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미

어노테이션(Annotation)

코드에 대한 정보를 제공하고, 컴파일러나 프레임워크 등이 이 정보를 활용하여 코드를 생성하거나 실행 시 동작을 변경할 수 있도록 합니다.

@Autowired

  • 객체 간의 의존성을 자동으로 주입(injection)하는 기능
  • @Autowired를 사용하면 스프링이 해당 객체에 대한 의존성을 자동으로 해결
///////////////////////////// V1 필드 주입 /////////////////////////
@Controller
public class GameController {
	// 주입 대상 객체에 @Autowired 주석을 추가
	@Autowired
    private GameService gameService;
}

// 빈 선언
@Component
public class GameService {
}

///////////////////////////// V2 생성자 주입 /////////////////////////
@Controller
public class GameController {

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}
// 빈 선언
@Component
public class GameService {
}

@Component

  • 해당 클래스가 스프링에서 관리하는 빈(Bean)임을 선언하는 역할
  • @Controller, @Service, @Repository 등의 상위 주석이다. 그래서 @Component로 대체 가능하다.

@RequestScope

  • HTTP 요청 범위(request scope)의 빈(bean)을 정의할 때 사용
  • HTTP 요청이 들어올 때마다 새로운 인스턴스의 빈을 생성하고, 해당 요청이 끝나면 해당 빈 인스턴스를 제거 함으로써, 각 HTTP 요청마다 독립적인 빈 인스턴스를 사용할 수 있습니다.

Jackson

  • JSON 데이터를 Java 객체로 매핑하거나 Java 객체를 JSON 데이터로 변환하는 기능을 제공하는 라이브러리
// 불리언 타입이고 메소드명이 접두어 is / get 으로 시작되면
// "success" : true  <-- Json 출력
public boolean isSuccess() {
	return true;
}

0개의 댓글