Skip to content

Conversation

@hochan222
Copy link
Member

@hochan222 hochan222 commented Jun 14, 2021

Team: πŸ™‹πŸ»β€β™€οΈ @yechoi42 , πŸ™†πŸ»β€β™‚οΈ @hochan222

데λͺ¨: https://yechoi42.github.io/typescript-youtube-classroom/

같은 κ³΅κ°„μ—μ„œ λ²ˆκ°ˆμ•„κ°€λ©° νŽ˜μ–΄ ν”„λ‘œκ·Έλž˜λ°μ„ μ§„ν–‰ν–ˆκ³  μ•½κ°„μ˜ λ¦¬νŒ©ν† λ§μ„ 거쳐 PR μ œμΆœν–ˆμŠ΅λ‹ˆλ‹€.

폴더 ꡬ쑰

.
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ cypress
β”‚Β Β  β”œβ”€β”€ ...
β”œβ”€β”€ cypress.json
β”œβ”€β”€ docs
β”‚Β Β  └── README.md
β”œβ”€β”€ index.html
β”œβ”€β”€ package.json
β”œβ”€β”€ src
β”‚Β Β  β”œβ”€β”€ css
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ...
β”‚Β Β  β”‚Β Β  └── ui
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ...
β”‚Β Β  β”œβ”€β”€ images
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ...
β”‚Β Β  β”œβ”€β”€ js
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ...
β”‚Β Β  └── ts
β”‚Β Β      β”œβ”€β”€ @shared
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ env.ts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ message.ts
β”‚Β Β      β”‚Β Β  └── utils.ts
β”‚Β Β      β”œβ”€β”€ controller
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ index.ts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ liked-page.ts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ main-page.ts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ search-page.ts
β”‚Β Β      β”‚Β Β  └── watched-page.ts
β”‚Β Β      β”œβ”€β”€ index.ts
β”‚Β Β      β”œβ”€β”€ model
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ get-query-string.ts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ index.ts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ main-page.ts
β”‚Β Β      β”‚Β Β  └── search-page.ts
β”‚Β Β      └── view
β”‚Β Β          β”œβ”€β”€ index.ts
β”‚Β Β          β”œβ”€β”€ liked-page.ts
β”‚Β Β          β”œβ”€β”€ main-page.ts
β”‚Β Β          β”œβ”€β”€ search-page.ts
β”‚Β Β          └── watched-page.ts
β”œβ”€β”€ tsconfig.json
└── yarn.lock

κ΅¬ν˜„ κΈ°λŠ₯ λͺ©λ‘

  • 🎯 step1 검색 κΈ°λŠ₯
    • 유튜브 검색 APIλ₯Ό ν†΅ν•΄μ„œ, λ‚΄κ°€ μΆ”κ°€λ‘œ 보고 싢은 μ˜μƒλ“€μ„ 검색할 수 μžˆλ‹€.
      • 검색 μ‹œ μ—”ν„°ν‚€λ₯Ό λˆŒλ €μ„ λ•Œμ™€ 마우슀둜 검색 λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ 검색 λ™μž‘μ΄ 이루어진닀.
    • λ‘œλ”©μ»΄ν¬λ„ŒνŠΈ: 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” 쀑일 λ•Œ, ν˜„μž¬ 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” μ€‘μž„μ„ skeleton UI둜 보여쀀닀.
    • 검색 κ²°κ³Όκ°€ μ—†λŠ” 경우 κ²°κ³Ό μ—†μŒ 이미지λ₯Ό μΆ”κ°€ν•˜μ—¬, μ‚¬μš©μžμ—κ²Œ λ©”μ‹œμ§€λ₯Ό 보여쀀닀.
      • 검색 κ²°κ³Ό μ—†μŒ μ΄λ―Έμ§€λŠ” src/images/status/not_found.png κ²½λ‘œμ— μžˆλ‹€.
    • 졜초 κ²€μƒ‰κ²°κ³ΌλŠ” 10κ°œκΉŒμ§€λ§Œ 보여쀀닀. 더 λ§Žμ€ λ°μ΄ν„°λŠ” μŠ€ν¬λ‘€μ„ 내릴 λ•Œ μΆ”κ°€λ‘œ λΆˆλŸ¬μ˜¨λ‹€.
      • 검색 κ²°κ³Ό ν™”λ©΄μ—μ„œ μœ μ €κ°€ λΈŒλΌμš°μ € 슀크둀 λ°”λ₯Ό λκΉŒμ§€ μ΄λ™μ‹œμΌ°μ„ 경우, κ·Έλ‹€μŒ 10개 μ•„μ΄ν…œμ„ μΆ”κ°€λ‘œ apiμš”μ²­ν•˜μ—¬ λΆˆλŸ¬μ˜¨λ‹€.
    • λ‚΄κ°€ κ²€μƒ‰ν•œ μ˜μƒλ“€μ˜ json 데이터λ₯Ό μ €μž₯ν•  수 μžˆλ‹€. (μ‹€μ œ μ €μž₯이 μ•„λ‹Œ μ˜μƒ idλ₯Ό Web Storage에 μ €μž₯). 단 이미 μ €μž₯된 κ²½μš°λŠ” μ €μž₯ λ²„νŠΌμ΄ 보이지 μ•Šκ²Œ ν•œλ‹€.
    • μ €μž₯ κ°€λŠ₯ν•œ μ΅œλŒ€ λ™μ˜μƒμ˜ κ°―μˆ˜λŠ” 100κ°œμ΄λ‹€.
    • 검색 λͺ¨λ‹¬μ— λ‹€μ‹œ μ ‘κ·Όν–ˆμ„ λ•Œ κ°€μž₯ λ§ˆμ§€λ§‰μ— κ²€μƒ‰ν•œ ν‚€μ›Œλ“œλ‘œ κ²€μƒ‰ν•œ κ²°κ³Όλ₯Ό 보여쀀닀.
    • 졜근 검색 ν‚€μ›Œλ“œλ₯Ό 3κ°œκΉŒμ§€ 화면상에 검색창 ν•˜λ‹¨μ— 보여쀀닀.
  • 🎯🎯 step2 κ°•μ˜μ‹€ 관리 κΈ°λŠ₯
    • κ°€μž₯ μ²˜μŒμ—λŠ” μ €μž₯된 μ˜μƒμ΄ μ—†μŒμœΌλ‘œ, λΉ„μ–΄μžˆλ‹€λŠ” 것을 μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ£ΌλŠ” μƒνƒœλ₯Ό 보여쀀닀.
    • 이후 νŽ˜μ΄μ§€λ₯Ό λ°©λ¬Έν–ˆμ„ λ•Œ κΈ°λ³Έ 메인 화면은 λ‚΄κ°€ λ³Ό μ˜μƒλ“€μ˜ 리슀트λ₯Ό 보여쀀닀.
    • μ˜μƒ μΉ΄λ“œμ˜ 이λͺ¨μ§€ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μ•„λž˜μ™€ 같은 μƒνƒœ 변경이 κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
      • βœ… λ³Έ μ˜μƒμœΌλ‘œ 체크
      • πŸ—‘οΈ λ²„νŠΌμœΌλ‘œ μ €μž₯된 λ¦¬μŠ€νŠΈμ—μ„œ μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€. (μ‚­μ œ μ‹œ μ‚¬μš©μžμ—κ²Œ 정말 μ‚­μ œν•  것인지 λ¬Όμ–΄λ΄…λ‹ˆλ‹€.)
    • μ‚¬μš©μžκ°€ λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ ν•΄λ‹Ή ν–‰μœ„κ°€ μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜κ±°λ‚˜, μ‹€νŒ¨ν•˜μ˜€μŒμ„ snackbarλ₯Ό 톡해 보여쀀닀.
    • λ³Έ μ˜μƒ, λ³Ό μ˜μƒ λ²„νŠΌμ„ 눌러 필터링 ν•  수 μžˆλ‹€.
  • 🎯🎯🎯 step3 μœ μ € κ²½ν—˜ 증가 κΈ°λŠ₯
    • λ‚΄κ°€ λ³Έ μ˜μƒ 쀑 쒋은 μ˜μƒμ—λŠ” μ’‹μ•„μš”, μ½”λ©˜νŠΈλ₯Ό 직접 μΆ”κ°€ν•  수 μžˆλ‹€. (μ‹€μ œ 유튜브 μ˜μƒμ— μΆ”κ°€ν•˜λŠ” api μ‚¬μš©)
      • πŸ‘ μ’‹μ•„μš” APIλ₯Ό μ΄μš©ν•˜μ—¬ 전솑
      • πŸ’¬ λŒ“κΈ€ APIλ₯Ό μ΄μš©ν•˜μ—¬ 전솑 (λŒ“κΈ€ 전솑을 μœ„ν•œ modalκ³Ό form은 슀슀둜 κ΅¬ν˜„ν•©λ‹ˆλ‹€.)
    • μ’‹μ•„μš” λ²„νŠΌμ„ λˆ„λ₯Έ λ°μ΄ν„°λ§Œ ν•„ν„°λ§ν•΄μ„œ 보여쀀닀.
    • 닀크 λͺ¨λ“œλ₯Ό μœ„ν•œ λ²„νŠΌμ„ λ§Œλ“ λ‹€. λ²„νŠΌ uiλŠ” 직접 λ§Œλ“ λ‹€.
    • λ°˜μ‘ν˜• μ›Ή: μœ μ €κ°€ μ‚¬μš©ν•˜λŠ” λ””λ°”μ΄μŠ€μ˜ κ°€λ‘œ 길이에 따라 검색 결과의 row λ‹Ή column 개수λ₯Ό λ³€κ²½ν•œλ‹€.
      • 992px μ΄ν•˜: 4개
      • 768px μ΄ν•˜: 2개
      • 576px μ΄ν•˜: 1개
    • 슀크둀 νŽ˜μ΄μ§• 방식을 μ΄μš©ν•΄μ„œ Lazy loading을 κ°œμ„ ν•œλ‹€.

hochan222 and others added 30 commits June 7, 2021 11:09
λ Œλ”λ§ ν•¨μˆ˜κ°€ λ‘κ°œμ˜€λŠ”λ° μ•žμ— μ‚­μ œλ₯Ό μ•ˆν–ˆμŒ, ν•˜λ‚˜λ‘œ 톡일
yechoi42 and others added 29 commits June 9, 2021 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants