본문 바로가기

728x90

전체 글

(104)
Dependency Injection - Chapter1 마지막(DIScope, Summary) 앞서 설명했듯이 DI의 중요한 요소는 다양한 책임 관계를 별도의 클래스로 나누는 것입니다. 클래스에서 분리하는 책임 중 하나는 의존성의 인스턴스를 생성하는 작업입니다. Hello DI! 예제에서 Salutation 클래스에서 종속성 생성 책임이 해제된 예제에서 이에 대해 설명했습니다. 대신 이 책임이 애플리케이션의 Main 메서드로 옮겨졌습니다. 클래스가 종속성에 대한 제어권을 포기하면 특정 구현을 선택하는 것 이상의 것을 포기하는 것입니다. 이느 개발자로서 몇 가지 이점을 얻을 수 있습니다. 처음에는 클래스가 어떤 객체가 생성되는지에 대한 제어권을 포기하는 것이 불리한 것처럼 보일 수 있지만, 제어권을 잃는 것이 아니라 다른 곳으로 옮기는 것일 뿐입니다. 개발자는 종속성에 대한 클래스의 제어권을 제거함..
Dependency Injection - What to inject and what not to inject 이전 섹션에서는 DI에 대해 생각하게 만드는 동기를, 또 느슨한 결합이 얼마나 중요한지와 인터페이스에 대한 프로그래밍이 어떻게 초석이 되는지 설명했습니다. 느슨한 결합이 이점이 있다고 확신한다면 모든 것을 느슨하게 결합하고 싶을 수도 있습니다. 전반적으로 좋은 생각입니다. 모듈을 패키징하는 방법을 결정해야 할 때 느슨한 결합은 특히 유용합니다. ***하지만 모든 것을 추상화하여 플러그형으로 만들 필요는 없습니다. *** 이 섹션에서는 종속성을 모델링하는 방법을 결정하는 데 도움이 되는 몇 가지 의사 결정 도구를 소개합니다. 모든 종속성을 동일하게 취급할 필요는 없습니다. 위험을 초래하지 않는 유형과 애플리케이션의 결합 정도를 강화할 수 있는 유형을 구분하는 방법을 아는 것이 중요합니다. 주로 후자에 집중..
새로운 퀘스트가 추가되었습니다. 지난 수요일에 글또 커피챗을 진행하면서 여러 주제로 대화를 나눴다. 그러다 문득 사이드 프로젝트 얘기가 나왔는데, 바빠서 잊고 있었던 앱이 생각이 났다. 이따금 생각이 나는 그 앱은, 나의 20대 중반부터 후반까지 열정과 애정을 아낌없이 쏟아부었던 앱이었다. 언젠가 다시 고쳐서 새로 올려야지 올려야지 하면서도 이제는 예전만 못한 열정과 실행력 때문에 여전히 올드한 UI/UX 그대로인 앱. 이 앱은 내게 많은 경험을 하게 해줬기 때문에 아직도 내 인생에서 잊지 못할 추억 중 하나이기도 하다. 생각이 난 김에 아주 오랜만에 개인 계정으로 앱스토어를 로그인했다. 2014년 5월 8일. 내가 만든 첫 앱이 앱스토어에 등록된 그날을 아직도 잊지 못한다. 혹시나 잘못된 부분이 있을까 몇 번이나 체크하고 심사를 요청..
DependencyInjection : (간단한 예제와 DI 이점) 수많은 프로그래밍 교과서의 전통에 따라 화면에 "Hello DI!"를 출력하는 간단한 콘솔 애플리케이션을 구성해보겠다. 또 DI가 주는 이점에 대해 설명하려 한다. 한 줄의 코드로 작성된 Hello World 예제를 본 적이 있을것이다. 그 쉬운 예제를 여기서는 좀 더 복잡하게 만들어 보겠다. Collaborators 프로그램의 구조는 아래와 같다. 플랫폼/언어와 상관없이 이해를 돕도록 Main메서드를 예시로 든다. func Main() { let wirter: IMessageWriter = ConsoleMessageWriter() let salutation = Salutation(writer) salutation.exclaim() } 콘솔에 메시지를 출력하는 기능을 캡슐화한 IMessageWriter..
DependencyInjection - What, Why, and How(Understanding Perpose of DI, Petterns) Understanding Perpose of DI 앞선 게시물 에서 말했듯 DI는 최종 목표가 아니라 목적을 위한 수단일 뿐이다. DI는 느슨한 결합을 가능하게 하고 이는 코드를 더 쉽게 유지관리 할 수 있게 만든다. 이 중요한 메시지를 전달하기 위해 소프트웨어 설계와 몇 가지 설계패턴을 전기 배선과 비교해 보겠다. 매우 쉬운 비유를 들 예정이므로 비전문가에게 소프트웨어 설계를 설명할 때도 이 비유를 사용하면 좋다. 아래에서 설명하겠지만 이 비유에서는 네 가지 특정 디자인 패턴을 자주 언급할 것이다. 그 이유는 이패턴들이 DI와 관련하여 자주 발생하기 때문이다. 이 책에서는 이 중 세 가지 패턴인 데코레이터, 컴포지트, 어댑터 에 대한 예시를 많이 볼 수 있다. Checking Into a Cheap H..
DependencyInjection - What, Why, and How (DI에 대한 오해) 재작년 부터였던가. 매번 읽자 읽자 하다가 내용도 어렵고 너무 방대한 분량 때문에 미뤘던 책 Dependency Injection Principles Practices and Patterns (종속성 주입 원칙 사례 및 패턴) 을 드디어 읽기 시작했다. 사실 영문으로 되어 있기 때문에 번역기로 돌려서 읽는 중이지만… 한글로 번역된 문장들도 쉽게 읽히지 않는것은 내 머리의 한계를 탓할수 밖에 없다. 어쨌거나. 이 ‘의존성 주입’ 카테고리에 포스팅할 내용들은 Dependency Injection Principles, Practies, and Patterns 을 번역, 요약한 글들과 마치 책에 실린 내용인것 마냥 위장하고 있는 내 의견이 있을 예정이다. 시작은 조금 쉬운 내용으로 시작한다. The Depend..

728x90