📚 관련 독서/스프링 부트 3 백엔드 개발자 되기 - 자바 편

[SpringBoot] 02장 스프링 부트3 시작하기

imname1am 2023. 8. 9. 23:34
반응형

📗 스프링과 스프링부트

📍 스프링 프레임워크

엔터프라이즈 애플리케이션 위한 높은 수준의 서버 성능, 안정성, 보안 제공하는 개발 환경

* 엔터프라이즈 애플리케이션 : 대규모 복잡한 데이터를 관리하는 애플리케이션

 

 

📍 스프링 부트

스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있게 만드는 도구 

  1) WAS가 내장되어 있어 따로 설치할 필요 없이 독립적으로 실행 가능

  2) 스프링 부트 스타터와 자동 구성 제공 - 빌드 구성 단순화해 스프링 프로젝트 빠르게 설정. (=의존성 세트)

  3) XML 설정 없이 자바 코드로 모두 작성

  4) JAR를 이용해 자바 옵션만으로 배포 가능

  5) 스프링 액츄에이터 제공 - 애플리케이션 모니터링 및 관리 도구

 

 

 

스프링 vs 스프링부트

1) 구성

- 스프링       : 애플리케이션 개발에 필요한 환경을 수동으로 구성하고 정의해야 함

- 스프링부트: 수동으로 개발 환경 구성할 필요 X ➝ 스프링 코어, 스프링 MVC 기능 활용

 

2) 내장 WAS

- 스프링        : WAS에서 배포 (예 : Tomcat)

- 스프링부트: 자체적으로 AWS 파일 갖고 있어 JAR 파일만 만들면 WAS 설정 없이 애플리케이션 실행 (+내장 AWS : 톰캣, 제티, 언더토우)

 

*WAS : 웹 애플리케이션 실행 위한 장치

 

3) 그 外 차이점 - 목적, XML 등

 


📗 스프링 콘셉트 공부하기

📍 DI (의존성 주입)

- 정의 | 외부에서 객체를 주입받아 사용하는 것.

- IoC 구현하기 위해 사용

⇨ 예) @Autowired : 스프링 컨테이너에 있는 을 주입하는 역할. ⇢ 빈: 스프링 컨테이너에서 관리하는 객체

// 객체 주입 예
public class A {
    // 스프링 컨테이너 A에서 B를 주입받아 사용
    @Autowired
    B b;
}

 

 

📍 IoC (제어의 역전)

- 정의 | 다른 객체를 직접 생성·제어하는 것이 아니라, 외부에서 관리하는 객체를 가져와 사용

-  객체의 생성, 관리를 프레임워크가 함

// 예제) 스프링 컨테이너가 객체 관리하는 방식
public class A {
    private B b;	// 객체를 직접 생성하지 않고, 어디선가 받아온 객체를 b에 할당
}

 


📗 빈과 스프링 컨테이너

📍 스프링 컨테이너

- 빈을 생성하고 관리 ⇨ 빈이 생성되고 소멸되기까지의 생명주기 관리
- Annotation 사용해 빈 주입받을 수 있게 DI 지원

 

📍 

- 정의 | 스프링 컨테이너가 생성하고 관리하는 객체

- 빈의 이름 = 클래스 이름의 첫 글자를 소문자로 바꿔 관리

// 클래스 MyBean 빈으로 등록
@Component
pubilc class MyBean {
}

 


📗 AOP ; 관점 지향 프로그래밍

📍 AOP 

- "관점 지향 프로그래밍 (Aspect Oriented Programming)"

- 정의 | 프로그래밍에 대한 관점을 핵심 관점 / 부가 관점으로 나눠 관심 기준으로 모듈화

- 장점 : 프로그램 변경, 확장에 유연

 


📗 PSA ; 이식 가능한 서비스  추상화

📍 PSA

- "이식 가능한 서비스 추상화 (Portable Service Abstraction)"

- 정의 | 스프링에서 제공하는 다양한 기술들을 추상화해 개발자가 쉽게 사용하는 인터페이스

- 어느 기술을 사용하던 일관된 방식으로 처리하게 하는 것

- 예 : 클라이언트의 매핑과 클래스, 메서드 매핑을 위한 Annotation, WAS

 

 

 

 

(해당 글 내용은 📗 스프링 부트 3 백엔드 개발자 되기 - 자바 편을 읽고 정리한 내용입니다.)

반응형