[Spring 핵심원리 - 기본] Bean 생명주기 콜백
Back-End/Spring2024. 2. 2. 00:24[Spring 핵심원리 - 기본] Bean 생명주기 콜백

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. Bean 생명주기 콜백 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정해보자. 실제로 네트워크에 연결하는 것은 아니고, 단순히 문자만 출력하도록 한다. 이 NetworkClient 는 애플리케이션 시작 시점에 connect() 를 호출해서 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disConnect() 를 호출해서 연결을 끊어야 한다. package hello.core.lifecyc..

[Spring 핵심원리 - 기본] 의존관계 자동 주입
Back-End/Spring2024. 2. 1. 00:27[Spring 핵심원리 - 기본] 의존관계 자동 주입

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 다양한 의존관계 주입 방법 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법이다. 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다. 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPol..

[Spring 핵심원리 - 기본] 컴포넌트 스캔
Back-End/Spring2024. 1. 31. 00:53[Spring 핵심원리 - 기본] 컴포넌트 스캔

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 이 글은 어노테이션 개념이 많이 포함하고 있습니다. 아래의 글을 먼저 읽고오면 도움이 됩니다. 2023.07.23 - [Java Category/Java] - [JAVA] 리플렉션(Reflection)과 어노테이션(Annotation) [JAVA] 리플렉션(Reflection)과 어노테이션(Annotation) 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 리플렉션 리플렉션이란 실행 도중에 타입(클래스, 인터페이스 등)을 rebugs.tistory.com 컴포넌트 스캔과 의존관계 자동 주입 이전까지 스프링 빈을 등록할 때는 자바 코드의 ..

[Spring 핵심원리 - 기본] 싱글톤 컨테이너
Back-End/Spring2024. 1. 30. 00:34[Spring 핵심원리 - 기본] 싱글톤 컨테이너

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 웹 애플리케이션과 싱글톤 패턴 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 만약 싱글톤 패턴이나 싱글톤 컨테이너를 사용하지 않는다면 아래의 그림과 같이 사용자가 요청을 할 때마다 객체가 생성될 것이다. 싱글톤 패턴에 대한 내용은 아래의 글을 참고해주세요. 2023.01.04 - [Java Category/Java] - [JAVA] 싱글톤(Singleton), final 필드와 상수 하지만 싱글톤 패턴의 문제점이 있다...

[Spring 핵심원리 - 기본] 스프링 컨테이너와 스프링 빈
Back-End/Spring2024. 1. 29. 00:05[Spring 핵심원리 - 기본] 스프링 컨테이너와 스프링 빈

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 스프링 컨테이너 생성 ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 이전에 AppConfig 를 사용했던 방식이 어노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정 클래스를 기반으로 스프링 컨테이너( ApplicationContext )를 만들어보자. //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationConte..

[Spring 핵심원리 - 기본] 객체 지향 원리 적용
Back-End/Spring2024. 1. 28. 00:13[Spring 핵심원리 - 기본] 객체 지향 원리 적용

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 새로운 할인 정책 개발 새로운 할인 정책을 확장해보자. 악덕 기획자가 서비스 오픈 직전에 할인 정책을 변경하고 싶어한다. 기존에는 VIP 고객이 주문 금액에 관계없이 일정 금액(예: 1000원)을 할인받는 방식이었지만, 이제 주문 금액의 일정 비율(예: 10%)을 할인하는 방식으로 변경하고자 한다. 순진 개발자는 처음부터 고정 금액 할인 방식에 반대했지만, 악덕 기획자는 애자일 개발 방식을 인용하며 변화에 대응할 것을 주장한다. 순진 개발자는 유연한 설계를 위해 객체지향 설계 원칙을 이미 준수했기 때문에 상관없다고 생각한다. 순진 개발자가 정말 객체지향 설계 원칙을 잘 준수 했는지 확인해보자. 이번에는 주문한 ..

[Spring 핵심 원리 - 기본] 예제 만들기
Back-End/Spring2024. 1. 27. 00:50[Spring 핵심 원리 - 기본] 예제 만들기

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 회원 도메인 설계 회원 도메인 요구사항 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 회원 도메인 협력 관계 회원 클래스 다이어그램 회원 객체 다이어그램 회원 서비스: MemberServiceImpl 구현 클래스가 하나밖에 없을 때는 Impl을 관례적으로 붙인다고 한다. 회원 도메인 개발 회원 엔티티 회원 등급 package hello.core.member; public enum Grade { BASIC, VIP } 회원 엔티티 package hello.core.member; public cl..

[Spring 핵심원리 - 기본] 객체 지향 설계와 스프링
Back-End/Spring2024. 1. 26. 00:55[Spring 핵심원리 - 기본] 객체 지향 설계와 스프링

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 자바 진영의 표준 기술이었던 Enterprise Java Beans (EJB)는 복잡하고 어려우며 의존적이고 느렸음. 스프링 2002년 로드 존슨 책 출간 EJB의 문제점 지적 지금의 스프링 핵심 개념과 기반 코드가 들어있음 BeanFactory, ApplicationContext, POJO, 제어 역전, 의존관계 주입 단순함의 승리 현재 사실상 표준 기술 EJB 엔티티빈 기술을 대체 -> 하이버네이트 -> JPA JPA는 인터페이스이다. 따라서 구현체가 필요한데, 대표적인 구현체는 하이버네이트, EclipseLink 등이 있다. 스프링 생태계 스프링은 여러 가지 기술들의 모음. 스프링 프레임워크: 스프링의 핵..

image