๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ“บ Front End71

[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] React๋ฅผ ๋ถ„์„ํ•ด๋ณด์ž. (๋ถ€์ œ :: create-react-app์— ๋Œ€ํ•ด ๋ถ„์„ํ•ด๋ณด์ž) ๋ฆฌ์•กํŠธ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋ฆฌ์•กํŠธ๋Š” ํŽ˜์ด์Šค๋ถ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๋Œ€๋ถ€๋ถ„ ์˜คํ•ดํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฆฌ์•กํŠธ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ์—ฌ๋Ÿฌ javascript ํ”„๋ ˆ์ž„์›Œํฌ๋“ค๊ณผ ํ™•์‹คํžˆ ๋‹ค๋ฅด๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์˜คํ•ดํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋‚ด์šฉ์€ React๋Š” ์›น ๊ฐœ๋ฐœ์— ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค React๋Š” UI๋ฅผ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์กฐ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” UI๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. React ์ž…๋ฌธํ•˜๊ธฐ ์šฐ๋ฆฌ๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ๋ผ์šฐํŒ…, ๋นŒ๋“œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ, ๋ถ„์„๋“ฑ๊ณผ ๊ฐ™์€ ์„ธํŒ…์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค. ์˜ˆ์ „์—๋Š” ๊ฐœ์ธ๋“ค์ด ๋‚ด๋Š” Bolierplate ๋ฆฌ์•กํŠธ์— ์˜์กดํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ–ˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ, ๊ทธ์— ๋”ฐ๋ฅธ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์— ๋ถˆํŽธํ•จ์„ ๋Š๋‚€ ๊ฐœ๋ฐœ์ž.. 2020. 7. 19.
[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] ์šฐ๋ฆฌ๋Š” ์™œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•ด์•ผ ํ• ๊นŒ? ์šฐ๋ฆฌ๋Š” ์›น์„ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด HTML / CSS / Javascript๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์„ ๋ฐฐ์›Œ๋ณธ ๋ˆ„๊ตฌ๋‚˜๋„ ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์™œ React, Vue, Angular์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ•ด์•ผ ํ• ๊นŒ? ๋‹จ์ง€ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ? ํŽธํ•œ ๊ตฌ์กฐ๋ฅผ ์œ„ํ•ด์„œ? ๊ทธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์„ ์ œ๋Œ€๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋˜์–ด๋ณด์ž. ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ  ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋ฅผ ๋จผ์ € ์ด์•ผ๊ธฐ ํ•ด๋ณด์ž๋ฉด *_UI ์—…๋ฐ์ดํŠธ *_์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค ์›น ์•ฑ์€ ๋‹จ์ˆœํžˆ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์—์„œ ๋๋‚˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด ๋™์ ์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ๋„ ๋ณ€๊ฒฝ๋œ UI๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ˜์‘ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” UI๋ฅผ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค๋Š” ์ ์—์„œ ์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€.. 2020. 7. 19.
[Javascript-Core] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ null๊ณผ undefined ๋‚ด ์ฃผ ์–ธ์–ด๋Š” ์ž๋ฐ”์ด๋‹ค. ์ž๋ฐ”์—์„œ ๋ณดํ†ต ๊ฐ’์ด ์—†์Œ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋Œ€ํ‘œ์ ์œผ๋กœ null์ด ์žˆ๋‹ค. Spring ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๊ฐ€ ์ž์ฃผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜๋Š” nullPointException. ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์—†์Œ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2 ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. null undefined ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฒƒ์€ ์ด ๋‘ ๊ฐ€์ง€ ์—†์Œ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. null null์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ’์ด ์—†์Œ์„ ์˜๋ฏธํ•œ๋‹ค. null์€ ๋ณ€์ˆ˜ ํ• ๋‹น ๊ณผ์ •์—์„œ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ null์„ ๋งŒ๋‚˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž„์˜์ ์œผ๋กœ null์ด๋ผ๋Š” ๊ฒƒ์„ ํ• ๋‹นํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ null์„ ๊ณ ์˜์ ์ธ ๋น„ํ• ๋‹น์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. undefined undefined๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์•„์ง ํ• ๋‹น๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Ÿฐ ์ƒ.. 2019. 11. 29.
[Javascript-Core] ๋ณ€์ˆ˜์˜ ์„ ์–ธ var๊ณผ let ๊ทธ๋ฆฌ๊ณ const์˜ ์ฐจ์ด :: Difference among var and let and const ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฑ…์„ ๋ดค์„ ๋•Œ, ๋Œ€๋ถ€๋ถ„์˜ ์ฑ…์—์„œ var์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ผ๊ณ  ๊ฐ€๋ฅด์นœ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์˜ˆ์ „์— ์†Œ๋งˆ๋ฅผ ์ค€๋น„ํ•  ๋•Œ ์†Œ๋งˆ ์‹œํ—˜์„ ์œ„ํ•ด ์ž ๊น ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜ ์ ์ด ์žˆ๋Š”๋ฐ, ๊ทธ ๋•Œ var๋Œ€์‹  let์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ผ๊ณ  ํ–ˆ๋˜ ๊ธ€์„ ๋ณธ ์ ์ด ์žˆ์—ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ ๋‘ ์ฐจ์ด์ ์„ ํ™•์‹คํžˆ ๋น„๊ตํ•ด๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋ณด์ž. ๊ฒฐ๋ก  var let const ์žฌ์„ ์–ธ O X X ์žฌํ• ๋‹น O O X ์ƒ์กด ๋ฒ”์œ„ Funtion Scope(ํ•จ์ˆ˜) Block Scope(์ค‘๊ด„ํ˜ธ) Block Scope(์ค‘๊ด„ํ˜ธ) ๋ณ€์ˆ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋„ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๊ฐ™์ด ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜๋Š” variable์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด์„œ ํŠน์ •.. 2019. 11. 29.
[Javascript-Core] JavaScript ์˜ ํŠน์ง•๊ณผ ๋‹ค๋ฅธ ์–ธ์–ด์™€์˜ ์ฐจ์ด์  Javascript์™€ ๋‹ค๋ฅธ ์–ธ์–ด์˜ ์ฐจ์ด์  ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ์ปดํŒŒ์ผ ์–ธ์–ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ปดํŒŒ์ผ(Compile) ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ปดํŒŒ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ธ์–ด๋ฅผ ์ปดํŒŒ์ผ ์–ธ์–ด ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ C, C++, C# ๋“ฑ์ด ์žˆ๋‹ค. ์ปดํŒŒ์ผ ์–ธ์–ด๋Š” ์ปดํŒŒ์ผ ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋งŒ ์‹คํ–‰๋˜๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. Build Time Source์— ๋Œ€ํ•œ ๊ธฐ๊ณ„์–ด ๋ฒˆ์—ญ Run Time ๊ธฐ๊ณ„์–ด ๋ฒˆ์—ญ ํ›„ ๊ธฐ๊ณ„๋กœ ์ „๋‹ฌ. ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ•œ ์ค„๋งˆ๋‹ค ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๋ฐฉ์‹์„ ์ทจํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๋Š” ํ•œ ์ค„ ํ•œ ์ค„.. 2019. 11. 29.
6. HTML ํผ ํƒœ๊ทธ ํผ(form) ์›น์—์„œ๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์›น ์„œ๋ฒ„์˜ ์ผ๋ฐฉํ–ฅ์  ์ •๋ณด ์ „๋‹ฌ ๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž์™€ ์›น ์„œ๋ฒ„๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์–‘๋ฐฉํ–ฅ์  ํŠน์„ฑ์„ ์œ„ํ•ด ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํผ ํƒœ๊ทธ์˜ ์‚ฌ์šฉ ํผ ํƒœ๊ทธ HTML ๋ฌธ์„œ์—์„œ ํผ์„ ํ†ตํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์›น ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค. ํƒœ๊ทธ ์•ˆ์— ๋˜๋‹ค๋ฅธ ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. action : ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ํ”„๋กœ๊ทธ๋žจ์˜ rul method : ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• get : query string์ด ๊ทธ๋Œ€๋กœ url์— ๋‚˜ํƒ€๋‚˜๋ฉฐ ๋ฐ์ดํ„ฐ ์–‘์ด ์ œํ•œ๋˜๊ณ  ๋…ธ์ถœ๋œ๋‹ค. post : message body์— ํฌํ•จ์‹œ์ผœ ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉฐ ์–‘์˜ ์ œํ•œ์ด ์—†์œผ๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค. encrypte : "application/x-www-form-urlencoded(๊ธฐ๋ณธ.. 2019. 11. 29.