Spring
-
앞에서 관계 설정 책임의 분리를 위해서 도입된 ObjectFactory의 기능을 스프링의 BeanFactory가 대체한다.(https://kkang-joo.tistory.com/142) 의존관계 주입(Dependency Injection)원칙과 패턴에서 설명한 제어의 역전(IoC)은 스프링의 동작원리를 정확하게 설명하기에는 너무 일반적인 프레임워크 동작원리를 설명하는 용어이다. 오프젝트의 의존관계에 대한 책임을 외부 오브젝트가 담당하게 하는 것을 의존관계 주입(DI)이라는 새로운 용어가 제안되었다. 스프링 컨테이너애플리케이션을 구성하는 오브젝트를 만들어서 담아두고 필요할 때 사용하도록 기능을 제공 - 컨테이너 스프링 컨테이너는 Bean이라고 불리는 애플리케이션을 구성하는 오브젝트를 관리하는 기능을 담당..
토비의 스프링 6 - 스프링 컨테이너와 의존관계 주입앞에서 관계 설정 책임의 분리를 위해서 도입된 ObjectFactory의 기능을 스프링의 BeanFactory가 대체한다.(https://kkang-joo.tistory.com/142) 의존관계 주입(Dependency Injection)원칙과 패턴에서 설명한 제어의 역전(IoC)은 스프링의 동작원리를 정확하게 설명하기에는 너무 일반적인 프레임워크 동작원리를 설명하는 용어이다. 오프젝트의 의존관계에 대한 책임을 외부 오브젝트가 담당하게 하는 것을 의존관계 주입(DI)이라는 새로운 용어가 제안되었다. 스프링 컨테이너애플리케이션을 구성하는 오브젝트를 만들어서 담아두고 필요할 때 사용하도록 기능을 제공 - 컨테이너 스프링 컨테이너는 Bean이라고 불리는 애플리케이션을 구성하는 오브젝트를 관리하는 기능을 담당..
2024.11.06 -
지금까지 스프링을 제외하고 만든 코드에서 객체지향 설계원칙과 객체지향 디자인 패턴이 어떤 것이 있었는지 알아보자 개방-폐쇄 원칙(Open-Closed Principle)(OCP)- 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. 인터페이스를 이용하여 추가적인 동작을 작성하는 부분 -> 확장확장을 통해 새로 추가된 기능을 사용하기 위해서 caller의 코드가 변경되면 안 된다. -> 폐쇄 높은 응집도와 낮은 결합도(High Coherence and low coupling)- 응집도가 높다 : 하나의 모듈이 하나의 책임 또는 관심사에 집중돼 있다- 결합도가 낮다 : 느슨하게 연결되어 있다(구체 클래스에 대한 선언이 적다) 전략 패턴(Strategy Pattern)객체들이 할 수 있는..
토비의 스프링 6 - 원칙과 패턴지금까지 스프링을 제외하고 만든 코드에서 객체지향 설계원칙과 객체지향 디자인 패턴이 어떤 것이 있었는지 알아보자 개방-폐쇄 원칙(Open-Closed Principle)(OCP)- 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. 인터페이스를 이용하여 추가적인 동작을 작성하는 부분 -> 확장확장을 통해 새로 추가된 기능을 사용하기 위해서 caller의 코드가 변경되면 안 된다. -> 폐쇄 높은 응집도와 낮은 결합도(High Coherence and low coupling)- 응집도가 높다 : 하나의 모듈이 하나의 책임 또는 관심사에 집중돼 있다- 결합도가 낮다 : 느슨하게 연결되어 있다(구체 클래스에 대한 선언이 적다) 전략 패턴(Strategy Pattern)객체들이 할 수 있는..
2024.11.03 -
상속을 통한 확장기존 서비스 도메인에 다양한 확장 기능을 붙이고 싶을 때 몇몇 기능들은 그대로 동일하게 쓰고, 몇몇 기능만 클래스별로 구분하고 싶은 경우가 있을 수 있다.이러한 경우에 abstract 키워드를 이용한 상속을 사용하면 도움이 될 수 있다. 클래스 별로 구분하고 싶은 기능은 abstract method로 선언만 해두고구현 클래스에서 해당 abstract class를 extends 하면 된다. 이 또한 오브젝트 책에서 언급된 내용이었다.상속을 통해 중복 코드를 제거할 수 있지만, 부모가 수정되는 경우 자식에게도 영향을 끼칠 수 있다(캡슐화를 약화시키고 결합도를 높인다)(https://kkang-joo.tistory.com/135) 클래스의 분리 상속을 사용하면 겪는 다양한 단점으로, 상속을..
토비의 스프링 6 - 상속을 통한 확장상속을 통한 확장기존 서비스 도메인에 다양한 확장 기능을 붙이고 싶을 때 몇몇 기능들은 그대로 동일하게 쓰고, 몇몇 기능만 클래스별로 구분하고 싶은 경우가 있을 수 있다.이러한 경우에 abstract 키워드를 이용한 상속을 사용하면 도움이 될 수 있다. 클래스 별로 구분하고 싶은 기능은 abstract method로 선언만 해두고구현 클래스에서 해당 abstract class를 extends 하면 된다. 이 또한 오브젝트 책에서 언급된 내용이었다.상속을 통해 중복 코드를 제거할 수 있지만, 부모가 수정되는 경우 자식에게도 영향을 끼칠 수 있다(캡슐화를 약화시키고 결합도를 높인다)(https://kkang-joo.tistory.com/135) 클래스의 분리 상속을 사용하면 겪는 다양한 단점으로, 상속을..
2024.10.27 -
2번째 챕터의 첫 시작은 이론으로 시작한다.오브젝트, 의존관계가 무엇인지 정의한다. 오브젝트오브젝트와 클래스는 다르다객체지향의 사실과 오해, 오브젝트 책을 통해서 많이 들어서 해당 내용은 인지하고 있다. 클래스는 오브젝트의 청사진과 같다. 클래스의 인스턴스 = 오브젝트이렇게 표현하면 둘의 관계가 보인다.추가적으로 자바의 배열도 오브젝트라고 한다. 의존관계 의존관계도 최근 보고 있는 오브젝트 챕터에서 언급된 내용이다. 컴파일의 의존관계, 런타임의 의존관계클래스를 추상화시켜 거기에 의존하라(런타임 의존관계가 달라짐) 의존 관계를 가지고 있으면 callee가 변경되면 caller에도 영향을 미칠 수 있다. 관심사의 분리Separation of Concerns (SoC)코드를 읽으며 무슨 일을 하는지 한참..
토비의 스프링 6 - 오브젝트와 의존관계2번째 챕터의 첫 시작은 이론으로 시작한다.오브젝트, 의존관계가 무엇인지 정의한다. 오브젝트오브젝트와 클래스는 다르다객체지향의 사실과 오해, 오브젝트 책을 통해서 많이 들어서 해당 내용은 인지하고 있다. 클래스는 오브젝트의 청사진과 같다. 클래스의 인스턴스 = 오브젝트이렇게 표현하면 둘의 관계가 보인다.추가적으로 자바의 배열도 오브젝트라고 한다. 의존관계 의존관계도 최근 보고 있는 오브젝트 챕터에서 언급된 내용이다. 컴파일의 의존관계, 런타임의 의존관계클래스를 추상화시켜 거기에 의존하라(런타임 의존관계가 달라짐) 의존 관계를 가지고 있으면 callee가 변경되면 caller에도 영향을 미칠 수 있다. 관심사의 분리Separation of Concerns (SoC)코드를 읽으며 무슨 일을 하는지 한참..
2024.10.19