220326

์˜ค๋‹ยท2022๋…„ 3์›” 26์ผ
post-thumbnail

๐Ÿ„KEEP

  • 6์‹œ ๊ธฐ์ƒ
    • ๋ฏธ๋ผํด๋ชจ๋‹๊นŒ์ง€๋Š” ์•„๋‹ˆ๊ณ  ์ผ์ฐ ์ž์„œ ์ผ์ฐ ์ผ์–ด๋‚˜๋Š” ์Šต๊ด€์„ ๋“ค์—ฌ๋ณด๋ ค๋Š”๋ฐ ์ผ๋‹จ ์ฒซ๋‚ ์€ ์„ฑ๊ณตํ–ˆ๋‹ค. ํ™•์‹คํžˆ ๋‚˜๋Š” ์ž์ •์— ๊ฐ€๊นŒ์šด ์ƒˆ๋ฒฝ๋ณด๋‹ค๋Š” ์•„์นจ์— ๊นจ์–ด ์žˆ๋Š” ๊ฒŒ ๊ธฐ๋ถ„๋„ ๋” ๋‚ซ๊ณ  ์ปจ๋””์…˜๋„ ์ข‹์€ ๋“ฏ.
  • Node.js๋Š” ์‹ ๊ธฐํ•˜๋‹ค
    • JS ํŒŒ์ผ ํ•˜๋‚˜๋กœ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ด๋Ÿฐ์ €๋Ÿฐ url์— ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ๊ฒŒ... ์ฐธ ์‹ ๊ธฐํ•˜๋‹ค. ๋ฌผ๋ก  ๋ชจ๋“  ์„œ๋ฒ„๋“ค์ด ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฑด ์•„๋‹ˆ๊ฒ ์ง€๋งŒ ํ™•์‹คํžˆ ์„œ๋ฒ„ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ๋Š” ํ•˜๋Š”๊ตฌ๋‚˜.
    • GET/POST ๊ฐœ๋…์ด ์–ด๋А ์ˆœ๊ฐ„ ์ดํ•ด๋˜์–ด ์žˆ๋‹ค. ๋ถ„๋ช… ์ฒ˜์Œ ๋ฐฐ์› ์„ ๋•Œ๋Š” ํ ... ์‹ถ์—ˆ๋Š”๋ฐ, ๊ทธ๊ฐ„ ๋”ฑํžˆ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•œ ๊ฒƒ๋„ ์•„๋‹ˆ๊ฑด๋งŒ ์–ด๋А ์ˆœ๊ฐ„ ๋ฌด๋ฆฌ์—†์ด ์ดํ•ด๋˜์–ด ์žˆ๋‹ค. ํ™•์‹คํžˆ ๋„ˆ๋ฌด ์–ด๋ ค์šด ๊ฐœ๋…์€ ๊ณ„์† ๋ถ™์žก๊ณ  ์žˆ์„ ๊ฒŒ ์•„๋‹ˆ๋ผ ์ผ๋‹จ ๋„˜์–ด๊ฐ„ ๋‹ค์Œ ๋‹ค์‹œ ์ฐพ์•„๋ณด๋Š” ๊ฒŒ ์ค‘์š”ํ•œ ๋“ฏ.
  • REST API ๋“œ๋””์–ด ๋ฌด์—‡์ธ์ง€ ๋ฐฐ์šฐ๋‹ค
    • ์œ ํŠœ๋ธŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ฐ€๋” ๋– ์„œ ๋‚˜์ค‘์— ๋ด์•ผ์ง€ ํ•˜๊ณ  ๋ฏธ๋ฃจ๊ธฐ๋งŒ ํ•˜๋˜ ๊ฐœ๋…์„ ๋ฐฐ์› ๋‹ค. API๋ฅผ ๋งŒ๋“ค ๋•Œ ํŠน์ • ์›์น™์„ ์ง€์ผœ์„œ ๋งŒ๋“ค๋ฉด ์‚ฌ์šฉ์ž๋„ ์ด์šฉ์ž๋„ ํŽธํ•˜๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ, ์–ด๋ ต์ง€ ์•Š์œผ๋ฉด์„œ๋„ ํ•„์ˆ˜์ ์ธ ๋“ฏ. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ฝ”๋”ฉ์• ํ”Œ ์‚ฌ์ดํŠธ URL์„ ๋ณด๋‹ˆ REST API๊ฐ€ ์ž˜ ์ ์šฉ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.
  • ์บ๋Ÿฌ์…€์€ ์ด๋ฏธ์ง€๋งŒ ์Šฌ๋ผ์ด๋“œํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค
    • ์ด๋ฏธ์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜†์œผ๋กœ ์Šฌ๋ผ์ด๋“œ ๋˜๋Š” ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค๋„ ๋‹ค ์บ๋Ÿฌ์…€์˜ ์‘์šฉ์ด์—ˆ๋‹ค!
    • float ์†์„ฑ๊ณผ ์นœํ•ด์ง€๊ธฐ ์•„์ฃผ ์ข‹๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด overflow: hidden์€ ์ฝ˜ํ…์ธ ์˜ ํฌ๊ธฐ๊ฐ€ ํ•ด๋‹น ์š”์†Œ์˜ ํฌ๊ธฐ๋ณด๋‹ค ํด ๋•Œ, ๋„˜์ณ๋‚˜๋Š” ๋ถ€๋ถ„์„ ์ˆจ๊ฒจ์ค€๋‹ค. ์ด์œ ๋Š” ๋ชจ๋ฅด์ง€๋งŒ ๋‚จ๋ฐœํ•˜๋ฉด ์ข‹์ง€ ์•Š๋‹ค๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ์„œ ๋“ค์–ด๋ณธ ๋“ฏ...
  • ์Šคํฌ๋กค ์ด๋ฒคํŠธ๋Š” ์žฌ๋ฏธ์žˆ๋‹ค
    • scroll์„ ์›€์ง์ผ ๋•Œ DOM์„ ์ด์šฉํ•ด์„œ html ์š”์†Œ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์ „์—๋„ ํ•ด๋ดค์—ˆ๋Š”๋ฐ, scroll์˜ ์œ„์น˜๋‚˜ scroll์ด ์›€์ง์ธ ๋†’์ด(?) ๋“ฑ์€ ์˜ค๋Š˜ ์ฒ˜์Œ ๋‹ค๋ค„๋ณด์•˜๋‹ค.
    • scrollTop ์†์„ฑ์„ ์ด์šฉํ•˜๋ฉด ์Šคํฌ๋กค์˜ ํ˜„์žฌ ์œ„์น˜์ด์ž ์Šคํฌ๋กค์„ ์›€์ง์ธ ๊ฑฐ๋ฆฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ณ , scrollHeight๋ฅผ ์ด์šฉํ•˜๋ฉด ํ˜„์žฌ ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์„ค์ •๋œ ์š”์†Œ์˜ ์‹ค์ œ ๋†’์ด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์Šคํฌ๋กค์€ ์‹ค์ œ๋กœ๋Š” ์š”์†Œ์˜ ๋†’์ด๋งŒํผ ์›€์ง์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์•ˆ ๋ณด์ด๋Š” ๋ถ€๋ถ„๋งŒํผ๋งŒ ์›€์ง์ด๋Š” ๊ฒƒ์ด๋ฏ€๋กœ scrollTop ๊ฐ’์— ์š”์†Œ์˜ ๋†’์ด๋ฅผ ๋”ํ•ด ์ฃผ์–ด์•ผ ๋น„๋กœ์†Œ scrollHeight ๊ฐ’๊ณผ ๊ฐ™์•„์ง„๋‹ค. ์—ฌ๊ธฐ์„œ ์š”์†Œ์˜ ๋†’์ด๋Š” clientHeight ์†์„ฑ์„ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๊ฒŒ ๋จธ๋ฆฌ๋กœ๋Š” ์ดํ•ด๊ฐ€ ๋˜๋Š”๋ฐ ์„ค๋ช…ํ•˜๋ ค๋‹ˆ๊นŒ ๋ถ€์กฑํ•œ ๊ฐ์ด ์—†์ง€ ์•Š์•„ ์žˆ๋‹ค. ๋ณด๋‹ค ์‰ฝ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค.
  • ์‹ฌ๋ฆฌํ…Œ์ŠคํŠธ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๋‹ค
    • ํŽ˜์ด์ง€๋ฅผ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค๊ณ , ๋ฒ„ํŠผ์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋‹ฌ์•„์ฃผ๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ์ „์—๋„ ํ•ด๋ณธ ๊ฑฐ๋ผ ๊ดœ์ฐฎ์•˜๋‹ค. ๋ฌธ์ œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‚˜์˜จ ๋’ค๋ถ€ํ„ฐ์ธ๋ฐ... ์ผ๋‹จ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ 1์ฐจ๋กœ ๋ฉ˜๋ถ•์ด ์™”๋‹ค๊ฐ€ ์นด์นด์˜คํ†ก API๋ฅผ ์ด์šฉํ•ด์„œ ๊ณต์œ ํ•˜๊ธฐ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌ๊ฐ„์—์„œ 2์ฐจ๋กœ ๋‹นํ™ฉํ–ˆ๊ณ  ๊ทธ ์ดํ›„๋กœ๋Š”... ๊ฐ€์„œ Node.js ๊ฐ•์˜๋‚˜ ๋” ๋“ค์–ด์•ผ๊ฒ ๋‹ค ใ…Žใ…Ž...
  • ์‹ ๊ธฐํ•œ VSCode ๋‹จ์ถ•ํ‚ค
    • ์–ด๋–ค ๋‹จ์–ด๋ฅผ ๋งˆ์šฐ์Šค๋กœ ๋“œ๋ž˜๊ทธํ•œ ๋’ค ctrl+D๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฐ™์€ ๋‹จ์–ด๋ฅผ ์ „๋ถ€ ์„ ํƒํ•ด์ค€๋‹ค!

๐Ÿ„PROBLEM

  • ๋”ฑํžˆ PROBLEM์— ๋ถ„๋ฅ˜ํ•  ๋งŒํ•œ ์ผ์ด ์—†๋‹ค
    • ๋ฌธ์ œ๋  ๋งŒํ•œ ๊ฒŒ ์—†์œผ๋‹ˆ ์ข‹์€ ๊ฑธ๊นŒ...?

๐Ÿ„TRY

  • ์ผ๊ธฐ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค
    • ์ •ํ™•ํžˆ ๋งํ•˜์ž๋ฉด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ์•ฑ์ด๋‚˜ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค. ์ง€๊ธˆ Node.js ๊ฐ•์˜์—์„œ ํˆฌ๋‘ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์žˆ๋Š”๋ฐ, ์ด๊ฑธ ์‘์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค. ์˜ˆ์ „๋ถ€ํ„ฐ ์†Œ์„ค์„ ์“ฐ๋Š” ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๊ธฐ๋„ ํ–ˆ๊ณ , ์ด๊ฒƒ์ €๊ฒƒ ์ง€์‹์ด ๋Š˜์–ด๊ฐ€๋‹ˆ๊นŒ ์กฐ๊ธˆ๋งŒ ๋” ๊ณต๋ถ€ํ•˜๋ฉด ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์€ ๊ณง ํ™•์‹ ์ด ๋˜์—ˆ๋‹ค. ์˜ˆ์ „ ๋‹ค์Œ ์นดํŽ˜์ฒ˜๋Ÿผ ๊ธ€ ์ข…๋ฅ˜๋ฅผ ์„ ํƒํ•˜๋ฉด ์–‘์‹๋„ ๋ฏธ๋ฆฌ ๋œฐ ์ˆ˜ ์žˆ๊ฒŒ๋” ๋งŒ๋“ค์–ด ๋ณด๊ณ  ์‹ถ๋‹ค.
  • ํ•œ ๋ฒˆ์— ๋„ˆ๋ฌด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฐฐ์šฐ์ง€ ๋ง์ž
    • ์ดํ•ด๊ฐ€ ์–ด๋ ค์šด ๊ฑด ์•„๋‹ˆ๊ณ , ์ •์‹  ์‚ฌ๋‚ฉ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ญ”๊ฐ€ ํ•œ ๊ฐ€์ง€์— ์ง‘์ค‘ ๋ชปํ•˜๋Š” ๊ธฐ๋ถ„์ด๋‹ค. JS๋ž‘ Node.js๋ถ€ํ„ฐ ๋ฐฐ์šฐ๊ณ  HTML์ด๋ž‘ CSS ๋ณต์Šตํ•˜๋ฉด์„œ ๋ฆฌ์•กํŠธ๋ฅผ ๋ฐฐ์šฐ์ž!

0๊ฐœ์˜ ๋Œ“๊ธ€