Spring 8

[스프링 핵심원리 - 기본편] 요약 정리

인프런 김영한님의 강의를 듣고, 내용을 정리하며 저의 생각도 정리하였습니다. 영한님의 스프링 핵심원리 - 기본편을 정리해본다. 사실 오래전에 강의를 들었지만, 제대로 정리하지 않아서 그런지 자꾸 잊혀진다. 강의를 듣는것이 중요한 것이 아니라, 강의를 듣고 내것으로 만드는 것이 중요함을 새삼 깨닫는다. 스프링을 제대로 공부해본 적이 없어서 이 강의는 충격으로 다가왔다. 처음 회사를 갔을때, 무엇인지도 모르고 사용했던 것들을 하나씩 알아가는 즐거움이란...ㅎㅎ 배워야하는것 이 강의에서 내가 배워야하는건 명확하다 바로 스프링의 핵심원리의 기본적인 내용을 이해하는 것 먼저 목차를 살펴보면 객체지향설계와 스프링 스프링 핵심 원리 이해 1 - 예제 만들기 스프링 핵심 원리 이해 2 - 객체 지향 원리 적용 스프링 ..

Spring/핵심원리 2023.09.11

[스프링 핵심원리 - 기본편] 내용 정리7

빈 스코프 싱글톤 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 @Scope("prototype") 빈의 생성과 의존관계 주입까지만 관여, 소멸은 신경 x ( 짧은 범위의 스코프 ) @PreDestroy같은 종료 메소드 호출 x 조회한 클라이언트쪽에서 관리해야한다( ex) 종료 메소드 호출 ) 프로토타입 스코프 - 싱글톤 빈과 함께 사용할때 문제 프로토타입 스코프의 빈은 스프링 컨테이너에 요청하면 항상 새로운 객체를 생성해서 반환한다. 그렇지만, 프로토타입을 싱글톤 빈과 함께 사용하는 경우 싱글톤 빈이 스프링 컨테이너에 등록되는 순간 프로토타입도 생성되면서 유지되는 문제가 있다 싱글톤빈에서 프로토타입을 의존관계로 주입하는 순간, 그 프로토타입은 스프링 컨테이..

Spring/핵심원리 2023.09.04

[스프링 핵심원리 - 기본편] 내용 정리6

빈 생명주기 콜백 스프링 빈 객체의 초기화와 종료 작업 스프링 빈은 객체 생성 → 의존관계 주입이라는 라이프 사이클을 가짐 초기화 작업은 의존관계 주입 이후에 호출해야한다 스프링은 의존관계 주입이 끝나면 스프링 빈에게 콜백 메소드를 통해 초기화 시점을 알려주는 기능을 제공한다 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 실행한다 간단하지만, 반드시 알아두자! 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸전 콜백 → 스프링 종료 ※ 객체의 생성과 초기화 작업을 분리하자 생성자는 필수정보를 받고, 메모리를 할당해서 객체를 생성하는 책임 초기화는 생성된 값을 활용해서 외부 커넥션 등의 무거운 동작 수행 명확하게 역할을 구분하는 것이 유지보수 관점에서 좋..

Spring/핵심원리 2023.08.30

[스프링 핵심원리 - 기본편] 내용 정리5

컴포넌트 스캔과 의존관계 자동주입 스프링을 공부하면서 가장 신기했던, 어디서나 편리하게 사용하고 있는 의존관계 자동주입에 대해 공부한다. 처음에 회사에 갔을때, 스프링을 들어봤지만 제대로 공부하지 않았을때 이 개념을 봤을때는 정말 이해가 가지 않았다. 사실 스프링은 편리하다고 하지만 개념적인 내용이 어려워서 '그냥 그렇구나' 하고 사용했던 기억이 난다. 그때 바로 공부하고, 이해하고 적용하면서 업무를 진행했으면 달라졌을까...? 하는 후회가 많이 되곤한다. 그렇지만, 지금이라도 이렇게 공부하여 정리할 수 있어서 다행이다. 강의는 기존시간에 배웠던 @Configuration, @Bean을 활용한 스프링 컨테이너에 직접 등록하는 방법을 이어서 이로인해 발생하는 문제점(불편한점)을 제시하고, 그에 따른 해결책..

Spring/핵심원리 2023.08.27

[스프링 핵심원리 - 기본편] 내용 정리4

인프런 김영한님의 강의를 듣고, 내용을 정리하며 저의 생각도 정리하였습니다. 웹 애플리케이션과 싱글톤 스프링은 그 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청한다. 지난시간에 만들었던 AppConfig는 요청시마다 객체를 새로 생성한다. 이는 메모리의 낭비가 심하다 ( 객체 생성에 드는 비용이 1000이라고 하면, 참조로 가져오는 비용은 1정도보다 낮다 ) 이를 해결하기 위해서, 해당 객체가 딱 1개만 생성되고 공유되도록 하는 싱글톤 패턴을 적용한다 싱글톤 패턴 싱글톤 패턴이란, 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다 객체 인스턴스를 2개 이상 생성하지 못하도록 private 생성자를 두어 외부에서 임의로 ne..

Spring/핵심원리 2023.08.27

[스프링 핵심원리 - 기본편] 내용 정리3

인프런 김영한님의 강의를 듣고, 내용을 정리하며 저의 생각도 정리하였습니다. 스프링 컨테이너와 스프링 빈 스프링 컨테이너를 공부하면서 가장 먼저 눈에 들어온 몇가지 개념이 있다. ApplicationContext - '스프링 컨테이너'라고 불리는 인터페이스( 다형성 적용 ) - 사실은 'BeanFactory'가 스프링 컨테이너의 최상위 인터페이스이다 Spring Bean - 스프링 DI 컨테이너에 의해 관리되는 POJO @Configuration - 해당 애노테이션이 붙어있는 클래스를 스프링 설정을 담당하는 클래스로 인식한다 - 해당 애노테이션으로 설정클래스임을 알리고, @Bean을 메소드에 붙여 스프링 빈으로 등록한다 @Bean - 해당 애노테이션이 붙어있는 메소드를 스프링 빈으로 등록 @Compone..

Spring/핵심원리 2023.08.22

[스프링 핵심원리 - 기본편] 내용 정리2

인프런 김영한님의 강의를 듣고, 내용을 정리하며 저의 생각도 정리하였습니다. 관심사의 분리를 통한 DI와 IoC 이해하기 강의를 듣기 전부터 스프링을 공부해본 사람이라면 꼭 들어봤을 DI와 IoC에 대한 내용이 등장하기 시작한다. 의존관계 주입? 제어의 역전? 의존관계를 주입한다는게 무슨의미이고, 제어를 역전한다는게 무슨뜻인지 그 뜻이 제대로 이해가 되지 않았던 적이 많다. 이번에 강의를 들으면서 해당 개념의 이해를 하는것이 가장 큰 목적중 하나였다. 먼저 DI는 의존관계를 외부에서 주입(결정)해주는 것을 의미한다. 스프링에서는 DI 컨테이너가 이러한 역할을 담당한다. 이번 쳅터에서는 DI 컨테이너를 설명하기 위해 AppConfig가 등장한다 영한님의 강의는 무조건 이해시키려는 느낌이 아니라 이 개념을 ..

Spring/핵심원리 2022.02.21

[스프링 핵심원리 - 기본편] 내용 정리1

인프런 김영한님의 강의를 듣고, 내용을 정리하며 저의 생각도 정리하였습니다. 스프링과 객체지향 강의는 스프링의 핵심원리를 소개하기에 앞서, 객체지향에 대한 설명을 먼저 하고있다. 사실 이 부분이 스프링의 핵심이라고 말할 수 있을거 같다. 스프링은 자바 언어 기반의 프레임 워크이다 자바 언어의 가장 큰 특징은 객체지향언어이다 스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내는 프레임워크 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 즉, 스프링 = 자바 언어 기반 = 객체지향언어의 특징을 살린 프레임워크 스프링의 핵심을 이해하기 위해서는 먼저 객체지향의 특징을 알아야하는 이유를 명확히 설명해주고 있다. 객체지향의 특징중 특히 다형성을 잘 살펴보아야하는데, 이 부분을 가..

Spring/핵심원리 2022.02.21