뛰어난 성능을 가진
웹 앱을 만들어 봅시다.

순수 자바스크립트 혹은 모던 프레임웍 기반 웹 앱을 위한
디자인 패턴, 렌더링 패턴, 성능 개선 포인트들을 총망라 하였습니다.

원작자: Lydia Hallie, Addy Osmani

Design Patterns

Design Pattern 소개

Design Pattern 소개

디자인 패턴에 대한 소개

Singleton 패턴

Singleton 패턴

앱 전체에서 공유 및 사용되는 단일 인스턴스

Proxy 패턴

Proxy 패턴

대상 객체에 대하여 읽기 및 쓰기를 직접 제어한다

Provider 패턴

Provider 패턴

여러 자식 컴포넌트 간에 데이터를 공유한다

Prototype 패턴

Prototype 패턴

동일 타입의 여러 객체들이 프로퍼티를 공유한다

Container/Presentational 패턴

Container/Presentational 패턴

비즈니스 로직으로부터 뷰를 분리하여 관심사의 분리(SoC) 를 강제한다

Observer 패턴

Observer 패턴

Observable을 활용해 Subscriber에게 이벤트 발생을 알린다

Module 패턴

Module 패턴

코드를 재사용 가능하면서도 작게 나눈다

Mixin 패턴

Mixin 패턴

상속 없이 객체에 기능을 추가한다

Mediator/Middleware 패턴

Mediator/Middleware 패턴

중재자 역할을 하는 객체 통해 컴포넌트들이 서로 통신하도록 한다

HOC 패턴

HOC 패턴

앱 전반적으로 재사용 가능한 로직을 prop으로 컴포넌트에게 제공한다

Render Props 패턴

Render Props 패턴

JSX 엘리먼트를 props를 통해 컴포넌트에게 전달한다

Hooks 패턴

Hooks 패턴

앱 전체에서 함수를 통해 상태를 가진 로직을 여러 컴포넌트들에서 사용한다

Flyweight 패턴

Flyweight 패턴

동일한 객체를 다룰 때 이미 존재하는 인스턴스를 재사용한다

Factory 패턴

Factory 패턴

객체를 생성하는 팩토리 함수를 사용한다

Compound 패턴

Compound 패턴

하나의 작업을 위해 여러 컴포넌트를 만들어 역할을 분담하게 한다

Command 패턴

Command 패턴

명령을 처리하는 객체를 통해 메서드와 실행되는 동작의 결합도를 낮출 수 있다

Learning JavaScript Design Patterns

Learning JavaScript Design Patterns

ES2015+ 이상의 문법으로 업데이트 된 자바스크립트 디자인 패턴 책

Rendering Patterns

Performance Patterns

Case Studies

이 사이트를 어떻게 활용할 수 있을까요?

이 사이트는 여러분의 앱을 개선할 여러 디자인 패턴이나 팁 혹은 기법들을 정리하고 있습니다.

참고로 디자인 패턴들은 "지시적"이기 보다 "설명적"입니다. 개발자들이 오랫동안 반복적으로 겪었던 문제와 해결을 담고 있지만, 모든 시나리오에 꼭 맞는 해결책을 제시하지는 않습니다.

Patterns.dev는 체크리스트라기 보단, 앱 개선의 인지범위를 넓히기 위한 패턴 모음에 초점이 맞춰져 있습니다.

Practical examples on CodeSandbox

Codesandbox

Learn Visually with our animations

Flow chart

디자인 패턴 모음

디자인 패턴은 소프트웨어 개발의 근본적인 부분으로, 소프트웨어 디자인에서 자주 발생하는 문제에 대한 일반적인 해결책을 제공합니다.

es2017 optimized for react developers a focus on web performance

현대적 관점의 디자인 패턴들을 제공합니다

디자인 패턴은 종종 불필요한 복잡성을 추가한다는 시선이 있습니다.

하지만 특정 문제들을 해결해 주고, 종종 현재 상태의 문제를 개발자에게 드러내는 데 도움을 줍니다.

만약 여러분의 프로젝트에 이런 문제들이 없다면 적용할 필요는 없습니다.

여러분이 성능이 뛰어난 웹 앱을 개발할 수 있도록 돕고 싶습니다

웹 성능 패턴에 대해 알아보고, 코드를 더 효율적으로 로드하는 방법을 배워보세요.

사용자 경험을 로드하거나 렌더링하는 현대적인 접근 방식에 대해 어떻게 생각해야 할지 모르시나요? 저희가 도와드리겠습니다.

performance