스프링부트 1

강다빈·2023년 11월 12일
0

backend

목록 보기
2/5

엔터프라이즈 애플리케이션? 💁🏻‍♀️

대규모의 복잡한 데이터를 관리하는 애플리케이션.

스프링 프레임워크

서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구.

설정이 매우 복잡 → 스프링 부트.

스프링 부트의 주요 특징

  • 톰캣 같은 WAS(웹 어플리케이션 서버)가 내장되어 있어서 따로 설치를 하지 않아도 독립적으로 실행 가능함.
  • 스프링 부트 스타터 제공 → 빌드 구성 단순화
  • XML 설정을 하지 않고 자바 코드로 모두 작성할 수 있음.
  • JAR을 이용해서 자바 옵션만으로도 배포가 가능함.
  • Spring actuator 제공 - 애플리케이션의 모니터링 및 관리 도구

차이점 1 : 구성

스프링 - 모든 환경을 수동으로 설정

스프링 부트 - 스프링 코어와 스프링 MVC의 모든 기능을 자동 로드 → 수동 x

차이점 2 : 내장 WAS의 유무

웹서버는 정적인 컨텐츠만, was는 어떤 애플리케이션을 돌리고, DB를 연결하고, 어떤 로직을 수행해서, 만든 데이터를 전달

상황에 따라 변하는 정보를 제공할 수 있는가?

IoC

Inversion of Control - 제어의 역전.

클래스 A에서 클래스 B 객체 생성

public class A {
	b = new B();
}

스프링은 스프링 컨테이너가 객체를 관리, 제공하는 역할을 한다.

public class A {
	private B b;
}

→ 코드에서 객체를 생성하지 않음, 어디선가 받아온 객체를 b에 할당

DI

Dependency Injection - 의존성 주입

⇒ 어떤 클래스가 다른 클래스에 의존한다.

public class A {
	//A에서 B를 주입받음.
	@Autowired
	B b;
}

Bean = 스프링 컨테이너에서 관리하는 객체.

이전 코드에서는 개발자가 직접 B 객체를 생성했지만, 위 코드는 어딘가에서 B b;라고 선언했을 뿐 직접 객체를 생성하진 않음 → 스프링 컨테이너에서 객체 주입받음

스프링 컨테이너가 B 객체를 만들어서 클래스 A에 줌.

Bean

스프링의 객체
클래스를 빈으로 등록하는 방법 예

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

AOP(Aspect Oriented Programming)

관점 지향 프로그래밍

  • 핵심관점, 부가관점으로 나누어서 관심 기준으로 모듈화하는 것을 의미함.

계좌 이체, 고객 관리 프로그램

  • 핵심 = 계좌 이체, 고객 관리 로직
  • 부가 = 로깅, db 연결 로직

PSA(Portable Service Abstraction)

이식 가능한 서비스 추상화.

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

profile
SKT DEVOCEAN YOUNG 2기, Kubernetes Korea Group

0개의 댓글

관련 채용 정보