Daily 목표: 스프링의 컨셉인 IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화)의 개념을 이해해가며 블로그 코드 작성하기
keyword: IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화)
스프링부트?
* 톰캣, 제티, 언더토우 같은 웹 애플리케이션 서버가 내장되어 있음. 따로 설치 하지 않아도 독립적 실행 가능함.
* 빌드 구성을 단순화하는 스프링 부트 스타터를 제공함.
* XML설정 없이 자바 코드 작성 가능.
* JAR을 이용해 자바 옵션만으로 배포 가능함.
* 애플리케이션 모니터링 관리 도구인 스프링 액츄에이터 제공
용어설명:
IoC : Inversion of Control 제어의 역전. 클래스 내부에서 객체를 직접 생성하지 않고, 어디선가 받아온 객체를 할당할 수 있는것임.
DI: Dependency Injection 의존성 주입, 제어의 역전을 구현하기 위해 사용하는 방법임.
빈: 스프링 컨테이너에서 관리하는 객체임. 스프링은 빈을 컨테이너에 등록하기 위해 XML 파일 설정, 애너테이션 추가 등의 방법을 제공함. 즉, 빈 등록하는 방법은 여러가지가 있음.
EX) MyBean이라는 클래스에 @Component 애너테이션을 사용하면 MyBean 클래스가 빈으로 등록된다. 이후 스프링 컨테이너에서 이 클래스를 관리하는데, 이때 빈의 이름은 클래스 이름의 첫 글자를 소문자로 바꿔 myBean이된다.
즉 빈은 스프링에서 제공해주는 객체임.
AOP: Aspect Oriented Programming을 줄인 표현. 관점 지향 프로그래밍.
ex) 계좌이체, 고객관리 프로그램을 만들때에 계좌 이체와 고객관리라는 핵심 관점 외에도, 로깅, 데이터베이스, 연결 로직을 부가 관점으로 모듈화하면, 관점에따라 프로그램 개발을 분류해 변경과 확장에 유연하게 대응 할 수 있게 된다.
PSA: 이식가능한서비스 추상화. Portable Service Abstraction.
ex) 클라이언트의 매핑과 클래스, 메서드의 매핑을 위한 애너테이션이 있을때에, jpa mybatis, jdbc 같은것이 있으면 어떤 기술을 사용하던 일관된 방식으로 데이터베이스에 접근하도록 인터페이스를 지우너하는것. was도 psa의 예시중 하나임. 코드는 그대로 두고 was를 톰캣이 아닌 언더토우, 네티와 같은곳에서 실행해도 기존 코드를 그대로 사용할 수 있으니.
총정리:
IoC: 객체의 생성과 관리를 개발자가 하는 것이 아니라 프레임워크가 대신 하는 것.
DI: 외부에서 객체를 주입받아 사용하는 것.
AOP: 프로그래밍을 할 때 핵심 관점과 부가 관점을 나누어 개발하는 것
PSA: 어느 기술을 개발하던 일관된 방식으로 처리하도록 하는것.
'JAVA > 블로그 만들기' 카테고리의 다른 글
블로그 만들기 DAY1 [용어정리 및 SRPING 기초정리] (0) | 2023.09.27 |
---|
댓글