πŸš€ ν…Œμ΄λΈ” Performance κ·ΉλŒ€ν™”: Frontendμ—μ„œ 4κ°€μ§€ ν•„μˆ˜ μ „λž΅!

λ°œν–‰: (2025λ…„ 12μ›” 28일 μ˜€μ „ 07:46 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λŒ€μš©λŸ‰ 데이터λ₯Ό λ‹€λ£¨λŠ” 것은 μ„±λŠ₯μƒμ˜ 도전이 될 수 μžˆμŠ΅λ‹ˆλ‹€. λŠλ¦¬κ±°λ‚˜ λ©ˆμΆ”λŠ” ν…Œμ΄λΈ”μ„ μ’‹μ•„ν•˜λŠ” μ‚¬λžŒμ€ μ—†μ£ , λ§žλ‚˜μš”? λ‹€μŒμ€ λͺ¨λ“  κ°œλ°œμžκ°€ 효율적으둜 ν…Œμ΄λΈ”μ„ λ‘œλ“œν•˜κ³  λ›°μ–΄λ‚œ μ‚¬μš©μž κ²½ν—˜(UX)을 보μž₯ν•˜κΈ° μœ„ν•΄ μ•Œμ•„μ•Ό ν•  λ„€ κ°€μ§€ 핡심 κΈ°μˆ μž…λ‹ˆλ‹€.

κ°€μƒν™”λœ ν…Œμ΄λΈ” (Virtualization)

κ°€μƒν™”λŠ” 화면에 λ³΄μ΄λŠ” ν–‰λ§Œ λ Œλ”λ§ν•˜μ—¬ 수천 개의 λ ˆμ½”λ“œκ°€ μžˆλ”λΌλ„ DOM을 κ°€λ³κ²Œ μœ μ§€ν•©λ‹ˆλ‹€. μ΄λŠ” λ Œλ”λ§ μ‹œκ°„κ³Ό λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ 크게 μ€„μ—¬μ€λ‹ˆλ‹€.

νŽ˜μ΄μ§€λ„€μ΄μ…˜ (Pagination)

데이터λ₯Ό μž‘μ€ νŽ˜μ΄μ§€λ‘œ λ‚˜λˆ„λ©΄ ν•œ λ²ˆμ— λ‘œλ“œλ˜λŠ” μ •λ³΄λŸ‰μ΄ κ°μ†Œν•©λ‹ˆλ‹€. 각 νŽ˜μ΄μ§€λŠ” ν•„μš”μ— 따라 μš”μ²­ν•  수 μžˆμ–΄ μΈν„°νŽ˜μ΄μŠ€μ˜ λ°˜μ‘μ„±μ΄ ν–₯μƒλ©λ‹ˆλ‹€.

λ©”λͺ¨λ¦¬ λ‚΄ ν…Œμ΄λΈ” (Client-side Processing)

전체 데이터λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ— λ‘œλ“œν•˜λ©΄ μ„œλ²„μ— μƒˆλ‘œμš΄ μš”μ²­μ„ 보내지 μ•Šκ³ λ„ 필터링, μ •λ ¬ 및 검색을 μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ ‘κ·Ό 방식은 전체 데이터 양이 λΈŒλΌμš°μ € λ©”λͺ¨λ¦¬μ— μΆ©λΆ„νžˆ λ“€μ–΄κ°ˆ λ•Œ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

React Query (ou TanStack Query)

무엇인가

React QueryλŠ” μ„œλ²„ μƒνƒœ 관리 라이브러리( UI μƒνƒœ 관리가 μ•„λ‹˜)μž…λ‹ˆλ‹€. 원격 데이터λ₯Ό fetching, caching, 동기화, μ—…λ°μ΄νŠΈ ν•˜λŠ” μž‘μ—…μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

ν…Œμ΄λΈ”μ— λŒ€ν•œ μ€‘μš”μ„±

  • νŽ˜μ΄μ§€λ„€μ΄μ…˜ κ΅¬ν˜„μ„ μš©μ΄ν•˜κ²Œ 함 – 이미 λ‘œλ“œλœ νŽ˜μ΄μ§€μ˜ μΊμ‹œλ₯Ό μœ μ§€ν•˜μ—¬ 쀑볡 μš”μ²­μ„ λ°©μ§€ν•©λ‹ˆλ‹€.
  • 가상화λ₯Ό μœ„ν•œ μ›μ‹œ 데이터λ₯Ό 효율적으둜 제곡 – λ Œλ”λ§ μ‹œ ν•„μš”ν•œ λ ˆμ½”λ“œλ§Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ 보μž₯ν•©λ‹ˆλ‹€.
  • μš”μ²­ μƒνƒœλ₯Ό μ„ μ–Έμ μœΌλ‘œ 관리 (loading, error) ν•˜μ—¬ μ½”λ“œλ₯Ό 더 κΉ”λ”ν•˜κ³  κ²¬κ³ ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.
Back to Blog

κ΄€λ ¨ κΈ€

더 보기 Β»

Oura 톡합: Next.js와 React Query둜 κ³ μ„±λŠ₯ ν—¬μŠ€ μ•± λ§Œλ“€κΈ°

Health techκ°€ κΈ‰μ„±μž₯ν•˜κ³  있으며, κ°œλ°œμžλ“€μ€ 개인 λ§žμΆ€ν˜• μ›°λ‹ˆμŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μΆ•ν•˜λŠ” μ΅œμ „μ„ μ— μžˆμŠ΅λ‹ˆλ‹€. Wearables인 Oura Ring은 보물창고와 같은 데이터λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

Go WebSocket ν”„λ‘œκ·Έλž˜λ°: μ‹€μ‹œκ°„ 앱을 μ†μ‰½κ²Œ ꡬ좕

Goμ—μ„œ WebSocket: μ‹€μ‹œκ°„ μ•± μ•ˆλ…•ν•˜μ„Έμš”, Go 개발자 μ—¬λŸ¬λΆ„! μ‹€μ‹œκ°„ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 세계에 λ›°μ–΄λ“€ μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? WebSocket은 μ±„νŒ…μ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ ν‹°μΌ“μž…λ‹ˆλ‹€...

2μ£Ό λ§Œμ— ν”„λΌμ΄λ²„μ‹œ μš°μ„  톡화 λ³€ν™˜κΈ°λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€

The Problem πŸ€¦β€β™€οΈ λ‚΄κ°€ μ‹œλ„ν•œ λͺ¨λ“  currency converterλŠ” λ‹€μŒκ³Ό 같은 문제λ₯Ό κ°€μ§€κ³  μžˆμ—ˆλ‹€: - ❌ κ°•μ œ sign‑ups와 email μˆ˜μ§‘ - ❌ μΏ ν‚€λ‘œ user behavior 좔적 - ❌ 느리게 λ‘œλ“œλ¨ ...