SpringBoot 핵심

dyeon-dev·2023년 11월 10일
0

SpringBoot

목록 보기
1/5
post-thumbnail

스프링 개념잡기

  • 스프링은 프레임워크이다.
  • 스프링은 오픈소스이다.
  • 스프링은 IoC 컨테이너를 가진다.
  • 스프링은 DI를 지원한다.
  • 스프링은 다수의 필터를 가지고 있다.
  • 스프링은 엄청나게 많은 어노테이션을 가지고 있다. (리플렉션, 컴파일체킹)
  • 스프링은 MessageConverter를 가지고 있다. 기본값은 현재 json이다.
  • 스프링은 BufferReader와 BufferedWriter를 쉽게 사용할 수 있다.

컴파일체킹

컴파일 체킹이라는 개념을 알기 위해선 '어노테이션' 개념을 알아야 한다. 일반적인 주석(//)은 컴파일러가 무시하지만, 어노테이션은 (주석 + 힌트)의 결합으로 컴파일러가 무시하지 않는다.
예를 들어 Aniaml 클래스의 run() 메소드를 Animal을 상속받는 Dog 클래스에서 @override run();을 하면 컴파일시 Aniaml 클래스의 run() 메소드가 있는지 확인한다.

스프링에서는 주로 어노테이션으로 객체를 생성한다.
ex)

@component -> 클래스를 메모리에 로딩하라
@Autowired -> 로딩된 객체를 해당 변수에 집어 넣어라

  • 스프링은 메서드, 필드, 어노테이션을 런타임 시 리플렉션(분석)한다.
  • IoC(Inversior of Controll) 제어의 역전 - 주도권이 개발자가 아닌 스프링에게 있다. 컴포넌트 스캔을 통해 싱글톤 패턴과 레퍼런스 변수를 스프링이 관리한다.
  • 자바 object -> MessageConverter: Jackson <-> Json request(요청) -> 파이썬 프로그램

이렇게 스프링은 IoC 컨데이터를 가지고, DI(Dependency Injection)를 지원한다. 요청과 응답이 이뤄질 때 자동으로 JSON으로 변환해주는 MessageConverter 라이브러리가 존재한다.

profile
https://dyeon-dev.vercel.app/ ⬅️ 블로그 이전

0개의 댓글