Spring(36)
-
스프링 핵심 원리 - 기본편 # Section 5
❓ 웹 애플리케이션과 싱글톤스프링은 태생이 기업용 온라인 서비스 기술을 위해 탄생웹 애플리케이션은 보통 여러 고객이 동시에 요청요청 당 객체를 생성하면 메모리 낭비가 심함1개의 객체만 생성하고 공유하도록 설계 그것이 싱글톤 패턴❓ 싱글톤 패턴클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 함priavte 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 함public class SingletonService { // 1. static 영역에 객체를 딱 1개만 생성 private static final SignletonService instance = new SignletonService(); // 2..
2024.07.02 -
스프링 핵심 원리 - 기본편 # Section 4
❓ 스프링 컨테이너ApplicationContenxt 를 스프링 컨테이너라 한다.ApplicationContext 는 인터페이스다.스프링 컨테이너 생성 과정스프링 컨테이너 생성스프링 빈 등록스프링 빈 의존관계 설정 - 준비스프링 빈 의존관계 설정 - 완료설정 정보를 참고해서 의존관계를 주입(DI) 한다.❓ 스프링 컨테이너의 등록 된 빈 조회 방법@Test@DisplayName("모든빈 출력하기")void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(..
2024.06.09 -
스프링 핵심 원리 - 기본편 # Section 3
❓ IoC, DI, 그리고 컨테이너제어의 역전 IoC(Inversion of Control)프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)이라 한다. 의존관계 주입 DI (Dependency Injection)애플리케이션 실행 시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서클라이언트와 서버의 실제 의존관계가 연결 되는 것을 의존관계 주입 이라 한다. IoC 컨테이너, DI 컨테이AppConfig 처럼 객체를 생성하고 관리하면서 의존관계를 연결해 주는 것이며,IoC 컨테이너 또는 DI 컨테이너라고 한다.최근에는 주로 DI 컨테이너라 한다. ❓ 스프링 컨테이너ApplicationContext 를 스프링 컨테이너라 한다.@Configura..
2024.06.05 -
스프링 핵심 원리 - 기본편 # Section 1
❓ 스프링이란?: Java 기반의 애플리케이션 프레임워크로드 존슨이 출판한 저서 Expert One-onOne J2EE Design and Devleopment에서 선보인 소스 코드를 시작으로 점점 발전하게 되었다. Java EE의 스펙을 구현한 EJB가 기술의 복잡도를 높여 성능이 느렸던 것을 탈피하여 EJB 시절을 "겨울"에 빗대어 겨 후의 "봄"으로 시작한다는 의미로 스프링이 되었다.스프링의 진짜 핵심스프링은 자바 언어 기반의 프레임워크자바 언어의 가장 큰 특징 - 객체 지향 언어스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크스프링은 "좋은 객체 지향" 애플리케이션을 개발할 수 있게 도와주는 프레임워크객체 지향 프로그래밍객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보..
2024.05.27 -
Spring[Info] - Spring Triangle_IoC
🤔 Inversion of Control? (제어의 역전) 사용은 하지만 만들진 않음 누군가 밖에서 만들어서 줄 수 있도록 생성자를 통해 받아옴 💻 IoC Template // Controller의 생성자는 repo를 주입해줘야 한다. // 생성자로 강제하기 때문에 repo 객체는 무조건 사용할 수 있다. class OwnerController { private OwnerRepository repo; public OwnerController(OwnerRepository repo) { this.repo = repo; } } class OwnerControllerTest { @Test public void create() { OwnerRepository repo = new OwnerRepository(); ..
2021.07.02 -
Spring[Info] - Spring Triangle_AOP
🤔 AOP?(Aspect Oriented Programming) 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것 주요 개념 Aspect 여러 곳에서 쓰이는 코드 (공통 부분)을 모듈화한 것 Target Aspect 가 적용되는 곳 Advice Aspect 에서 실질적인 기능에 대한 구현체 Joint point Advice가 Target에 적용되는 시점 메서드 진입할 때, 생성자 호출할 때, 필드에서 값을 꺼낼 때 등등 Point cut Joint point의 상세 스팩을 정의한 것 AOP 구현체 AspectJ 스플링 AOP AOP 적용 방법 컴파일 (AspectJ) 로드 타임 (AspectJ) 런타임 (스프링 AOP) ..
2021.07.02