๐Ÿฅ TIP

[FRONTEND] ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ ๋ฉด์ ‘ ๊ฐœ๋… ์ •๋ฆฌ

Eun_zii 2023. 11. 16. 17:04

๐Ÿ’ก ์ฃผ์†Œ์ฐฝ์— ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ์˜ ํ๋ฆ„์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅ
  2. ๋ธŒ๋ผ์šฐ์ €์—์„œ DNS ์„œ๋ฒ„์— IP์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•˜๊ณ , DNS ์„œ๋ฒ„์—์„œ IP์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  3. ๊ทธํ›„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„์— IP์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•˜๋ฉด ํ˜ธ์ŠคํŒ…์„œ๋ฒ„์—์„œ HTTP๋ฅผ ์š”์ฒญํ•˜๊ณ  ์„œ๋ฒ„์—์„œ HTTP๋ฅผ ์‘๋‹ต
  4. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜๋ฉด์„œ ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค.

๐Ÿ”ฅ  DNS(Domain Name System) ๋ž€? ์›น์‚ฌ์ดํŠธ์˜ IP ์ฃผ์†Œ์™€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ด์–ด์ฃผ๋Š” ํ™˜๊ฒฝ/์‹œ์Šคํ…œ

: ์›น์‚ฌ์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„๋Š” ์ธํ„ฐ๋„ท ํšŒ์„ ์ด ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ/์žฅ์น˜์ธ์ง€๋ผ IP ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋˜์–ด ์žˆ๊ณ  ์ด ์ฃผ์†Œ๊ฐ€ ์‹ค์ œ ์›น์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. DNS ์„œ๋ฒ„๋Š” ์ด๋Ÿฐ IP ์ฃผ์†Œ๋ฅผ ํŠน์ • ๋„๋ฉ”์ธ ์ฃผ์†Œ์™€ ๊ฐ™๋‹ค๋Š” ๊ธฐ๋ก์„ ์ €์žฅํ•ด๋‘๊ณ , ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๋“ค์ด ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ IP ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ํ•ด์ค€๋‹ค.

 

๐Ÿ’ก ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์›น ์‚ฌ์ดํŠธ์— ์ ‘์†
  2. ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTML, CSS, JavaScript์™€ ๊ฐ™์€ ์›น์‚ฌ์ดํŠธ์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์šด ๋ฐ›์Œ( = Resource Downloading)
  3. HTML DOM Tree ๊ตฌ์ถ• : ๋ Œ๋”๋ง ์—”์ง„์€ ์ „๋‹ฌ๋ฐ›์€ HTML ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑ(parsing)ํ•ด DOM(Document Object Model, ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ) ํŠธ๋ฆฌ ํ˜•์„ฑ
  4. CSSOM Tree ๊ตฌ์ถ• : ์ด์–ด์„œ ๋‹ค์šด ๋ฐ›์€ ์™ธ๋ถ€ CSS ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ํฌํ•จ๋œ ์Šคํƒ€์ผ ์š”์†Œ๋ฅผ ํŒŒ์‹ฑ(parsing)ํ•ด CSSOM Tree ํ˜•์„ฑ
  5. Render Tree ๊ตฌ์ถ• : ๋งŒ๋“  DOM ํŠธ๋ฆฌ์™€ CSSOM ํŠธ๋ฆฌ๋ฅผ ๊ฒฐํ•ฉ
  6. Rayout : ๊ฐ ์š”์†Œ๋ฅผ ์–ด๋””์— ๋ฐฐ์น˜ํ•  ์ง€ ๊ฒฐ์ •
  7. Paint : ๋ ˆ์ด์•„์›ƒ ๊ณผ์ •์ด ๋๋‚˜๋ฉด UI ๋ฐฑ์—”๋“œ์—์„œ Render ํŠธ๋ฆฌ๋ฅผ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ๊ณผ์ •

๐Ÿ’ก ๋ฆฌํ”Œ๋กœ์šฐ์™€ ๋ฆฌํŽ˜์ธํŠธ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: ๋ Œ๋”๋ง ๊ณผ์ •์˜ ๋ ˆ์ด์•„์›ƒ์„ ๋ฐ˜๋ณตํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ฆฌํ”Œ๋กœ์šฐ, ํŽ˜์ธํŠธ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ฆฌํŽ˜์ธํŠธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ก ๋ฆฌํ”Œ๋กœ์šฐ์™€ ๋ฆฌํŽ˜์ธํŠธ์˜ ๋ฐœ์ƒ ์กฐ๊ฑด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: ๋ฆฌํ”Œ๋กœ์šฐ๋Š” ์š”์†Œ์˜ ๋„ˆ๋น„, ๋†’์ด, ์œ„์น˜ ๋“ฑ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋ฉฐ, ๋ฆฌํŽ˜์ธํŠธ๋Š” ์š”์†Œ์˜ ์ƒ‰์ƒ, ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ ํ˜น์€ ๋ฆฌํ”Œ๋กœ์šฐ๊ฐ€ ์ผ์–ด๋‚œ ๊ฒฝ์šฐ ๋ฐœ์ƒ

 

๐Ÿ’ก visibility ์†์„ฑ์€ ๋ฆฌํ”Œ๋กœ์šฐ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ๊นŒ์š”?

: visibility ์†์„ฑ์€ ์š”์†Œ๋ฅผ ํ™”๋ฉด์—์„œ ๋ณด์ด๋„๋กํ•˜๋Š” ์†์„ฑ์ด๋ฏ€๋กœ ์š”์†Œํ™” ๊ทธ ๋‚ด์šฉ์ด ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ๋”ฐ๋ผ์„œ, ์ด ์š”์†Œ๊ฐ€๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋˜๋ฉด ๋ฆฌํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… visibility ์†์„ฑ์„ hidden์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ํ™”๋ฉด์—์„œ ์š”์†Œ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฆฌํ”Œ๋กœ์šฐ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ–‡๏ธ Webpack

  • ์ตœ์‹  ํ”„๋ŸฐํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ(Module Bundler)์ž…๋‹ˆ๋‹ค. 

๐Ÿ”ฅ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋ž€? ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์ž์›(HTML, CSS, Javscript, Images ๋“ฑ)์„ ๋ชจ๋‘ ๊ฐ๊ฐ์˜ ๋ชจ๋“ˆ๋กœ ๋ณด๊ณ  ์ด๋ฅผ ์กฐํ•ฉํ•ด์„œ ๋ณ‘ํ•ฉ๋œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“œ๋Š” ๋„๊ตฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  1. ํŒŒ์ผ ๋‹จ์œ„์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ ๊ด€๋ฆฌ์˜ ํ•„์š”์„ฑ
  2. ์›น ๊ฐœ๋ฐœ ์ž‘์—… ์ž๋™ํ™” ๋„๊ตฌ
  3. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„์™€ ๋†’์€ ์„ฑ๋Šฅ

๐Ÿ–‡๏ธ Babel

  • ์ตœ์‹  ๋ฌธ๋ฒ•์„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ†ต์—ญ
  • ๋ธŒ๋ผ์šฐ์ €๋Š” JSX๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค.
    ๊ทธ๋Ÿฌ๋‹ˆ ๋ฐ”๋ฒจ์ด๋ผ๋Š” ํ†ต์—ญ์‚ฌ๋กœ JSX -> Javascript

๐Ÿ–‡๏ธ Prettier

ํ˜‘์—…์„ ํ•˜๊ฒŒ ๋  ๋•Œ, ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ฝ”๋“œ ์Šคํƒ€์ผ์€ ์ •๋ง ์ค‘์š”ํ•˜๋‹ค.
๊ทธ๋ž˜์„œ ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ทœ์น™๋งŒ ์„ค์ •ํ•ด์ฃผ๋ฉด ์•Œ์•„์„œ ์ž๋™์œผ๋กœ ๊ทธ ๊ทœ์น™์— ๋งž๊ฒŒ ์ฝ”๋“œ๋“ค์„ ์ •๋ฆฌํ•ด์ค€๋‹ค.

๐Ÿ–‡๏ธ Eslint

ESLint๊ฐ€ ์ฝ”๋“œ ํ€„๋ฆฌํ‹ฐ๋ฅผ ์ผ๊ด€์ ์œผ๋กœ ์œ ์ง€
๋ฌธ๋ฒ• ์—๋Ÿฌ๋ฅผ ์žก์•„์ฃผ๊ฑฐ๋‚˜ ๋” ์ข‹์€ ์ฝ”๋“œ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

 

๐Ÿ’ก Webpack, Babel, Polyfill์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  1. webpack : ๋ฒˆ๋“ค๋Ÿฌ - JS๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌํ•˜๊ธฐ ์ข‹์€ ํ˜•ํƒœ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. ์—ฌ๋Ÿฌ JSํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋ฉด ์›นํŒฉ์ด ํ•˜๋‚˜์˜ JSํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  2. babel : ์ปดํŒŒ์ผ๋Ÿฌ - ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ ์ตœ์‹  ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€ (๋ฐ”๋ฒจ์€ ๋นŒ๋“œ ์‹œ์ ์— ์ฝ”๋“œ ๋ณ€ํ™˜)
  3. polyfill : ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œ์ค€์— ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ๊ฐ์ฒด๋‚˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ, ์‹คํ–‰ ์‹œ์ ์— ํ˜„์žฌ ํ™˜๊ฒฝ(์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €)์— ํ•ด๋‹น ๊ฐ์ฒด๋‚˜ ํ•จ์ˆ˜(๊ธฐ๋Šฅ)๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ์—†์„ ๋•Œ๋งŒ ์ฃผ์ž…ํ•ด์ฃผ๋Š” ์ฝ”๋“œ (ํด๋ฆฌํ•„์€ ์‹คํ–‰ ์‹œ์ ์— ์ฃผ์ž…)

 

๐Ÿ’ก ESLint์™€ Prettier์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  1. prettier : ์ฝ”๋“œ ๊ทœ์น™์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ ๊ทธ ๊ทœ์น™์— ๋งž๊ฒŒ ์ฝ”๋“œ๋“ค์„ ์ •๋ฆฌํ•ด์ค€๋‹ค
  2. eslint : ๋ฌธ๋ฒ• ์—๋Ÿฌ๋ฅผ ์žก์•„์ฃผ๊ฑฐ๋‚˜ ๋” ์ข‹์€ ์ฝ”๋“œ ๊ตฌํ˜„๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

๐Ÿ’ก CSR๊ณผ SSR์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

CSR์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ทธ๋ฆฐ๋‹ค. ์ฒ˜์Œ ๋กœ๋”ฉ์‹œ jsํŒŒ์ผ์˜ ์šฉ๋Ÿ‰์ด ํด์ˆ˜๋ก ๋กœ๋”ฉ์‹œ๊ฐ„์ด ๊ธธ๋‹ค.
ํ•˜์ง€๋งŒ ์ดˆ๊ธฐ์— ๋กœ๋”ฉ์ด ๋˜๊ณ ๋‚˜๋ฉด ํŽ˜์ด์ง€ ๊ฐ„ ์ด๋™ ์‹œ ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ์ „ํ™˜๋˜๊ณ , ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ์ƒˆ๋กœ๊ณ ์นจ๋˜๋Š” ํ˜„์ƒ๋„ ์‚ฌ๋ผ์ง„๋‹ค(= SPA).

 

SSR์€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์™„์ „ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ง„ htmlํŒŒ์ผ์„ ๋ฐ›์•„์™€ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹. ์ฒซ ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ์‹œ๊ฐ„์ด CSR์— ๋น„ํ•ด ์งง๋‹ค.
์ด๋ฏธ ๋ Œ๋”๋ง๋œ ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์„œ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. SEO ์ธก๋ฉด์—์„œ๋„ ์œ ๋ฆฌํ•˜๋‹ค.
๊ฒ€์ƒ‰์—”์ง„์ด ํฌ๋กค๋ง์„ ํ•  ๋•Œ ์„œ๋ฒ„์— ์ด๋ฏธ ํ•˜๋“œ์ฝ”๋”ฉ๋œ html ํŒŒ์ผ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์—”์ง„์ด ์ด ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š”๋ฐ ์šฉ์ดํ•˜๋‹ค.

 

๐Ÿ’ก CORS์™€ ํ•ด๊ฒฐ ๊ฒฝํ—˜์„ ๋ง์”€ํ•ด์ฃผ์„ธ์š”.

: ๋‹ค๋ฅธ ์ถœ์ฒ˜์—์„œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋ ค๋Š” ์‹œ๋„๋ฅผ ์ œํ•œํ•˜๋Š” ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ ํ•  ๋•Œ CORS ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

์„œ๋ฒ„ ์ธก ์„ค์ • / ํ”„๋ก์‹œ ์„œ๋ฒ„ ์‚ฌ์šฉ

 

๐Ÿ’ก ์ฟ ํ‚ค, ์„ธ์…˜, ์›น์Šคํ† ๋ฆฌ์ง€์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์—, ์„ธ์…˜์€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ์„ธ์…˜์ด ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์„ฑ์€ ๋†’์ง€๋งŒ ์†๋„๋Š” ๋‚ฎ๋‹ค.

์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ๋‚จ์•„์žˆ์œผ๋ฉด ์กด์žฌํ•˜์ง€๋งŒ, ์„ธ์…˜์€ ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ์ข…๋ฃŒ ๋œ๋‹ค.

์›น ์Šคํ† ๋ฆฌ์ง€๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๊ณ , ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์œ ํ˜•์ด ์žˆ์œผ๋ฉฐ, ์ด๋“ค์€ ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์˜๊ตฌ์  ๋˜๋Š” ์ž„์‹œ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์Šคํ† ๋ฆฌ์ง€๋Š” ์ฟ ํ‚ค๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋” ๋น ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ’ก ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”?

: ์•„์ด๋”” ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ• ๋•Œ๋Š” ์ฟ ํ‚ค / ์ž๋™ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์€ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€ / ์ž„์‹œ๋กœ ์œ ์ง€๋˜๋Š” ์ž…๋ ฅํผ ๋˜๋Š” ์ผํšŒ์„ฑ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์€ ์„ธ์…˜์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๐Ÿ’ก ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•(cross browsing)์ด๋ž€? ์›น ํŽ˜์ด์ง€ ์ œ์ž‘ ์‹œ์— ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊นจ์ง€์ง€ ์•Š๊ณ  ์˜๋„ํ•œ ๋Œ€๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ(ํ˜ธํ™˜์„ฑ) ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. (HTML5, CSS3, Javascript ์ž‘์„ฑ ์‹œ ์›น ๊ทœ๊ฒฉ์— ๋งž๋Š” ์ฝ”๋”ฉ์„ ํ•จ์œผ๋กœ์จ ์–ด๋Š ๋ธŒ๋ผ์šฐ์ €, ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์ดํŠธ๊ฐ€ ์˜๋„๋œ ๋Œ€๋กœ ๋ณด์—ฌ์ง€๊ณ  ์ž‘๋™๋˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.)

 

๐Ÿ’ก REST API์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: REST API๋Š” HTTP ์š”์ฒญ์„ ํ†ตํ•ด ํ†ต์‹ ํ•จ์œผ๋กœ์จ ๋ฆฌ์†Œ์Šค ๋‚ด์—์„œ ๋ ˆ์ฝ”๋“œ(CRUD ๋ผ๊ณ ๋„ ํ•จ)์˜ ์ž‘์„ฑ, ์ฝ๊ธฐ, ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œ ๋“ฑ์˜ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ก ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

: ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™” ์‹œ์ผœ ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ์ฒด๋“ค๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

๐Ÿ’ก ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง•์— ๋Œ€ํ•ด ๋ง์”€ํ•ด์ฃผ์„ธ์š”.

: ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํฌ๊ฒŒ ์ถ”์ƒํ™” , ์บก์Šํ™” , ์ƒ์† , ๋‹คํ˜•์„ฑ ์˜ ๋„ค๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

  • ์ถ”์ƒํ™”๋Š” ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋Š” ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • ์บก์Šํ™”๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๊ฒฐํ•ฉ ์‹œ์ผœ ๋ฌถ๋Š” ๊ฒƒ (๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๊ฒƒ์„ ๋œปํ•จ) / ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๋Š” ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ํด๋ž˜์Šค๋ผ๋Š” ์บก์Š์— ๋„ฃ์–ด์„œ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์žฌํ™œ์šฉ์ด ์›ํ™œํ•˜๋‹ค.
  • ์ƒ์†์€ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์— ๋ฌผ๋ ค์ฃผ๊ฑฐ๋‚˜ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
  • ๋‹คํ˜•์„ฑ์€ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ๊ฐ™์€ ์ด๋ฆ„์˜ ํ–‰์œ„๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ํ–‰์œ„๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ๋ง์”€ํ•ด์ฃผ์„ธ์š”.

:

์žฅ์ 

  • ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™”์‹œ์ผœ์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฌด ๋ถ„๋‹ด์ด ํŽธ๋ฆฌํ•˜๊ณ  ๋Œ€๊ทœ๋ชจ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•˜๋‹ค.
  • ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ํŽธ๋ฆฌํ•˜๋‹ค.
  • ํด๋ž˜์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ƒ์†์„ ํ†ตํ•ด ํ™•์žฅํ•จ์œผ๋กœ์จ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์ด ์šฉ์ดํ•˜๋‹ค.

๋‹จ์ 

  • ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆฌ๋‹ค.
  • ๊ฐ์ฒด์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง์— ๋”ฐ๋ผ ์šฉ๋Ÿ‰์ด ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ์„ค๊ณ„์‹œ ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ’ก SEO์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™” - ๊ฒ€์ƒ‰์„ ํ•˜๋ฉด ๊ฒ€์ƒ‰์—”์ง„์€ ์ธ๋ฑ์‹ฑํ•ด๋‘” ์ˆ˜๋งŽ์€ ์›น ํŽ˜์ด์ง€ ์ค‘ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ˆœ์„œ๋Œ€๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋…ธ์ถœํ•˜๋Š”๋ฐ ๊ทธ์ค‘ 

์ž์‹ ์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ๋” ๋งŽ์ด ๋…ธ์ถœ๋˜๋„๋ก ์ตœ์ ํ™”๋œ ์ž‘์—…์„ ๋งํ•œ๋‹ค.

 

๐Ÿ’ก SEO๋Š” ์–ด๋–ค ์‹์œผ๋กœ ์‹ ๊ฒฝ์“ฐ์…จ๋‚˜์š”?

: ์ •ํ™•ํ•ญ ๋ฉ”ํƒ€ ํƒœ๊ทธ ์ž‘์„ฑ , ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„ ์ค„์ด๊ธฐ ๋“ฑ

 

๐Ÿ’ก dependencies ์™€ devDependencies ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

: dependencies์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™์ž‘๊ณผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ด€๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ , devDependencies์—๋Š” ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•œ๋‹ค. devDependencies์— ํฌํ•จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‹ค์ œ ๋ฐฐํฌํ•  ๋•Œ ํฌํ•จ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

โค๏ธ ๋„์›€์ฃผ์‹ ๋ถ„:

728x90