분류 전체보기
-
8장에서 배운 의존성 관리기법들을 정리하는 챕터라고 생각이름을 가진 설계 원칙을 통해 기법들을 정리 개방-폐쇄 원칙(open-closed principle)(OCP)확장 가능하고 변화에 유연하게 대응할 수 있는 설계확장에 열려 있다 : '동작'을 추가해서 기능을 확장수정에 대해 닫혀 있다 : '코드'를 수정하지 않고 동작을 추가하거나 변경유연한 설계란 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라의존성 관점에서 개방-폐쇄 원칙을 따르는 설계- 컴파일타임 의존성은 유지하면서 런타임 의존성의 가능성을 확장하고 수정할 수 있는 구조 추상화가 핵심이다개방-폐쇄 원칙의 핵심은 추상화에 의존하는 것추상화란 핵심적인 부분만 남기고..
[Object] 9장 : 유연한 설계8장에서 배운 의존성 관리기법들을 정리하는 챕터라고 생각이름을 가진 설계 원칙을 통해 기법들을 정리 개방-폐쇄 원칙(open-closed principle)(OCP)확장 가능하고 변화에 유연하게 대응할 수 있는 설계확장에 열려 있다 : '동작'을 추가해서 기능을 확장수정에 대해 닫혀 있다 : '코드'를 수정하지 않고 동작을 추가하거나 변경유연한 설계란 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라의존성 관점에서 개방-폐쇄 원칙을 따르는 설계- 컴파일타임 의존성은 유지하면서 런타임 의존성의 가능성을 확장하고 수정할 수 있는 구조 추상화가 핵심이다개방-폐쇄 원칙의 핵심은 추상화에 의존하는 것추상화란 핵심적인 부분만 남기고..
2024.08.26 -
git에서 작업을 하다 보면, 작업 내용이 처음에 예상한 git branch명과 상이해지는 상황이 발생할 수 있다.이러한 경우에 브랜치명을 변경하여 작업내용과 브랜치명 통일을 해주는 게 좋은데어떻게 브랜치명을 바꿀 수 있는지 알아보자. checkout 되어 있는 브랜치명 변경target이 될 브랜치의 이름만 명시해 주면 된다현재 브랜치명 : feature/test/my-job$ git branch -m feature/new-test/my-job2 master/main과 같은 다른 브랜치에서 브랜치명 변경 현재 브랜치명 : master$ git branch -m {current-name} {target-name}예시 $ git branch -m feature/test/my-job feature/new-te..
[Git] 브랜치명 변경하기git에서 작업을 하다 보면, 작업 내용이 처음에 예상한 git branch명과 상이해지는 상황이 발생할 수 있다.이러한 경우에 브랜치명을 변경하여 작업내용과 브랜치명 통일을 해주는 게 좋은데어떻게 브랜치명을 바꿀 수 있는지 알아보자. checkout 되어 있는 브랜치명 변경target이 될 브랜치의 이름만 명시해 주면 된다현재 브랜치명 : feature/test/my-job$ git branch -m feature/new-test/my-job2 master/main과 같은 다른 브랜치에서 브랜치명 변경 현재 브랜치명 : master$ git branch -m {current-name} {target-name}예시 $ git branch -m feature/test/my-job feature/new-te..
2024.08.24 -
객체지향 설계의 핵심은협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는 데 있다의존성 이해하기변경과 의존성의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다의존성은 함께 변경될 수 있는 가능성을 의미, 모든 경우에 의존성이 전이되는 것은 아니다의존성이 실제로 전이될지 여부는 견경의 방향과 캡슐과의 정도에 따라 달라진다. 런타임 의존성과 컴파일타임 의존성런타임 의존성 : 객체 사이의 의존성 컴파일타임 의존성 : 클래스 사이의 의존성 런타임 의존성과 컴파일타임 의존성이 다를 수 있다 컨텍스트 독립성클래스가 사용될 특정한 문맥에 대해 최소한의 가정만으로 이뤄져 있다면다른 문맥에서 재사용하기가 더 수월해진다. 의존성 해결컴파일타임 의존성을 실행 컨텍스트에 맞는 적절한 런타임 의존..
[Object] 8장 : 의존성 관리하기객체지향 설계의 핵심은협력을 위해 필요한 의존성은 유지하면서도 변경을 방해하는 의존성은 제거하는 데 있다의존성 이해하기변경과 의존성의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다의존성은 함께 변경될 수 있는 가능성을 의미, 모든 경우에 의존성이 전이되는 것은 아니다의존성이 실제로 전이될지 여부는 견경의 방향과 캡슐과의 정도에 따라 달라진다. 런타임 의존성과 컴파일타임 의존성런타임 의존성 : 객체 사이의 의존성 컴파일타임 의존성 : 클래스 사이의 의존성 런타임 의존성과 컴파일타임 의존성이 다를 수 있다 컨텍스트 독립성클래스가 사용될 특정한 문맥에 대해 최소한의 가정만으로 이뤄져 있다면다른 문맥에서 재사용하기가 더 수월해진다. 의존성 해결컴파일타임 의존성을 실행 컨텍스트에 맞는 적절한 런타임 의존..
2024.08.21 -
Listener Error Handlers@KafkaListener의 attribute -> errorHandlerKafkaListenerErrorHandler 인터페이스를 구현@KafkaListener(topics = "test.topic", errorHandler = "testListenerErrorHandler")public void test(@Payload Param param) { // ....}@Componentpublic class TestListenerErrorHandler implements KafkaListenerErrorHandler { @Override public Object handleError(Message message, ListenerExecutionFail..
[Kafka] Spring Kafka - handling exception(KafkaListenerErrorHandler, DefaultErrorHandler)Listener Error Handlers@KafkaListener의 attribute -> errorHandlerKafkaListenerErrorHandler 인터페이스를 구현@KafkaListener(topics = "test.topic", errorHandler = "testListenerErrorHandler")public void test(@Payload Param param) { // ....}@Componentpublic class TestListenerErrorHandler implements KafkaListenerErrorHandler { @Override public Object handleError(Message message, ListenerExecutionFail..
2024.08.17