Skip to content

talentforest/hackernews-with-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

113 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“° Hacker News 해컀 λ‰΄μŠ€

✨ ν”„λ‘œμ νŠΈμ— μ‚¬μš©ν•œ μŠ€νƒ ✨

✨ 기타 라이브러리 ✨


스크란샷 2022-11-11 α„‹α…©α„Œα…₯ᆫ 4 35 16 스크란샷 2022-11-11 α„‹α…©α„Œα…₯ᆫ 4 35 28

닀크λͺ¨λ“œμ™€ 라이트λͺ¨λ“œ


πŸ“ 해컀 λ‰΄μŠ€ λ―Έλ‹ˆ ν”„λ‘œμ νŠΈ μ†Œκ°œ

UX/UIλ””μžμΈ μˆ˜κ°•μƒ λΆ„λ“€κ³Ό ν˜‘μ—…ν•˜μ—¬ 전세계 κ°œλ°œμžλ“€μ˜ μ†Œμ…œ λ„€νŠΈμ›Œν¬ μ›Ήμ‚¬μ΄νŠΈμΈ 해컀 λ‰΄μŠ€λ₯Ό λͺ¨λ°”일 μ›Ή(Mobile Web) λ²„μ „μœΌλ‘œ λ§Œλ“€μ–΄λ³΄λŠ” ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€!

해컀 λ‰΄μŠ€κ°€ μ œκ³΅ν•˜λŠ” Hacker News APIλ₯Ό 톡해 κ°œλ°œλ˜μ—ˆμœΌλ©° μ‹œκ°μ μœΌλ‘œ νŽΈλ¦¬ν•˜κ²Œ μ΄μš©ν•  수 μžˆλ„λ‘ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

이 ν”„λ‘œμ νŠΈλ₯Ό 톡해 λ””μžμ΄λ„ˆμ™€μ˜ ν˜‘μ—…μ„ κ²½ν—˜ν•΄λ³Ό 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.



πŸ“ ν”„λ‘œμ νŠΈλ‘œ κ³΅λΆ€ν•˜κ²Œ 된 λΆ€λΆ„

1. React Rendering Optimization

  • λ¦¬μ•‘νŠΈμ˜ λ¦¬λ Œλ”λ§ 쑰건

    • stateκ°€ 변경될 λ•Œ

      • μ΅œμƒμœ„μ— μžˆλŠ” μ»΄ν¬λ„ŒνŠΈμΌμˆ˜λ‘ stateλ₯Ό 적게 κ°€μ Έμ•Ό ν•œλ‹€λŠ” 것을 λ°°μ› λ‹€.
    • λΆ€λͺ¨μ—κ²Œμ„œ λ°›λŠ” propsκ°€ 변경될 λ•Œ

      • μ΅œμƒμœ„ μ»΄ν¬λ„ŒνŠΈλŠ” 잘 λ³€ν•˜μ§€ μ•ŠλŠ” propsλ₯Ό λ³΄λ‚΄λŠ” μ»΄ν¬λ„ŒνŠΈ(templateμ •λ„μ˜ 규λͺ¨)둜 이루어져 μžˆλŠ” 것이 쒋은 것 κ°™λ‹€.
    • λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈκ°€ 변경될 λ•Œ

      • μ»΄ν¬λ„ŒνŠΈλ₯Ό 적게 μ“°λ €κ³  ν•˜λŠ” 것도 μ’‹μ§€λ§Œ, 그보닀 μš°μ„ μ μœΌλ‘œ λ Œλ”λ§μ΄ μ΅œμ ν™”λœ μ»΄ν¬λ„ŒνŠΈ ꡬ쑰λ₯Ό μƒκ°ν•΄μ•Όν•œλ‹€.
  • ν›… useCallbackκ³Ό memo

    • memoization을 ν•œλ‹€κ³  해도 ν΄λ¦­μ‹œ 계속 값이 λ³€ν•˜λŠ” μƒνƒœμΈ 경우 useCallbackμ΄λ‚˜ memoλŠ” μ˜λ―Έκ°€ μ—†λ‹€.

2. Skeleton Loading UI 적용

  • ꡳ이 Skeleton Loading 라이브러리λ₯Ό μ“°μ§€ μ•Šμ•„λ„ κ΅¬ν˜„μ΄ μ‰½κ²Œ κ°€λŠ₯ν•œ 것 κ°™μ•„μ„œ 직접 κ΅¬ν˜„ν•΄λ³΄μ•˜λ‹€.

3. μ•„ν† λ―Ή λ””μžμΈ νŒ¨ν„΄

  • μ•„λž˜ 파일 ꡬ쑰 μ°Έκ³ 

πŸ“ 파일 ꡬ쑰

.root
β”œβ”€β”€ node_modules
β”œβ”€β”€ public
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ assets
β”‚   β”œβ”€β”€ component
β”‚   β”‚   β”œβ”€β”€ atom # λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈμ™€ κ²°ν•©λ˜μ§€ μ•ŠλŠ” 순수 μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”‚   β”œβ”€β”€ skeleton
β”‚   β”‚   β”œβ”€β”€ molecules # μ΅œλŒ€ ν•˜λ‚˜μ˜ μ»΄ν¬λ„ŒνŠΈμ™€ κ²°ν•©λ˜μ–΄ λ°•μŠ€ μ•ˆμ˜ 일뢀뢄을 μ°¨μ§€ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ organisms # 포슀트 λ°•μŠ€ 크기 μ •λ„μ˜ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   β”œβ”€β”€ template # μ΅œμ†Œ 3개 μ΄μƒμ˜ μ»΄ν¬λ„ŒνŠΈκ°€ κ²°ν•©λ˜μ–΄, 전체 νŽ˜μ΄μ§€μ˜ 일정 μ˜μ—­μ„ μ°¨μ§€ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ context
β”‚   β”œβ”€β”€ hooks
β”‚   β”œβ”€β”€ layout
β”‚   β”œβ”€β”€ routes
β”‚   β”œβ”€β”€ pages # λΌμš°ν„° 전체 νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ theme
β”‚   β”œβ”€β”€ util
β”‚Β Β  └── App.jsx
β”‚   β”œβ”€β”€ index.css
β”‚   β”œβ”€β”€ index.js
β”œβ”€β”€ .gitignore
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
└── README.md

이 ν”„λ‘œμ νŠΈλ₯Ό 톡해 쒀더 효율적인 폴더 ꡬ쑰둀 μƒκ°ν•΄λ³΄κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μ•„ν† λ―Ή λ””μžμΈ νŒ¨ν„΄ ꡬ쑰둜 폴더λ₯Ό κ΅¬μ„±ν–ˆλŠ”μ§€ 기쑴에 νŽ˜μ΄μ§€λ³„λ‘œ 폴더λ₯Ό κ΅¬μ„±ν–ˆλ˜ 것과 비ꡐ해 λšœλ ·ν•œ μž₯단점이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. νŠΉνžˆλ‚˜ 각 νŽ˜μ΄μ§€λ³„λ‘œ κ³΅μœ λ˜λŠ” μ»΄ν¬λ„ŒνŠΈκ°€ λ§Žλ‹€λ©΄ μ•„ν† λ―Ή λ””μžμΈ νŒ¨ν„΄μ€ 쒋은 선택이 될 것 κ°™μŠ΅λ‹ˆλ‹€. λ˜ν•œ 이 뢀뢄을 μœ„ν•΄ λ””μžμ΄λ„ˆμ™€ ν•¨κ»˜ κ³΅μœ λ λ§Œν•œ μ»΄ν¬λ„ŒνŠΈμ— λŒ€ν•΄ μƒμ˜ν•΄λ³Έ 것도 쒋은 κ²½ν—˜μ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 단점도 μžˆμ—ˆλŠ”λ° 각 μ•„ν† λ―Ή λ””μžμΈμ˜ 5λ‹¨κ³„λ‘œ λΆ„λ₯˜ν•˜κΈ° μ–΄λ €μš΄ μ»΄ν¬λ„ŒνŠΈλ“€λ„ 쑰금 μžˆμ—ˆλ‹€λŠ” μ μž…λ‹ˆλ‹€. λ˜ν•œ 예λ₯Ό λ“€μ–΄ AνŽ˜μ΄μ§€μ™€ BνŽ˜μ΄μ§€μ˜ μš”κ΅¬μ‚¬ν•­μ΄ λ‹¬λΌμ§ˆ 경우 λ³΅μž‘μ„±μ΄ μ˜¬λΌκ°„λ‹€λŠ” μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

μ•„ν† λ―Ή λ””μžμΈ νŒ¨ν„΄μ„ 100% ν™œμš©ν–ˆλ‹€κ³  μƒκ°ν•˜μ§€λŠ” μ•Šμ§€λ§Œ ν”„λ‘œμ νŠΈμ— λ§žμΆ”μ–΄ 기쀀을 μƒκ°ν•΄μ„œ λ‚˜λ¦„λŒ€λ‘œ 효율적인 ꡬ쑰λ₯Ό 짜보렀고 λ…Έλ ₯ν–ˆμŠ΅λ‹ˆλ‹€.


πŸ“ ν”„λ‘œμ νŠΈ ν›„κΈ°

ν•΄μ»€λ‰΄μŠ€ ν”„λ‘œμ νŠΈλŠ” λ””μžμ΄λ„ˆμ™€ ν˜‘μ—…ν•˜μ—¬ λ§Œλ“€μ—ˆλ‹€λŠ” μ μ—μ„œ λ””μžμ΄λ„ˆμ™€μ˜ μ†Œν†΅μ— λŒ€ν•΄ μ§μ ‘μ μœΌλ‘œ κ²½ν—™ν•΄λ³Ό 수 μžˆμ—ˆλ˜ μ•„μ£Ό 쒋은 κΈ°νšŒμ˜€μŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° μ–΄λ–€ 뢀뢄을 λ””μžμ΄λ„ˆμ™€ μ΄μ•ΌκΈ°ν•΄μ•Όν•˜λŠ”μ§€, μž‘μ—…μ„ 더 효율적으둜 ν•  방법은 μ—†λŠ”μ§€ 등등에 λŒ€ν•΄ 이야기λ₯Ό λ‚˜λˆ„λ©° μ•„μ£Ό 즐겁게 μž‘μ—…ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 이 ν”„λ‘œμ νŠΈλ₯Ό ν†΅ν•΄μ„œ λ¦¬μ•‘νŠΈ λ Œλ”λ§ μ΅œμ ν™”μ™€ μ‚¬μš©μž μΉœν™”μ  UI에 λŒ€ν•΄ 배울 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.πŸ‘ 그리고 이 ν”„λ‘œμ νŠΈλ₯Ό ν†΅ν•΄μ„œ λ””μžμΈ νŒ¨ν„΄μ— λŒ€ν•œ 생각을 ν•˜κ²Œ λ˜μ—ˆκ³ , 개발 μ΄ˆκΈ°λΆ€ν„° μ•„ν† λ―Ή λ””μžμΈ νŒ¨ν„΄μ„ μƒκ°ν•˜λ©° μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“ λ‹€λ©΄ 더 λΉ λ₯΄κ²Œ λ””μžμ΄λ„ˆμ™€ μ†Œν†΅ν•˜λ©° μž‘μ—…μ„ μ‹œμž‘ν•  수 μžˆμ§€ μ•Šμ„κΉŒ ν•˜λŠ” 생각이 λ“€μ—ˆμŠ΅λ‹ˆλ‹€.

About

πŸ“° UXUI λ””μžμ΄λ„ˆμ™€ ν•¨κ»˜ λ§Œλ“  해컀 λ‰΄μŠ€ μ•±μž…λ‹ˆλ‹€. Hacker News App created with UXUI designer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors