Input + Output = True

ํ•ญํ•ด99 - 3์ฃผ์ฐจ (์•Œ๊ณ ๋ฆฌ์ฆ˜ && ์ฃผํŠน๊ธฐ ๊ธฐ์ดˆ[React]) ๋ณธ๋ฌธ

๐Ÿ“”๊ฐœ๋ฐœ ์ผ๊ธฐ

ํ•ญํ•ด99 - 3์ฃผ์ฐจ (์•Œ๊ณ ๋ฆฌ์ฆ˜ && ์ฃผํŠน๊ธฐ ๊ธฐ์ดˆ[React])

IOTrue 2022. 12. 25. 16:14

ํ•ญํ•ด99 - 3์ฃผ์ฐจ ํšŒ๊ณ ๋ก ๊ฐ€๋ณด์ž๊ณ !

์˜ค๋Š˜์€ ํฌ๋ฆฌ์Šค๋งˆ์Šค๋‹ค!!! (์˜ฌํ•ด๋Š” ์ผ€๋นˆ์„ ๋ชป ๋ดค๋‹ค!!!๐Ÿ˜‚)

ํฌ๋ฆฌ์Šค๋งˆ์Šค์—๋„ ๊ณต๋ถ€๋Š” ๊ณ„์† ํ•ด์•ผ์ฅฌ?

๋‚˜ํ™€๋กœ ์ฝ”๋”ฉ!!!

 

์ด๋ฒˆ ์ฃผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ๊ฐ€ ๋๋‚˜๊ณ ,

์ฃผํŠน๊ธฐ ๊ธฐ์ดˆ(๋ฆฌ์•กํŠธ)๊ฐ€ ์‹œ์ž‘๋๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ์—๋Š” ๊ฑฐ์˜ ๋ญ ์ผ์ฃผ์ผ ๋‚ด๋‚ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋งŒ ํ’€์—ˆ๋‹ค.

์ธ์ƒ์—์„œ ์ด๋ ‡๊ฒŒ ์ผ์ฃผ์ผ ๋‚ด๋‚ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋งŒ ํ‘ธ๋Š” ๋‚ ์ด ์–ผ๋งˆ๋‚˜ ์žˆ์„๊นŒ ์‹ถ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ๋Šฅ๋ ฅ์ด ๋งŽ์ด ๋Š˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์ฃผ์ฐจ๊ฐ€ ์ง„ํ–‰๋  ์ˆ˜๋ก ๋‚ด ์ฝ”๋“œ์—์„œ ๋…ธ๊ฐ€๋‹ค ์„ฑ์ด ์กฐ๊ธˆ์”ฉ ์˜…์–ด์ง€๋Š” ๊ฒƒ์„ ๋А๊ผˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!๐Ÿ˜€

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ ๋งˆ์ง€๋ง‰ ๋‚ ์—๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋ดค๋Š”๋ฐ, ๋ฌด์‚ฌํžˆ ํ†ต๊ณผํ•œ ๊ฒƒ ๊ฐ™๋‹ค ๐Ÿ˜

 

์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•ด์•ผ์ง€!!!

 

๊ทธ๋ฆฌ๊ณ  ์ฃผํŠน๊ธฐ ๊ธฐ์ดˆ(๋ฆฌ์•กํŠธ)์ฃผ์ฐจ๊ฐ€ ์‹œ์ž‘๋๊ณ 

๋ฆฌ์•กํŠธ ๋ฌธ๋ฒ•์€ ์•„์ง๊นŒ์ง„ ๋‚ฏ์„ค์ง€๋งŒ, ์ต์ˆ™ํ•ด์ง€๋ฉด ์žฌ๋ฐŒ์„ ๋ฌธ๋ฒ• ๊ฐ™๋‹ค.

๋ฌด์–ธ๊ฐ€๋ฅผ ์ฒ˜์Œ๋ณด๊ณ  ์–ด๋ ต๋‹ค ๋А๋ผ๋Š” ๊ฑด ๋‹น์—ฐํ•œ ๋А๋‚Œ์ด๊ณ , ๊ทธ๊ฑด ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ๋А๋ผ๋Š” ๊ธฐ๋ถ„์ผ ๊ฒƒ์ด๋‹ค.

์ต์ˆ™ํ•ด์งˆ๋•Œ ๊นŒ์ง€ ๊ณ„์† ํ•˜๋‹ค๋ณด๋ฉด ์ต์ˆ™ํ•ด์ง€๊ณ  ์žฌ๋ฐŒ์–ด์ง€๊ฒ ์ง€!

๋‹น์—ฐํžˆ ์ด๋ฒˆ ์ฃผ์ฐจ๋„ ๊ณผ์ œ๊ฐ€ ์žˆ๊ณ , ์ง€๊ธˆ์€ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ UI ๊ตฌ์„ฑ๊นŒ์ง€ ์™„๋ฃŒํ•œ ์ƒํƒœ์ธ๋ฐ

ํ•ด๋ณด๋‹ˆ๊นŒ ์žฌ๋ฏธ์žˆ๋‹ค. ์—ญ์‹œ ํ”„๋ก ํŠธ๋Š” ๋„˜๋‚˜๋ฆฌ ์žฌ๋ฐŒ๋Š” ๊ฒƒ!

์–ผ๋ฅธ ์™„์„ฑํ•ด์•ผ์ฅ~~~๐Ÿ˜Ž

ใ…Žใ…Žใ…Žใ…Žใ…Ž

 

๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ ์ฃผ์ฐจ ํšŒ๊ณ  ์ผ์ง€ ์ž‘์„ฑ์— ๊ผญ ํ•„์š”ํ•œ ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์–ด์„œ

์•„๋ž˜์— ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.

 

๐Ÿ˜Ž ์ฝœ๋ฐฑํ•จ์ˆ˜, HTTP

*์ฝœ๋ฐฑํ•จ์ˆ˜

์ฝœ๋ฐฑํ•จ์ˆ˜(Callback Function)
ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜

 

์˜ˆ๋ฅผ ๋“ค๋ฉด forEach, map, filter ๋“ฑ์ด ์žˆ๋‹ค.

const number = [1, 2, 3, 4, 5];

//forEach
number.forEach(x => { //forEachํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ์‹คํ–‰ํ•œ๋‹ค
    console.log(x * 2);
});

//map
number.map(v => v + 2) //mapํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ์‹คํ–‰ํ•œ๋‹ค

 

์ฝœ๋ฐฑํ•จ์ˆ˜ ์‚ฌ์šฉ์—๋Š” ๊ทœ์น™์ด ์žˆ๋‹ค

*์ต๋ช…ํ•จ์ˆ˜ ์‚ฌ์šฉ

์œ„์˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ ์ฝœ๋ฐฑํ•จ์ˆ˜๋Š” ์ด๋ฆ„์ด ์—†๋Š” '์ต๋ช… ํ•จ์ˆ˜'๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์„ ๋ถ™์ด์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

*ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์ „๋‹ฌ

ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ()๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ  ์ด๋ฆ„๋งŒ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค.

function ok() {
  console.log("ok")
}
function no() {
  console.log("no")
}

function callbackTest(value, ok, no) {
  if (value === true) {
    ok()
  } else {
    no()
  }
}

callbackTest(true, ok, no) //์ธ์ž๋กœ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์ „๋‹ฌ
callbackTest(false, ok, no) //์ธ์ž๋กœ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์ „๋‹ฌ

 

 

*HTTP

HTTP (Hyper Text Transfer Protocol)
์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ

์›น ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ HTTP ์˜ ์ง€์‹์€ [ํฌ๋กฌ ๊ฐœ๋ฐœ์ž๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํ•ญ๋ชฉ]์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋ฉด ๋œ๋‹ค.

 

ํฌ๋กฌ > ๊ฐœ๋ฐœ์ž ๋„๊ตฌ > ๋„คํŠธ์›Œํฌ ํƒญ... ๋ญ๊ฐ€ ๋งŽ๋‹ค

 

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์„œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ํ†ต์‹  ํ•˜๊ณ 

๋ณดํ†ต ๋ธŒ๋ผ์šฐ์ €์ธ ํด๋ผ์ด์–ธํŠธ์— ์˜ํ•ด ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์š”์ฒญ(requests)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ,

๊ทธ์— ๋Œ€ํ•ด ์„œ๋ฒ„์—์„œ ์‘๋‹ต์œผ๋กœ ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์‘๋‹ต(responses)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

*HTTP ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์„ฑ

-์‹œ์ž‘์ค„ : ๋ฉ”์„œ๋“œ ๊ตฌ์กฐ ๋ฒ„์ „์œผ๋กœ ๊ตฌ์„ฑ [์˜ˆ) GET / HTTP/1.1]

-ํ—ค๋” : ๋‘๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ํ—ค๋”์ด๋ฉฐ ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

            User-Agent, Upgrade-Insecure-Requests ๋“ฑ ํ—ค๋”์˜ ์ข…๋ฅ˜๋Š” ๋งŽ๋‹ค.

-๋ณธ๋ฌธ : ์‹ค์ œ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ์ปจํ…์ธ ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.

 

*HTTP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

-HTTP์˜ ํ•ต์‹ฌ์€ ์ƒํƒœ๊ฐ€ ์—†๋Š” ๊ฒƒ์ด์ง€๋งŒ HTTP ์ฟ ํ‚ค๋Š” ์ƒํƒœ๊ฐ€ ์žˆ๋Š” ์„ธ์…˜์„ ๋งŒ๋“ค๋„๋ก ํ•ด์ค€๋‹ค.

-HTTP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Cookie์™€ Session์ด ์žˆ๋‹ค

 

*HTTP์˜ ์ƒํƒœ์ฝ”๋“œ

์ธํ„ฐ๋„ท์„ ํ•˜๋‹ค๋ณด๋ฉด 404 Not Found Error, 500 Internal Server Error ๋“ฑ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ

์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ์ƒํƒœ ์ฝ”๋“œ์ด๋‹ค.

1XX ์ •๋ณด
100์€ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์˜ ์ผ๋ถ€๋ฅผ ๋ฐ›์•˜์œผ๋ฉฐ, ๋‚˜๋จธ์ง€ ์š”์ฒญ์„ ๋” ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ.

2XX ์„ฑ๊ณต
200์€ ํ†ต์‹ ์˜ ์„ฑ๊ณต์„ ์˜๋ฏธ.

3XX ๋ฆฌ๋‹ค์ด๋ ‰์…˜
300๋ฒˆ๋Œ€๋Š” ํŽ˜์ด์ง€๋ฅผ ์ด๋™ ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ.

4XX ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜
400์€ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ดํ•ดํ•˜์ง€ ๋ชป ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒ.

5XX ์„œ๋ฒ„ ์˜ค๋ฅ˜
์š”์ฒญ์€ ์ œ๋Œ€๋กœ ์ „์†ก๋˜์—ˆ์ง€๋งŒ ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ.

์„ธ๋ถ€์ ์œผ๋กœ ๋” ๋งŽ์€ ์ƒํƒœ์ฝ”๋“œ๊ฐ€ ์žˆ๊ณ , ์ถ”๊ฐ€ ๋‚ด์šฉ์€ ์ถ”ํ›„ ๊ฒŒ์‹œ๊ธ€์„ ๋”ฐ๋กœ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

 

*HTTP ๋ฉ”์„œ๋“œ

GET(์š”์ฒญ), POST(์ƒ์„ฑ), PUT(์ˆ˜์ •), DELETE(์‚ญ์ œ)

 

์ด์™ธ์—๋„ HTTP์— ๊ด€ํ•œ ๋‚ด์šฉ์€ ์ •๋ง ๋ฐฉ๋Œ€ํ•˜๊ธฐ์—

MDN ๊ณต์‹ ๋งํฌ๋ฅผ ๋‚จ๊ธด๋‹ค.

https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

๐Ÿ˜Ž JavaScript์˜ ES๋ž€?, ES5/ES6 ๋ฌธ๋ฒ• ์ฐจ์ด

์ด ๋‚ด์šฉ์€ ์ง€๋‚œ ํšŒ๊ณ ๋ก์—์„œ ์ •๋ฆฌํ–ˆ๊ธฐ์— ์ •๋ฆฌ ๊ธ€ ๋งํฌ๋ฅผ ๋‚จ๊ธด๋‹ค.

 

์š”์•ฝ: ๋ณ€์ˆ˜์„ ์–ธ/ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด/ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜/ Default parameter ๋“ฑ ๋ฌธ๋ฒ• ์ถ”๊ฐ€

์ž์„ธํžˆ ์ •๋ฆฌํ•ด ๋†จ์œผ๋‹ˆ ๊ผญ ์ฝ์–ด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค.

 

https://iotrue.tistory.com/17

 

ํ•ญํ•ด99 - 2์ฃผ ์ฐจ ํšŒ๊ณ  ํ’€์Šคํƒ ํ”„๋กœ์ ํŠธ && ์–ธ์–ด ๊ธฐ๋ณธ๊ธฐ[javascript]

ํ•ญํ•ด99 - 2์ฃผ ์ฐจ ํšŒ๊ณ  (ํ’€์Šคํƒ ํ”„๋กœ์ ํŠธ && ์–ธ์–ด ๊ธฐ๋ณธ๊ธฐ[javascript]) ํ•ญํ•ด99๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋ฒŒ์จ 2์ฃผ ์ฐจ๊ฐ€ ๋๋‚œ ์ผ์š”์ผ์ด๋‹ค! ๋‹ค์Œ ์ฃผ๊ฐ€ ๋ฒŒ์จ ํฌ๋ฆฌ์Šค๋งˆ์Šค๋ผ๋‹ˆ!!!๐ŸŽ„โ˜ƒ๐ŸŽ +3์ฃผ์ฐจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ๊ฐ€ ์ง„ํ–‰ ์ค‘์ด

iotrue.tistory.com

 

ํฌ๋ฆฌ์Šค๋งˆ์Šค์—๋„ ๋‚˜์™€์„œ ๊ณต๋ถ€ํ•˜๋Š” ์—„์ฒญ๋‚œ ๋ถ„๋“ค์ด ๊ณ„์‹ ๋‹ค!!!

 

ํฌ๋ฆฌ์Šค๋งˆ์Šค์—๋„ ๋‚˜์™€์„œ ์—ด๊ณตํ•˜๋Š” ์šฐ๋ฆฌ ๋™๊ธฐ๋ถ„๋“ค ์‘์›ํ•ฉ๋‹ˆ๋‹ค!

์˜ฌํ•ด๋Š” ์ด๋ ‡๊ฒŒ ์—ด๊ณตํ•ด์„œ ๋‚ด๋…„ ํฌ๋ฆฌ์Šค๋งˆ์Šค๋Š” ์กฐ๊ธˆ ๋” ์žฌ๋ฐŒ๊ฒŒ ๋ณด๋‚ด๋ณด์ž๊ตฌ์š”!

๋ชจ๋‘ ๋ฉ”๋ฆฌํฌ๋ฆฌ์Šค๋งˆ์Šค~~~๐ŸŽ„โ˜ƒ๐ŸŽ

Comments