DevLog

[โœ๏ธ Project Dev Log] 2022-01-07 ๋ณธ๋ฌธ

๐Ÿ“ Project - Dev Log

[โœ๏ธ Project Dev Log] 2022-01-07

Seungjae Lee 2022. 1. 8. 01:10

์˜ค๋Š˜์€ ์–ด๋–ป๊ฒŒ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ–ˆ๋‚˜์š”?

  • naver oauth2.0 ์†Œ์…œ๋กœ๊ทธ์ธ API๊ตฌํ˜„ ์™„๋ฃŒ
  • lounge์™€ ๊ด€๋ จํ•œ ์ปจํŠธ๋กค๋Ÿฌ ์„ค์ •๊ณผ ๋ผ์šฐํŒ…์„ค์ • ์™„๋ฃŒ

์˜ค๋Š˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ํž˜๋“  ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

- Query Parameter & Path Variable

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ๋•Œ ๋Œ€๋ถ€๋ถ„ post ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌ๋ฐ›์•„์„œ req.body๋ฅผ ์ด์šฉํ•ด์„œ๋งŒ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ–ˆ์—ˆ๋Š”๋ฐ lounge์ชฝ API๋Š” get ์š”์ฒญ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๊ฐ€ ๋˜์–ด์žˆ์–ด์„œ get ์š”์ฒญ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๋‹ˆ get ์š”์ฒญ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค.

์ฒซ์งธ๋Š” Query Parameter๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณด๋‚ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋‘˜์งธ๋Š” Path Variable์„ ์‚ฌ์šฉํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด ์žˆ์—ˆ๋‹ค
๊ฐ๊ฐ์˜ ๋ฐฉ๋ฒ•๋“ค์€ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์€๋ฐ
Query Parameter๋Š” ์ •๋ ฌ์ด๋‚˜ ํ•„ํ„ฐ๋ง์„ ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๊ณ ,
Path Variable์€ resource๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

API๋ฅผ ์„ค๊ณ„ํ•˜๋Š”๋ฐ ์ •๋‹ต์€ ์—†์ง€๋งŒ, best์— ๊ฐ€๊นŒ์šด ๋ฐฉ๋ฒ•์€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค ์ƒํ™ฉ๋งˆ๋‹ค ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ์ž˜ ๊ณ ๋ คํ•ด์„œ ์„ค๊ณ„ํ•ด์•ผ๊ฒ ๋‹ค.

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์„ค๊ณ„๋œ ๋ฐฉ๋ฒ•์€ Path Variable์„ ์‚ฌ์šฉํ•ด์„œ ์„ค๊ณ„๋˜์–ด์žˆ์–ด์„œ

router.get('/info/:loungeId', loungeController.info.particular)
// Path Variable ๋ผ์šฐํŒ… ๋ฐฉ์‹

http://localhost:80/lounge/info/:777
// Path Variable URL

Path Variable ๋ฐฉ์‹์œผ๋กœ ๋ผ์šฐํŒ…์„ ์„ค๊ณ„ํ•˜๊ณ  postman์„ ์ด์šฉํ•ด์„œ ์š”์ฒญ์ด ์ž˜ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋Š”๋ฐ
์œ„์˜ URL๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ ์ˆซ์ž '777'์„ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด ๋ดค๋Š”๋ฐ

console.log(req.params.loungeId);
// :777

์ฝ˜์†”๋กœ๊ทธ๊ฐ€ '777'์ด ์•„๋‹Œ ์ฝœ๋ก ์ด ์•ž์— ๋ถ™์–ด์žˆ๋Š” ':777'์„ ๊ฐ€์ ธ์™”๋‹ค
๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง์„ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•ด๋ดค๋Š”๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐ๋Š”๋ฐ ์™œ ์ฝœ๋ก ์ด ๋ถ™๋Š”์ง€์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ ๋Œ€์•ˆ์œผ๋กœ Query Parameter๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž๊ณ  ์ƒ๊ฐํ•˜๊ณ 

router.get('/info', loungeController.info.particular)
// Query Parameter ๋ผ์šฐํŒ… ๋ฐฉ์‹

http://localhost:80/lounge/info?loungeId=777
// Query Parameter URL

URL๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ํ‚ค๊ฐ’์— ์ˆซ์ž '777'์„ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด ๋ดค๋Š”๋ฐ

console.log(req.query.loungeId);
// 777

์ˆซ์ž '777'์„ ์ž˜ ๊ฐ€์ ธ์™”๋‹ค
๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋ฐฉ๋ฒ•์„ ํŒ€์›๋“ค์ด ์•Œ๊ณ  ์žˆ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ํŒ€์›๋“คํ•œํ…Œ ๋„์›€์„ ์š”์ฒญํ–ˆ๊ณ 
๋ฌธ์ œ๋Š” ์ „ํ˜€ ์ƒ๊ฐ์ง€๋„ ๋ชปํ•œ ๊ณณ์ด์—ˆ๋‹ค, ๊ทธ๊ฑด ๋‚ด๊ฐ€ post man์„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ค„ ๋ชฐ๋ผ์„œ ์ƒ๊ธด ๋ฌธ์ œ์˜€๋‹ค.

http://localhost:80/lounge/info/:777
// ์ž˜๋ชป๋œ ํ…Œ์ŠคํŠธ URL
http://localhost:80/lounge/info/:loungeId
// ์˜ณ์€ ํ…Œ์ŠคํŠธ URL

์œ„์˜ URL์ด ์•„๋‹Œ ์•„๋ž˜์˜ URL๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ 


key๊ฐ€ loungeId์ธ value๊ฐ’์— 777์„ ๋„ฃ์–ด ํ…Œ์ŠคํŒ…์„ ํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์˜ฌ๋ฐ”๋ฅธ ํ…Œ์ŠคํŒ… ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ ์ˆซ์ž '777'์ด ์ž˜ ์ถœ๋ ฅ๋˜์—ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ์— ์žˆ์–ด์„œ ์˜ค๋žœ ์‹œ๊ฐ„ ๊ณ ๋ฏผํ•˜๊ณ  ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์€ ๋ฌธ์ œํ•ด๊ฒฐ ๋Šฅ๋ ฅ์— ๋„์›€์ด ๋˜์ง€๋งŒ
์˜ค๋Š˜์ฒ˜๋Ÿผ ์ „ํ˜€ ์˜ˆ์ƒ ๋ชป ํ•œ ๊ณณ์—์„œ ํ—ค๋งค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ธฐ์— ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ์˜ค๋žœ ๊ณ ๋ฏผ์€ ์˜คํžˆ๋ ค ์‹œ๊ฐ„ ๋‚ญ๋น„๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

๋•Œ๋กœ๋Š” ๊ฐ€๊นŒ์šด ๋™๋ฃŒ๋“ค์—๊ฒŒ ๋น ๋ฅด๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

๋‚ด์ผ์€ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋‚˜์š”?

  • ์ฃผ๋ง ๊ฐ„ ํ”„๋กœ์ ํŠธ ์ผ์ •๋ถ€๋ถ„ ์ง„ํ–‰ํ•˜๊ธฐ
  • aws ๋ฐฐํฌํ•ด๋ณด๊ธฐ

'๐Ÿ“ Project - Dev Log' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[โœ๏ธ Project Dev Log] 2022-01-10  (0) 2022.01.10
[โœ๏ธ Project Dev Log] 2022-01-08  (0) 2022.01.08
[โœ๏ธ Project Dev Log] 2022-01-06  (0) 2022.01.06
[โœ๏ธ Project Dev Log] 2022-01-05  (0) 2022.01.06
[โœ๏ธ Project Dev Log] 2022-01-04  (0) 2022.01.04
Comments