From c0a313736d7dd580e6c0d10cfc39b8ae4fcc8910 Mon Sep 17 00:00:00 2001 From: SangBeom Park Date: Sun, 3 Nov 2024 19:13:14 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=80=EB=8F=85=EC=84=B1=20=EC=A2=8B?= =?UTF-8?q?=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\203\201\353\262\224.md" | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git "a/\354\261\225\355\204\260_7/\354\203\201\353\262\224.md" "b/\354\261\225\355\204\260_7/\354\203\201\353\262\224.md" index f7fd4f9..0f19d35 100644 --- "a/\354\261\225\355\204\260_7/\354\203\201\353\262\224.md" +++ "b/\354\261\225\355\204\260_7/\354\203\201\353\262\224.md" @@ -12,10 +12,12 @@ 퍼사드는 jQuery에서 흔히 볼 수 있는 구조 패턴 -장점 : 사용하기 쉽다, 패턴 구현에 필요한 코드 양이 적다 -단점은 안적혀 있음 ㄷ ㄷ +### 장점 +사용하기 쉽다, 패턴 구현에 필요한 코드 양이 적다 +### 단점 +은 안적혀 있음 ㄷ ㄷ -> 복잡한 내부를 감추고 사용자에게 단순한 인터페이스를 제공한다는 점에서 선언적 프로그래밍 기조와 비슷하다고 느낌 +> 퍼사드 패턴은 복잡한 내부를 감추고 사용자에게 단순한 인터페이스를 제공한다는 점에서 선언적 프로그래밍 기조와 비슷하다고 느낌 ## 믹스인 패턴 @@ -46,11 +48,13 @@ const MyMixins = superclass => > return > ``` -### 믹스인 패턴의 장단점 -장점: 함수의 중복을 줄이고 재사용성을 높인다 - - 기능을 공유하여 중복을 피하고 고유 기능을 구현하는데 집중 가능 +### 장점 +함수의 중복을 줄이고 재사용성을 높인다 +- 기능을 공유하여 중복을 피하고 고유 기능을 구현하는데 집중 가능 + +### 단점 +프로토타입 오염과 함수의 출처에 대한 불확실성 때문에 논쟁의 여지가 있긴하다 함 -단점: 프로토타입 오염과 함수의 출처에 대한 불확실성 때문에 논쟁의 여지가 있긴하다 함 리액트에서도 es6 클래스 도입 이전에는 컴포넌트 기능 추가하기 위해 믹스인을 사용하곤 했는데, 컴포넌트의 유지보수와 재사용을 복잡하게 만든다는 이유로 반대하고 HOC나 hooks 사용을 장려했다고 하네요 @@ -70,8 +74,12 @@ const MyMixins = superclass => 이는 다시 말해, 서브 클래싱 대신 베이스 객체에 속성이나 메서드를 추가하여 간소화 하겠다는 아이디어다! -장점: 유연하고 투명하게 사용될 수 있다! 베이스 객체가 변경될 걱정없이 사용 가능! -단점: 잘 관리하지 않으면 애플리케이션 구조를 무척 복잡하게 만들 수도 있다 => 이건 충분한 문서화나 패턴에 대한 이해도를 높임으로써 해결 가능하다고 함 +### 장점 +유연하고 투명하게 사용될 수 있다! 베이스 객체가 변경될 걱정없이 사용 가능! + +### 단점 +잘 관리하지 않으면 애플리케이션 구조를 무척 복잡하게 만들 수도 있다 +- 이건 충분한 문서화나 패턴에 대한 이해도를 높임으로써 해결 가능하다고 함 ## 플라이웨이트 패턴 연관된 객체끼리 데이터를 공유하게 하면서 애플리케이션의 메모리를 최소화하는 패턴