Spring Core
-
[Spring] DI 의존성 주입Spring Core 2024. 7. 2. 23:10
의존성 주입 DI (Dependency Injection) DI란 의존 관계 주입 혹은 의존성 주입이라고 불린다Spring은 객체의 의존 관계를 의존 관계 주입을 통해 관리한다스프링 컨테이너에서 객체의 생명주기를 관리하고 객체의 의존관계도 관리한다 왜 필요할까? public interface Fruit {}public class Peach implements Fruit{}public class WaterMelon implements Fruit {}public class Store { private final Fruit fruit; public Store() { this.fruit = new Peach(); }} Store 클래스에서 생성자를 보면 필드의 fruit가 Peac..
-
[Spring] IOC 제어의 역전Spring Core 2024. 7. 1. 11:59
제어의 역전 IOC(Inversion of Control)제어의 역전이라는 의미이고 제어의 흐름을 바꾼다고 한다메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아닌 외부에서 결정 되는 것 이다 코드로 보자 UserSevicepublic interface UserService { User findById(Long userId);} UserServiceImplpublic class UserServiceImpl implements UserService { private final UserRepository userRepository; public UserServiceImpl(UserRepository userRepository) { this.userRepository = us..
-
[Spring] 스프링 빈(Bean) 등록 방법Spring Core 2024. 5. 30. 16:44
이글은 Spring Bean 등록 하는 방법을 설명하는 글 이다이거에 앞서 Spring Bean을 알고 싶으면 아래 글을 참고 하면 된다https://hyeonni.tistory.com/65 [Spring] 스프링 빈(Bean) 이란?이글은 Spring Bean을 설명하는 글이다 이거에 앞서 Java Bean을 알고 싶으면 아래 글을 참고 하면 된다https://hyeonni.tistory.com/61 [Spring] Java Bean? Spring Bean?이글은 Spring Bean을 설명하기에 앞서 Java Bean이hyeonni.tistory.comSpring Bean 등록xml에 등록자바 설정어노테이션ex) Player.javapackage com.example;import lombok.Ge..
-
[Spring] 스프링 빈(Bean) 이란?Spring Core 2024. 5. 30. 15:22
이글은 Spring Bean을 설명하는 글이다 이거에 앞서 Java Bean을 알고 싶으면 아래 글을 참고 하면 된다https://hyeonni.tistory.com/61 [Spring] Java Bean? Spring Bean?이글은 Spring Bean을 설명하기에 앞서 Java Bean이 무엇인지 설명하는 글입니다 Java BeanJava로 작성한 객체이고 데이터 표현을 목적으로 한다 생성 관례1. 직렬화가 가능해야 함 다른 데이터 포맷hyeonni.tistory.comSpring Bean?스프링 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. 스프링 컨테이너가 관리하는 자바 객체이다 스프링 컨테이너는 한개 이상의 빈(Bean)을 관리한다즉, 빈은 인스턴스..
-
[Spring] Java Bean? Spring Bean?Spring Core 2024. 5. 28. 15:58
이글은 Spring Bean을 설명하기에 앞서 Java Bean이 무엇인지 설명하는 글입니다 Java BeanJava로 작성한 객체이고 데이터 표현을 목적으로 한다 생성 관례1. 직렬화가 가능해야 함 다른 데이터 포맷으로 변환이 가능해야 한다(직렬화)API에서 결과값들을 반환할때 JSON이나 XML 같은 다른 데이터 포맷으로 변환할 수 있다{ name : "이름", age : 26} 2. 기본 생성자를 가진다 Default 생성자를 가져야 한다 (직렬화 때문)자바에서는 클래스에 다른 생성자를 추가 하지 않으면 기본 생성자(Default constructor)가 default로 있다클래스에 다른 생성자가 존재하면 기본 생성자를 명시적으로 추가해야 합니다.@Getter@Setterpublic ..
-
SOLID 원칙Spring Core 2024. 4. 30. 00:08
- 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것 SRP 단일 책임 원칙- 한 클래스는 하나의 책임만 가져야 한다- 하지만 하나의 책임이라는 것은 모호하다- 클 수 있고, 작을 수 있다- 문맥과 상황에 따라 다르다- 여기에서 중요한 기준은 변경이다 -> 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP 개방 - 폐쇄 원칙- 소프트웨어 요소는 확장에는 열려 있고 변경에는 닫혀 있어야 한다- 다형성을 활용하면 된다- 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현문제점- 구현 객체를 변경하려면 클라이언트 코드를 변경해야 한다- 객체를 생성하고 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다-> 이걸 스프링 컨테이너가 해준다 LSP 리스코프 치..