Skip to main content

박수완

1. 📌 핵심 개념 정리

✅ 요약하기

  1. 각자도사룰 해당세운다면?

    챕터에

    도시가 돌아가는 또 다른 이유는 적절한 추상화와 모듈화 때문이다. 그래중요큰 그림을 이해다고 느낀못할지라도인과 개인 아이디어를 간략하게 정리하 개선구성요소는 전,효율적으로 후에돌아간다. 깨끗 예시 코드를 비교구현 개념을낮은 설명합니추상화 수준에서 관심사를 분리하기 쉬워진다.

    1. 한 줄 요약 내용

      1. 개선시스템 제작과 시스템 사용을 분리하라

    개선public Service 코드getService() {
        if (service == null)
            service = new MyServiceImpl(...); // Good enough default for most cases?
        return service;
    }
    

    개선getService 메서드가 MyServiceImpl과 생성자 인수에 명시적으로 의존한다. 런타임 로직에서 MyServiceImPl 객체를 코드사용하지 않더라고 존성을 해결하지 않으면 컴파일이 안 된다. 테스트도 문제다 MyService 메서드를 호출하기 전에 적절한 테스트 전용 객체이나 service 필드에 할당해야 한다. 또한 일반 런타임 로직에 다 객체 생성 로직섞어 놓은 탓에 모든 실향 결로도 테스트해야 한다. 책임이 둘이라는 말은 메서드가 성합니업을 두 가지 이상 수행한다는 의미다. 즉 단일 책임 원칙을 깬다는 말이다.

    • 개선Main 분리


    생성과 사용을 분리하는 가장 간단한 방법은 모든 생성과 관련된 로직을 main으로 옮기는 것이다. 어플리케이션에서는 사용할 모등 객체들이 main에서 잘 생성되었을 것이라 여기고 나머지 디자인에 집중할 수 있다.
    • 팩토리


    객체의 생성 시기를 직접 결정하려면 main에서 완성된 객체를 던져주기 보다 factory 객체를 만들어서 던져주자. 만약 자세한 구현을 숨기고 싶다면 Abstract Factory 패턴을 사용하자.

    • 의존성 주입

      의존성 주입은 제어 역전 기법을 의존성 관리에 적용한 메커니즘이다. 제어 역전에서는 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘긴다. 새로운 객체는 넘겨받은 책임만 맡으므로 단일 책임 원칙을 지키게 된다.

    개선MyService myService 코드= (MyService)(jndiContext.lookup(“NameOfMyService”));
    

    개선호출하는 객체는 실제로 반환되는 객체코드에유형을 제어하지 않는다.신 호출하는 객체는 의존성을 능동적으로 해결한다.

진정설명의존성 주입은 여기에서 한 단계 더 나아가 완전히 수동적인 형태를 지닌다. 의존성필요로 하는 객체가 직접 의존합니을 해결하는 대신 생성자 등을 통해 DI 컨테이너가 해당 의존성을 해결하도록 도와준다.


  1. 확장

    소프트웨어 요약시스템은 내용
    물리적인 .

    .
    .

  1. 한 줄 요약 내용
    .
    .
    .

2. 🤔 이해가 어려운 부분

🔍 질문하기

책을 읽으며 이해하기 어려웠던 개념이나 명확하지 않았던 내용을 정리합니다.

  1. 개념 또는 원칙의 이름
    • 어려웠던 부분
      해당 개념이 헷갈리거나 명확하지 않았던 점을 구체적으로 설명합니다.
    • 궁금한 점
      해당 개념이 어떤 원리로 동작하는지, 실무에서 어떻게 활용되는지 등을 질문 형태로 정리합니다.

  1. 개념 또는 원칙의 이름
    • 어려웠던 부분
      .
    • 궁금한 점
      .

  1. 개념 또는 원칙의 이름
    • 어려웠던 부분
      .
    • 궁금한 점
      .

3. 📚 참고 사항

📢 논의하기

관련된 자료가 있다면 공유하고, 더 깊이 논의하고 싶은 아이디어나 의견을 정리합니다.

  1. 관련 자료 공유
    • 추가 자료
      관련 블로그 글이나 공식 문서 링크를 제공합니다.

  1. 논의하고 싶은 주제
    • 주제
      논의하고 싶은 내용을 간략히 정리합니다.
    • 설명
      논의하고 싶은 이유를 작성합니다.