Flyweight Pattern
·
Frontend/JS Patterns
Flyweight 패턴은 비슷한 객체를 대량으로 생성할 때 메모리를 보존하는 데 유용한 방법입니다. class Book { constructor(title, author, isbn) { this.title = title; this.author = author; this.isbn = isbn; }}const books = new Map(); // 중복된 책은 제외됨const bookList = []; // 중복된 책 포함 - 즉, 복사본이 있음.const addBook = (title, author, isbn, availability, sales) => { const book = { ...createBook(title, author, isbn), sales, avail..
Factory Pattern
·
Frontend/JS Patterns
The term “Factory Pattern” in JavaScript (and in software design in general) comes from the concept of a “factory” in real life, where a factory isa place where objects (products) are created.In the context of software design, the Factory Pattern is a creational design pattern that provides an interface for creating objects without specifying the exact class of object that will be created. 즉, ne..
Command Pattern
·
Frontend/JS Patterns
특정 작업을 실행하는 객체와메서드(아래의 placeOrder 등)를 호출하는 객체를 분리할 수 있습니다.class OrderManager() { constructor() { this.orders = [] } placeOrder(order, id) { this.orders.push(id) return `You have successfully ordered ${order} (${id})`; } trackOrder(id) { return `Your order ${id} will arrive in 20 minutes.` } cancelOrder(id) { this.orders = this.orders.filter(order => order.id !== id) retu..
peerDependencies 와 overrides 의 차이점(package management)
·
Computer Science/Terminology and Concepts
바로 요약peerDependencies - 다른 패키지들의 의존 관계도 만족되는 경우에만 peerDependencies 의 설정된 버전이 사용된다.overrides - 의존 관계와 상관없이 overrides 를 사용하면 항상 설정된 버전이 사용된다.패키지 관리에서 peerDependencies와 overrides의 차이는 버전 처리 및 강제 적용 방식에 관한 것입니다.아래는 그 차이에 대한 설명입니다:peerDependencies• 목적: 주로 패키지가 호스트 프로젝트(또는 다른 라이브러리)가 특정 버전의 의존성을 제공할 것으로 기대할 때 사용됩니다.• 버전 유연성: peerDependencies는 의존성을 자체적으로 설치하지 않습니다. 대신, 호스트 애플리케이션이 사용해야 하는 요구된 버전 범위를 명시..
테스트코드 작성 가이드
·
Frontend/Testing
목차왜 테스트해야 하는가무엇을 테스트해야 하는가좋은 테스트란규모별 테스트 전략테스트코드 Q&A 그리고 팁테스트코드 작성 스타일 가이드 1. 왜 테스트해야 하는가개발자는 이미 개발 과정에서 수많은 테스트를 진행하고 있으며,엄밀히 말해서 개발자가 소스 코드를 입력/수정하고 저장한 다음 진행하는 일은대부분 테스트와 관련이 있다고 볼 수 있습니다. 문제는 이러한 테스트가 대부분 반복적인 작업이라는 것입니다.따라서 반복된 테스트 작업을 코드로 작성해서 자동화를 하게 되면테스트에 대한 비용이 줄어들고, 테스트가 누락되거나 잘못 검증하는 등의 실수도 방지할 수 있습니다. 또한 코드 수정에 대한 두려움이 없어져 적극적으로 리팩토링 등의 코드 개선을 할 수 있게 되고,이는 곧 코드의 품질의 향상으로 이어지게 됩니다.R..
[프론트엔드 성능 최적화 가이드] 4장 이미지 갤러리 최적화
·
Frontend/Perfomance Optimization
학습할 최적화 기법이미지 지연 로딩이미지 지연 로딩 라이브러리 적용레이아웃 이동 피하기화면상의 요소 변화로 레아이웃이 밀리는 현상리덕스 렌더링 최적화병목 코드 최적화메모이제이션 적용이미지 지연 로딩react-lazyload라는 라이브러리를 이용하여 빠르게 이미지 지연 로딩을 적용해 볼 것입니다.일반 컴포넌트도 이 안에 넣어 지연 로드할 수 있다는 것입니다. 이미지가 화면에 들어오는 시점보다 조금 더 미리 이미지를 불러와 화면에 들어온 시점에는 이미지가 준비되어 있도록 해야 합니다. 다행히 react-lazyload 라이브러리에서는 그렇게 할 수 있는 옵션을 제공해 주는데, 바로 offset이라는 옵션입니다.이 옵션에는 얼마나 미리 이미지를 로드할지 픽셀 값으로 넣어 줍니다. 레이아웃 이동 피하기레이..