UMC ์„œ๋ฒ„ ์„ธ๋ฏธ๋‚˜ 7์ฃผ์ฐจ

2022. 11. 9. 19:22ใ†UniversityMakeUsChallenge/UMCServer

 

 

 

 

 

 

 

 

restful?!
CRUD๋ž€? (Create,Read,Update,Delete)
์Šคํ”„๋ง๊ณผ ์Šคํ”„๋ง๋ถ€ํŠธ์˜ ์ฐจ๋ณ„์  (dependency ๋ฌธ์ œ ํ•ด๊ฒฐ) -> ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ๋„ ์ž์ฃผ ๋‚˜์˜จ๋‹ค. ์ž˜ ์•Œ์•„๋‘๊ธฐ!
ํด๋ผ์ด์–ธํŠธ(ํ”„๋ก ํŠธ์—”๋“œ)๊ฐ€ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ๋ฒ•

์–ด๋– ํ•œ ํ˜•ํƒœ๋กœ ๊ฐ’์ด ๋‚˜์˜ค๋Š”์ง€ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜,

์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜์˜ฌ ๋•Œ, ์–ด๋–ป๊ฒŒ ์ž˜๋ชป ์š”์ฒญํ•œ ๊ฒƒ์ธ์ง€ ํŒŒ์•…ํ•˜์—ฌ ์ œ๋Œ€๋กœ ์š”์ฒญํ•ด๋ผ ๋“ฑ๋“ฑ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•จ

- ๋ช…์‚ฌ ์“ฐ๋ฉด ์ข‹๋‹ค

- ๋ณต์ˆ˜ํ˜•์ด ์ข‹๊ธด ํ•˜์ง€๋งŒ, ํ†ต์ผ๋˜๋ฉด ๊ดœ์ฐฎ๋‹ค

- ํด๋”๋ช…์€ ๋ณต์ˆ˜ํ˜• ๊ถŒ์žฅ (์—ฌ๋Ÿฌ ์œ ์ €๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋‹ˆ, Users)

 

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ: ์ด์ œ ํ…œํ”Œ๋ฆฟ ์ œ๊ณต -> ์Šค์ผˆ๋ ˆํ†ค ๊ตฌ์กฐ๋ณด๋‹ค ์ข€ ๋” ๋ณต์žกํ•จ
ํ…œํ”Œ๋ฆฟ ๋ณด๋ฉด์„œ ๊นŠ์ด ์žˆ๊ฒŒ ๊ฒฝํ—˜ํ•˜๋ฉด ๋œ๋‹ค.

์–ด๋–ค ์ฑ…์ด๋‚˜ ๊ฐ•์˜, ์Šคํ„ฐ๋”” ๊ถŒ์žฅ ๋“ฑ

๋ฐฉํ–ฅ์„ ์•ˆ๋‚ดํ•ด๋“œ๋ฆด ์˜ˆ์ •์ด๋‹ˆ, UMC์—์„œ 

์•Œ๋ ค์ฃผ๋Š” ๋ถ€๋ถ„๋งŒ ์•Œ๋ฉด ๊ตฌํ˜„ ์ž์ฒด๋Š” ์–ด๋ ต์ง€ ์•Š๋‹ค.

๋ถˆ์•ˆํ•˜๋”๋ผ๋„, ๊ณผ์ • ์ž์ฒด๋ฅผ ๋”ฐ๋ผ์ฃผ๋ฉด ์ข‹๊ฒ ๋‹ค.

 

ํ…œํ”Œ๋ฆฟ์„ ์“ฐ๋ฉด ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๊ฐ€ ๋” ๊ฐ„ํŽธํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋ณ€ํ•œ๋‹ค.

 

ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ -> ์–ด๋–ค ์›๋ฆฌ๋กœ ๊ฐ„ํŽธํ•ด์ง€๋Š”๊ฐ€?

๊ธฐ์ˆ ์ ์ธ ์›๋ฆฌ, ํˆด์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ํ•ด๋ณด์ž. 

 

 

 

์ด ๊ณผ์ •๋“ค์—์„œ ์ƒ๊ธด ๊ถ๊ธˆ์ฆ๋“ค์„ ํ…œํ”Œ๋ฆฟ์„ ๋ณด๋ฉด์„œ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค!

 

์‹ค๋ฌด์—์„œ๋Š” ๊ผญ ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ž๋™ํ™”๋ฅผ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

์šฐ์„  1์ฐจ์  ๋ชฉํ‘œ๋Š” API ๊ตฌํ˜„

๋‚˜์ค‘์—๋Š” ํ…Œ์ŠคํŠธ์ฝ”๋“œ ํ•ด๋ณด๋ฉด ์ข‹๋‹ค

 

 

Node.js
๋ฐ”๋ฒจ

 

es6 ๋ฌธ๋ฒ•์ด๋ž€?

es5: ๋น„๊ต์  ์˜›๋‚  ๋ฌธ๋ฒ•์œผ๋กœ, ๋ถˆํŽธํ•œ ์ ๋“ค์ด ์žˆ๋‹ค.

es6: 2015๋…„ ์ตœ์‹ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐœํ˜์œผ๋กœ 

๊ทธ ๋’ค๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŽธ๋ฆฌํ•œ ๋ฌธ๋ฒ•๋“ค์ด ๋“ฑ์žฅํ•จ

 

 

ECMA Script ์˜ ์ค„์ž„๋ง

- ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ์˜ ๊ทผ๋ณธ ๊ธฐ๋ฐ˜

- ํ†ต์‹  ์‹œ์Šคํ…œ์„ ํ‘œ์ค€ํ™”ํ•˜๋Š” ๊ธฐ๊ตฌ

- ์—ฌ๊ธฐ์—์„œ ์ œ์ •ํ•œ ์–ธ์–ด๋ฅผ ES๋ผ๊ณ  ํ•œ๋‹ค

- 2015๋…„ es6 -> ๊ทธ ๋’ค๋กœ 7,8 ๊ณ„์†ํ•ด์„œ ๋‚˜์˜ค๊ณ  ์žˆ๋‹ค.

- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ฐ๋Š” Node.js ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๊ฑธ ์“ด๋‹ค.

- ์ด๊ฑธ ์“ฐ๋ฉด ์ƒ์‚ฐ์„ฑ์ด ์˜ฌ๋ผ๊ฐ„๋‹ค.

 

 

๋…ธ๋“œ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด, ๋…ธ๋“œ๋ชฌ ์“ฐ๋Š”๊ฑฐ ์ถ”์ฒœ

 

์›น ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค

 

+ ๋ผ์šฐํŒ… ํ™œ์šฉ

-> ์ด Url๋กœ ๋“ค์–ด์˜ค๋ฉด, ์—ฌ๊ธฐ๋กœ ๋„˜๊ฒจ์ค˜!

 

ํŒจํ‚ท์„ ํ†ตํ•ด ์†Œํ†ต (req.body -> ๊ทธ ์ค‘ body๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค)

 

๋ผ์ด๋ธŒ ์ฝ”๋”ฉ์œผ๋กœ ๋ดค๋”ฐ..!

 

db

 

๋ฐฑํ‹ฑ -> ์›ํ™” ์„ค์ •๋ถ€๋ถ„์— ๋ฐฑํ‹ฑ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋จ

๋ฐฑํ‹ฑ -> ๊ทธ๋ƒฅ ์ŠคํŠธ๋ง์ด ์•„๋‹ˆ๋ผ, ๋ณ€์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

 

API ๋ช…์„ธ์„œ

 

URI ์™€ URL ์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค (์ฒ˜์Œ ์•Œ์•˜์Œ)

 

 

 

 

 

 

์„ธ๋ฏธ๋‚˜ ์‹œ์ž‘  :) 

 

 

 

URL๊ณผ URI์˜ ์ฐจ์ด + ๋„๋ฉ”์ธ

 

 

๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ง€๊ณ 

๋ฐ์ดํ„ฐ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹๋„ ์ฒœ์ฐจ๋งŒ๋ณ„ ์—ฌ๋Ÿฌ๊ฐ€์ง€

๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐœ์„ฑ์ด ๋„˜์น˜๋ฉด -> ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค

ํ˜‘์—…ํ•˜๋Š” ๊ฒƒ์—๋„ ๋ฌธ์ œ์  

 

API ๊ณ„๋ฐœ์˜ ํ‘œ์ค€ -> RESTful

 

 

๋ฉ”์†Œ๋“œ๋“ค - ๋™์‚ฌ์˜ ์—ญํ• ์„ ํ•œ๋‹ค.

 

๋ชฉ์ ์–ด : ๋ฆฌ์†Œ์Šค

 

์ž‘์€ ๋‹จ์œ„ -> ํฐ ๋‹จ์œ„

 

 

๋ฆฌ์†Œ์Šค == ์œ ์ € ! (๋‚ด๊ฐ€ ๋งž์ท„๋‹ค :) )
User

 

์–ด๋–ป๊ฒŒ ์œ ์ € ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ์“ธ ๊ฒƒ์ธ๊ฐ€?
์ค‘๊ด„ํ˜ธ์˜ ๋ชฉ์ ์€? : Path variable์„ ํ™œ์šฉํ•˜๋ ค๊ณ 

๋ฆฌ์†Œ์Šค ๋‹จ์œ„๋กœ ์ƒ๊ฐํ•ด๋ณด์ž

 

 

์ •๋‹ต!!

์ „์ฒด ์œ ์ €๋ฅผ ์กฐํšŒ?

ํ•œ ๋ช…์˜ ์œ ์ €๋ฅผ ์กฐํšŒ?

 

์ „์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค๋ฉด Users ๋ฅผ ์“ด๋‹ค.

 

์—ฌ๊ธฐ์„œ useID ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋œ๋‹ค.

 

์œ ์ € ๊ฐ€์šด๋ฐ์—์„œ๋„ ํ•„ํ„ฐ๋ง์„ ๊ฑธ๊ธฐ ์œ„ํ•ด Path Variable์„ ์ผ๋‹ค.