본문 바로가기
Proxy pattern, 프록시패턴 Proxy pattern 정의 프록시 패턴은 어떤 다른 객체로 접근하는 것을 통제하기 위해서 그 객체의 대리자의 역할을 하는 객체를 제공하는 패턴 프록시 패턴 적용예시 예를 들어, 우리가 시스템 명령어를 실행하는 객체를 갖고 있을 때 우리가 그 객체를 사용하는 것이라면 괜찮지만, 만약 그 객체를 클라이언트에게 제공하려고 한다면 클라이언트 프로그램이 우리가 원치 않는 파일을 삭제하거나 설정을 변경하는 등의 명령을 내릴 수 있기 때문에 심각한 문제를 초래할 수 있다. 프록시 패턴은 클라이언트에게 접근에 대한 컨트롤을 제공하여 위와 같은 문제를 해결 상품데이터를 저장하는 클래스와 해당 데이터를 가지고 편집하는 프록시 클래스를 따로두어 권한 및 벨리데이션 체크 적용 예시 코드 1. CommandExecutorI.. 2022. 7. 19.
Template method pattern, 템플릿 메소드 패턴 Template method pattern 정의 템플릿 메소드 패턴은 알고리즘의 골격을 정의하고 알고리즘의 일부 단계를 서브클래스에서 구현함으로써, 알고리즘의 구조는 그대로 유지하면서 여러곳에서 다른형태로 사용이 필요한 경우 유용하게 사용할수 있다. 전체적인 레이아웃을 통일하지만 상속받은 클래스는 훅 메소드를 이용하여 확장할 수 있도록 유연성을 주는 디자인 패턴 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 한다. 예제 1. 추상클래스 protocol Ramen { func makeRamen() // template method func boilWater() func putNoodle.. 2022. 5. 16.
Unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.4.1. iOS 15.4.1 버전에서 App Tracking Transparency permission request 프롬프트 창이 뜨지 않는다는 사유로 앱 심사가 거절이 났었던 이슈 리포트 위의 사유가 기존에 거절났었던 사유도 아니고, app tracking transparency 수정사항도 없었고, 테스트폰(iphone13 with ios 15.4.1)에서는 도저히 거절 사유를 시현 해볼수가 없었다 .. 이리저리 삽질해본결과, ios 14버전 이상에서는 ATTrackingManager.requestTrackingAuthorization 을 통해서 유저에게 IDFA 접근권한을 프롬프트로 요청해야하는데 오래된 디바이스 ex) iphone6 with iOS 15.4.1 에서는 앱을 지웠다가 재설치해도 공식문서( h.. 2022. 5. 13.
Abstract Factory Pattern, 추상 팩토리 패턴 Abstract Factory Pattern ? 객체를 생성하려면 해당 객체를 구체적으로 정의한 코드에 대해 소스 코드 의존성이 발생 ! 구체적인 클래스에 의존하지 않고, 서로 연관되거나 의존적인 객체들의 조합을 생성하는 인터페이스를 제공하는 패턴 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 "군"을 생성하기 위한 인터페이스를 제공합니다. Application - Abstract Factory Pattern AbstractFactory : 실제 팩토리 클래스의 공통 인터페이스 ConcreteFactoryImpl : 구체적인 팩토리 클래스로 AbstractFactory 클래스의 추상 메서드를 오버라이드함으로써 구체적인 제품을 생성한다. AbstractProduct : 제.. 2022. 5. 11.
Factory Method Pattern, 팩토리 메소드 패턴 Factory ? - 객체 생성 부분을 전담하는 클래스 Factory 장점 - 클래스를 생성하는 작업을 팩토리에 캡슐화시켜 놓았기 때문에, 수정 사항이 있을 때 factory class만 수정하면 된다 - 클래스를 생산하는 부분과 사용하는 부분을 분리하여 느슨하게 결합 -> 유연성과 확장성 Factory Method Pattern ? - 객체 생성만을 처리하는 메소드를 인터페이스로 선언하고 서브클래스에서 이것(팩토리)을 구현하여, 어떤 객체를 생성할지는 서브클래스에서 결정하도록하는 방식 Factory Method Pattern 장점 - 객체를 생성하는 부분을 서브 클래스에서 직접 구현하므로, 생성하는 객체를 서브클래스에서 마음대로 변경할 수 있다 -> 큰 유연성 제공 - 클래스를 생산하는 부분과 사용하는.. 2022. 5. 9.
Facade Pattern 파사드 패턴이란? 서브시스템에 있는 인터페이스 집합에 대해 하나의 통합된 인터페이스(Wrapper)로 제공하는 것 파사드 패턴 장점 장점1. 사용이 간편하다. 클라이언트 입장에서는 각 서브 시스템들을 하나하나 호출할 필요가 없이 인터페이스 메서드 하나만 호출하면 된다. 장점2. 유연성이 좋다. 클라이언트와 서브시스템이 서로 긴밀하게 연결되어 있지 않기 때문에 서브시스템에 변화가 있을 때 클라이언트에 영향이 가지 않는다. 참고자료 https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8616098823&cate_cd= https://flower0.tistory.com/432 2022. 5. 4.