Skip to content

Commit 871137c

Browse files
committed
docs: 같은 입력은 같은 결과 - 장바구니와 해시 함수로 배우는 멱등성 (해시 테이블)
1 parent 43b1f71 commit 871137c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

contents/posts/CS/DataStructure/idempotency-hash-table.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ async function createHashOfCartItem(item: CartItem) {
209209
}
210210
```
211211

212+
> (Node.js 환경에서는 crypto.createHash('sha256') 으로 동일한 결과를 얻을 수 있습니다.)
213+
212214
- 장바구니 항목 비교 대신 해시 문자열 한 번 비교 $(O(1))$
213215
- 옵션 순서가 바뀌어도 정규화(normalization)로 동일하게 처리
214216
- 같은 샌드위치 조합은 항상 동일한 멱등키로 매핑
@@ -221,11 +223,11 @@ async function createHashOfCartItem(item: CartItem) {
221223
| JSON.stringify | $O(m · k)$ | 중간 | 직관적 | 순서/타입 민감 |
222224
| 정규화 + 해시 | $O(k log k)$ (1회 생성) / $O(1)$ (비교) | 높음 | 빠름, 재사용성 | 해시 생성비용 |
223225

224-
## 결론..
226+
## 🧠 정리하며..
225227

226228
장바구니 기능을 멱등하게 구현하는 방법으로 해시 함수를 사용하는 방법을 살펴보았습니다. <br/>
227229
사실 규모가 작다면 단순 순회 비교나 `lodash/isEqual` 같은 라이브러리를 사용하는 것도 충분합니다. <br/>
228-
하지만, 확장성이나 재사용성이 필요하다면 정규화된 해시 함수를 도입하는 방법도 고려해볼만 하다고 생각합니다.
230+
하지만 데이터 구조를 키로 관리하거나, 재요청/중복 요청을 안전하게 처리해야 하는 상황이라면 정규화된 해시 함수를 도입해 멱등성을 보장하는 것이 더 견고한 접근이라고 생각합니다
229231

230232
참고로, 멱등성은 HTTP 메서드 설계, 데이터베이스 트랜잭션 처리, TanstackQuery 의 쿼리키 설계 등 다양한 분야에서 활용되는 중요한 개념입니다. <br/>
231233

0 commit comments

Comments
 (0)