๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’Ž/๋ถ€์ŠคํŠธ์ฝ”์Šค

[๋ถ€์ŠคํŠธ์ฝ”์Šค] ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ FE: JavaScript 1 ๋ณ€์ˆ˜-์—ฐ์‚ฐ์ž-ํƒ€์ž…

by dar0m! 2020. 2. 11.

๋ฒŒ์จ 2. DB ์—ฐ๊ฒฐ ์›น ์•ฑ ํŒŒํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด์„œ ์•„๋ž˜ ํ•™์Šต ๋ชฉํ‘œ๋“ค์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜๋Š”๋ฐ ์˜ค๋Š˜์€ ๊ทธ ์ค‘ JavaScript์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต ๋ชฉํ‘œ

  1. JavaScript์˜ ๊ธฐ๋ณธ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•œ๋‹ค.
  2. DOM, Browser Event, Ajax์ด ๊ฐ๊ฐ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•ด ์›นํ™”๋ฉด์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. JSP์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ดํ•ดํ•˜๊ณ  redirect & forward ์™€ scope๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
  4. JSTL๊ณผ EL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
  5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ฐ„๋‹จํ•œ SQL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
  6. Maven์„ ์ดํ•ดํ•˜๊ณ  Maven์„ ์ด์šฉํ•œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. 
  7. JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 
  8. Web API๋ฅผ ์ดํ•ดํ•œ๋‹ค. 

https://www.edwith.org/boostcourse-web/lecture/16693/

 

[LECTURE] 1) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜-์—ฐ์‚ฐ์ž-ํƒ€์ž… : edwith

๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์ปดํŒŒ์ผ ๋‹จ๊ณ„๊ฐ€ ์—†๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ type(ํ˜•)์€ ์‹คํ–‰๋‹จ๊ณ„์—์„œ ํƒ€์ž…์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์„ ์–ธ์€ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํƒ€์ž…์€ ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.... - ๋ถ€์ŠคํŠธ์ฝ”์Šค

www.edwith.org

 

1) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜-์—ฐ์‚ฐ์ž-ํƒ€์ž…

ํ•™์Šต ๋ชฉํ‘œ

  1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ์„ ์–ธ, ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ, Type์„ ์ดํ•ดํ•œ๋‹ค.

ํ•ต์‹ฌ ๊ฐœ๋…

  • ๋ณ€์ˆ˜์„ ์–ธ
  • ์—ฐ์‚ฐ์ž
  • Type ์ข…๋ฅ˜
  • Type ํ™•์ธ ๋ฐฉ๋ฒ•

๋ณ€์ˆ˜

๋ณ€์ˆ˜๋Š” var, let, const ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€์— ์˜ํ•ด์„œ scope, ์ฆ‰ ๋ณ€์ˆ˜์˜ ์œ ํšจ๋ฒ”์œ„๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ES6์ด์ „๊นŒ์ง€๋Š” var๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • function-scoped : ํ•จ์ˆ˜ ๋‹จ์œ„๋กœ ๋ฒ”์œ„ ์ง€์ •
    ๐Ÿ‘‰ var
  • block-scoped : ๋Œ€๊ด„ํ˜ธ({}) ๋‹จ์œ„๋กœ ๋ฒ”์œ„ ์ง€์ •
    ๐Ÿ‘‰ let, const

var๊ณผ ๋น„๊ตํ•˜์—ฌ let๊ณผ const์˜ ์ด์ ์€ '๋ณ€์ˆ˜ ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ'์ž…๋‹ˆ๋‹ค.

let๊ณผ const์˜ ์ฐจ์ด๋Š” '์žฌํ• ๋‹น์—ฌ๋ถ€'์ž…๋‹ˆ๋‹ค. let์€ ๋ณ€์ˆ˜์— ์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, const๋Š” ๋ณ€์ˆ˜ ์žฌ์„ ์–ธ, ์žฌํ• ๋‹น ๋ชจ๋‘ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

javascript var, let, const ์ฐจ์ด์ 

javascript var, let, const ์ฐจ์ด์ . GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

์—ฐ์‚ฐ์ž

  • ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž
    ๐Ÿ‘‰ +, - *, /, %
  • ๋ฌธ์ž์—ด์—ฐ์‚ฐ์ž
  • ์ฆ๊ฐ์—ฐ์‚ฐ์ž
    ๐Ÿ‘‰ ++, --
  • ๋Œ€์ž…์—ฐ์‚ฐ์ž
    ๐Ÿ‘‰ =, +=, -=, /=, *=, %=
  • ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž
    ๐Ÿ‘‰ &&, ||, !
  • ์‚ผํ•ญ์—ฐ์‚ฐ์ž
    ๐Ÿ‘‰ (์กฐ๊ฑด ? ์ฐธ : ๊ฑฐ์ง“)
  • ๋น„๊ต์—ฐ์‚ฐ์ž
    ๐Ÿ‘‰ ==, ===, !=, >, <, >=, <=

OR ์—ฐ์‚ฐ์ž(||)๋Š”
๋ฐ์ดํ„ฐ ์„ ์–ธํ• ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ฒฝ์šฐ์—๋Š” name์ด๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์˜ค๋ฅธ์ชฝ ์ธ์ž๋ฅผ ๋ณด๊ธฐ๋„ ์ „์— true ํŒ์ •์ด ๋‚˜์„œ result๋ณ€์ˆ˜์— name์˜ ๊ฐ’์ธ "crong"์„ ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

const name = "crong";
const result = name || "codesquad";

== ๋น„๊ต์—ฐ์‚ฐ์ž๋Š”
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ํƒ€์ž…์„ ๋ฐ”๊ฟ”์„œ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์—
ํƒ€์ž…๊นŒ์ง€ ๋น„๊ตํ•˜๋ ค๋ฉด === ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์Šต๊ด€์ ์œผ๋กœ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Type

  • ์ข…๋ฅ˜
  • ํ™•์ธ ๋ฐฉ๋ฒ•
    ๐Ÿ‘‰ typeof(), toString.call()

typeof๋Š” ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • undefined : ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ’์ด ์—†์„ ๋•Œ
  • number : ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์ˆ˜์ผ ๋•Œ
  • string : ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋ฌธ์ž์—ด์ผ ๋•Œ
  • boolean : ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋ถˆ๋ฆฌ์–ธ์ผ ๋•Œ
  • object : ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ํ•จ์ˆ˜, ๋ฐฐ์—ด ๋“ฑ ๊ฐ์ฒด์ผ ๋•Œ
  • function : ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ํ•จ์ˆ˜์ผ ๋•Œ
  • symbol : ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์‹ฌ๋ณผ์ผ ๋•Œ

+ ์‹ฌ๋ณผ(symbol)์€ ES6์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ 7๋ฒˆ์งธ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์ด๋‹ค. ์‹ฌ๋ณผ์€ ์ฃผ๋กœ ์ด๋ฆ„์˜ ์ถฉ๋Œ ์œ„ํ—˜์ด ์—†๋Š” ์œ ์ผํ•œ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค(property key)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

toString.call()์€ ์ผ๋ฐ˜์ ์ธ ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํƒ€์ž…์„ ํ™•์ธํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

https://poiemaweb.com/es6-symbol

 

Symbol | PoiemaWeb

Symbol์€ ES6์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ 7๋ฒˆ์งธ ํƒ€์ž…์ด๋‹ค. Symbol์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์—์„œ ์œ ์ผํ•˜๋ฉฐ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ(immutable) ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์ด๋‹ค. ์ฃผ๋กœ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค(property key)๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

poiemaweb.com

 

[Quiz]
ํ€ด์ฆˆ! ์ด๊ฒƒ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?
> var result = false && true;

false!! ๐Ÿ‘ˆ๋‹ต์„ ๋ณด๋ ค๋ฉด ๋“œ๋ž˜๊ทธ

ํ•ด์„ค

์ด ์ฝ”๋“œ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด &&์—ฐ์‚ฐ์ž๋Š” ๋ชจ๋“  ๊ฐ’์ด true์ธ์ง€๋ฅผ ํ™•์ธํ•˜์ง€๋งŒ, ์ฒซ๋ฒˆ์งธ๊ฐ€ ์ด๋ฏธ false๋ผ๋ฉด ๊ทธ ์ดํ›„์˜ ๊ฐ’์€ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜‘๋˜‘ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๊ทธ๋ ‡๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜, ์—ฐ์‚ฐ์ž, ํƒ€์ž…์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์‹œ๊ฐ„์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๊ต, ๋ฐ˜๋ณต, ๋ฌธ์ž์—ด์—๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€