일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 웹애플리케이션서버
- react-hook-form
- go
- Spring
- storybook
- React
- java
- 티스토리챌린지
- satisfiles
- Redux
- 오블완
- tanstackquery
- golang
- JavaSpring
- frontend
- ReactHooks
- JPA
- hook
- typescript
- RTK
- backend
- test
- Chakra
- designpatterns
- springboot
- javascript
- css
- component
- Gin
- Today
- Total
목록티스토리챌린지 (14)
bkdragon's log
빌더 패턴은 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을 생성하는 방법을 제공한다.쉽게 말해 객체를 여러 단계에 걸처 만들 수 있다.구성 요소Director(디렉터): Builder를 사용하여 객체를 생성하는 클래스. 추상 팩토리 패턴의 Client와 비슷한 역할을 한다.Builder(빌더): 객체의 각 부분을 만드는 방법을 정의하는 인터페이스ConcreteBuilder(구체적인 빌더): Builder 인터페이스를 구현하여 실제 객체를 만드는 클래스Product(제품): Builder를 통해 만들어지는 최종 객체예시 코드피자를 예로 들건데, 현실에서도 피자를 주문할 떄 크기를 선택하거나 토핑을 추가하거나 도우를 선택하는 등의 절차가 있을 수 있다.// ..
팩토리 메서드 패턴인스턴스를 생성자 대신 팩토리 클래스의 추상 메서드로 생성하게 하는 패턴. 서브 클래스에서 오버라이드해서 생성 내용을 유연하게 변경할 수 있다.구성 요소Product(제품): 팩토리 메서드에 의해 생성되는 객체의 추상 클래스.ConcreteProduct(구체적인 제품): Product의 구현체.Creator(창조자): 팩토리 메서드를 선언하는 추상 클래스. 실제 인스턴스를 생성하는 추상 메서드를 가진다.ConcreteCreator(구체적인 창조자): Creator의 구현체, 팩토리 메서드를 구현하여 구체적인 인스턴스를 생성한다.예시 코드abstract class Animal { abstract speak(): string;}abstract class AnimalFood { a..
Specification명세, 조건이라는 뜻으로 복잡한 데이터 검색 조건을 간단하고 유연하게 구현할 수 있는 Spring Data JPA의 기능이다.public interface Specification { Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb);}Specification은 Predicate를 반환하는 toPredicate라는 함수를 가지는 인터페이스이다. Predicate는 아래에서 설명할 JPA의 Criteria API에서 사용하는 쿼리의 조건을 정의하는 객체이다. 즉 Specification은 Predicate을 추상화하여 사용하는 것이다.Criteria API 란?JPA(Java Persistence..
공식문서에서는 Decorator 는 Story 을 감싸는 것이라고 설명한다.Decorator 를 사용하면 레이아웃을 잡거나 Story 에서 특정 컨텍스트를 공유하게 하는 것이 가능하다.zustand 전역 상태가 불필요하게 모든 Story가 아닌 특정 story 내에서만 유지되게 해보자.export const Default: Story = { name: "Default", parameters: { withZustand : true },};parameters 에 withZustand 라는 임의의 키를 추가하고 true 값을 설정해줬다.import { useEffect } from "react";import { useStore } from "@/hooks/useStore";impo..