✎NHN Academy | JAVA

NHN Academy - 2024.11.04(Mon)

박순돌 2024. 11. 4. 15:47

Spring Boot(프레임 워크, 경량 컨테이너)

 

어떤 프레임 워크를 사용하는 것이 좋을까?

  • 표준 : 업계 표준을 얼마나 따르고 있는지. 널리 사용되는 기술과 호환되는지
  • 신뢰성 : 프레임워크가 안정적으로 동작하며, 오류가 적고 지속적인 유지보수와 지원을 받고 있는지
  • 생태계 : 프레임워크 주변에 활발한 커뮤니티와 광범위한 플러그인, 도구, 라이브러리 등이 존재하는지
@RestController
public class DemoController {

    @GetMapping("/hello")
    public String myFirstSpringBoot() {
        return "hello world";
    }
}

 

WHY? 프레임워크 사용 -> 개발의 편의성 (Spring Framework = 프레임워크)

 

Spring Boot : Spring Framework 를 더 편하게 사용할 수 있도록 나온 프로젝트

 

프레임 워크?

소프트웨어 개발을 쉽게하고 일관성 있게 만들기 위해 사용되는 구조적인 플랫폼

Spring Framework 를 사용하는데 불편함이 있어서 (각종 설정 작업 등등) 더 편하게 사용하기 위해서 나온 프로젝트

기본 골조를 제공해주고 필요한 부분을 우리가 구현하는 방식

내부적으로 Spring Framework 기반으로 동작

 

Spring Framework

자바 기반의 프레임 워크로 여러 기능들을 지원해주고 (aop, 영속성 등등), 사용자가 많기 때문에 안정성 및 신뢰성이 좋다. (버그가 생겨도 금방 나오고 고쳐주기 때문)
DI, IOC, AOP 라는 용어가 중요한 것 같다.

 

 

컴포넌트 : 화면을 구성할 수 있는 블록(화면의 특정 영역)을 의미

 

Java Bean

Spring Bean

  - 특정 형태의 클래스
  - DTO나 VO의 형태 = Java Bean
  - 전달 인자가 없는(No-argument) 생성자를 가지는 형태의 클래스
  - 모든 필드는 private로 getter와 setter를 통해서만 접근 가능 O
  - Spring IoC컨테이너가 관리하는 Java 객체( = 일반 Java 객체)
  - Ex. 스프링 IoC가 관리하는 객체
            = 스프링에 의해 생성되고,
라이프 사이클을 수행하고,
               의존성 주입이 일어나는 객체들
           즉, 개발자가 관리하는 객체가 아닌
                  스프링에게 제어권을 넘긴 객체를 스프링에서 Bean

 

스테레오타입(Stereotype) 애노테이션

 

싱글톤 = 무언가가 필요할 때, 1가지의 재료만 제공하는 것

프로토타입 = 무언가가 필요할 때, 상황에 맞는 여러 가지의 재료를 각각 제공하는 것

 

에러 -> option + Enter

 

 

ApplicationContext == 객체

  - 스프링 컨테이너

  - BeanFactory에 부가기능을 추가한 것

  - Spring 프레임워크에서 중앙 인터페이스로, 애플리케이션의 설정 정보를 관리

 

 

필요한 작업 중간 개입

1. InitializingBean, DisposableBean 사용

2. @Bean 어노테이션 설정 사용

3. @PostConstruct, @PreDestroy 사용

 

의존성 주입 = Dependency Injection = DI

1. 생성자 주입(Constructor Injection)
2. 필드 주입(Field Injection)
3. 수정자 주입(Setter Injection)

 

IoC

: 개발 편의성을 올려주기 위한 디자인 패턴의 하나

: 프로그램의 제어 흐름이 프로그램 코드에 의해 결정되는 것이 아니라, 외부에서 결정

: 프로그램의 제어권을 프레임워크가 가지는 것

: 프로그램의 흐름 제어 / 객체 생성 제어를 내가 직접하지 않고 프레임워크가 하는 것

: 주요 객체의 생성 및 객체 간의 의존성을 사용자가 관리

: 장점

   - 프로그램의 흐름을 실수 X

   - 전체적인 코드의 수정을 많이 하지 않아도 O

: 단점

   - 우리가 제어해서 에러, 중복 


스프링 부트의 Major 버전이 변경 시, Spring Framework, Java 버전 변경 O! 버전에 따른 지원 https://spring.io/projects/spring-boot/#support
Bean 등록 방법 중요!!
⭐ 싱글톤 중요 ⭐ ➡
⭐ 둘 다 중요 ⭐
⭐ 둘 다 중요 ⭐

 

'✎NHN Academy | JAVA' 카테고리의 다른 글

NHN Academy - 2024.11.06(Wed)  (5) 2024.11.06
NHN Academy - 2024.11.05(Tue)  (0) 2024.11.05
NHN Academy - 2024.10.25(Fri)  (1) 2024.10.25
NHN Academy - 2024.10.24(Thu)  (0) 2024.10.24
NHN Academy - 2024.10.16(Wed)  (2) 2024.10.16