Django-rest-framework: ํ† ํฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋กœ๊ทธ ํŒŒ์ผ๋กœ ์œ ์ถœ

์— ๋งŒ๋“  2018๋…„ 08์›” 17์ผ  ยท  23์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: encode/django-rest-framework

์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • [x] ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ Django REST ํ”„๋ ˆ์ž„์›Œํฌ์˜ master ๋ถ„๊ธฐ์— ์กด์žฌํ•จ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [x] ๊ณต๊ฐœ ํ‹ฐ์ผ“๊ณผ ๋น„๊ณต๊ฐœ ํ‹ฐ์ผ“ ๋ชจ๋‘์—์„œ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์ง€๋งŒ ์ค‘๋ณต๋œ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • [x] ์ด๊ฒƒ์€ ์‚ฌ์šฉ ์งˆ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. (๋Œ€์‹  ํ† ๋ก  ๊ทธ๋ฃน ์œผ๋กœ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
  • [x] ์ด๊ฒƒ์€ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ œ3์ž ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.)
  • [x] ๋ฌธ์ œ๋ฅผ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค.
  • [ ] ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํฌํ•จ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. (๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๋ฌธ์ œ๋ฅผ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์žฌํ˜„ ๋‹จ๊ณ„

Django ๊ด€๋ฆฌ์ž์˜ ํ† ํฐ ๋ณ€๊ฒฝ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”. ๊ธฐ๋ณธ ํ‚ค ๊ฐ€ ํ‚ค์ด๋ฏ€๋กœ ํ‚ค๋Š” URL์˜ ํ† ํฐ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ธ์ฆ ํ† ํฐ์ด ์•ก์„ธ์Šค ๋กœ๊ทธ๋กœ ๋ˆ„์ถœ๋ฉ๋‹ˆ๋‹ค.

drf-auth-token

๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž(๋†’์Œ)์™€ ๋กœ๊ทธ ๋ณด๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž(์ค‘๊ฐ„)์˜ ์ ‘๊ทผ ๊ถŒํ•œ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

์ธ์ฆ ํ† ํฐ์€ URL ๋ฐ ์™ธ๋ž˜ ํ‚ค ์ฐธ์กฐ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ํ‚ค๋กœ ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ ๊ฐ’ ์ž์ฒด๋Š” ๊ณ ์œ  ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ํ‚ค๊ฐ€ ์—†๋Š” ์†์„ฑ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

๊ธฐ๋ณธ ํ‚ค๋Š” ๋น„๋ฐ€ ํ‚ค ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฝ”๋“œ ๊ธฐ์—ฌ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  PR์„ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ๊ธฐ์—ฌํ•˜๊ฑฐ๋‚˜ ํ˜„์ƒ๊ธˆ์„ ์ง€๋ถˆํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ›„์›์ž๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ ๊ธฐ์—ฌํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ›„์›์ž๋Š” ์šฐ์„  ์ง€์›์„ ๋ฐ›์œผ๋ฉฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์—์Šค์ปฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://fund.django-rest-framework.org/topics/funding/# ๊ธฐ์—… - ๊ณ„ํš

๋ชจ๋“  23 ๋Œ“๊ธ€

ํ™•์ธ. ๋„ค. ์ด์ƒ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ† ํฐ ๊ด€๋ จ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์€ ์ „ํ†ต์ ์œผ๋กœ ์ œ๊ณต๋œ ๊ตฌํ˜„์ด ์˜๋„์ ์œผ๋กœ (๊ณผ๋„ํ•˜๊ฒŒ) ๋‹จ์ˆœํ•˜๊ณ  ๋” ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ๋” ๋‚˜์€ ๊ฒƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. (์—ฌ๊ธฐ์„œ ๊ฒฐ๋ก ์€ ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ๋” ์ด์ƒ ๋ณต์žก์„ฑ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž(๋†’์Œ)์™€ ๋กœ๊ทธ ๋ณด๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž(์ค‘๊ฐ„)์˜ ์ ‘๊ทผ ๊ถŒํ•œ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์ œ๊ณต๋œ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
(์ด ๊ฒฝ์šฐ ๊ทธ๋“ค์€ ๋™์ผํ•œ ์‚ฌ๋žŒ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ญ๋ผ๊ณ  ํ• ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ...

ํ† ํฐ ๊ด€๋ จ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์€ ์ „ํ†ต์ ์œผ๋กœ ์ œ๊ณต๋œ ๊ตฌํ˜„์ด ์˜๋„์ ์œผ๋กœ (๊ณผ๋„ํ•˜๊ฒŒ) ๋‹จ์ˆœํ•˜๊ณ  ๋” ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ๋” ๋‚˜์€ ๊ฒƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ์ž…์žฅ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋ฌธ์„œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์†Œํ•œ ๋‚ด์žฅ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ด์•ผ ํ•˜๋ฉฐ ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ/์„œ๋ช… ์ธ์ฆ์— ๋Œ€ํ•œ ํƒ€์‚ฌ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ 3๋…„ ๋™์•ˆ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ https://github.com/etoccalino/django-rest-framework-httpsignature ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ œ 3์ž ํ† ํฐ ์ œ๊ณต์ž๊ฐ€ ์ฆ‰์‹œ ์ œ๊ณต๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋” ๋งŽ์€ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งค์šฐ ์‹ฌ๊ฐํ•œ ์ •๋ณด ๊ณต๊ฐœ IMO์ด๋ฏ€๋กœ authtoken์˜ ๊ธฐ๋ณธ ์œ„์น˜๊ฐ€ ์ด ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ, ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ๋‹ซ์ง€ ์•Š์€ ์ด์œ ๋Š” ...

์ œ ๋‹ต๋ณ€์ด ์˜๋„ํ•œ ๊ฒƒ๋ณด๋‹ค ๊ฑฐ์น ๊ฒŒ ๋‚˜์™”๋‹ค๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด ์ œ ๋ชฉํ‘œ๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค! ๐Ÿ˜ƒ

(URL์— ์žˆ๋Š” ํ‚ค์˜ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ModelAdmin์„ mungํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค...)

๊ตํ™œํ•˜์ง€๋งŒ ๊ทธ ์ƒ๊ฐ๋„ ์œ„ํ—˜ํ•˜๊ฒŒ ๋Š๊ปด์ง€์ง€๋งŒ ์ด์œ ๋Š” ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊นŒ๋‹ค๋กœ์šด ๋น„ํŠธ๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ ํ‚ค์ด์ง€๋งŒ ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. DRF๋Š” ํ† ํฐ์— ๋Œ€ํ•œ FK๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ด์œ ๋„ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ „์— ๊ธฐ๋ณธ ํ‚ค ํ•„๋“œ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ์ ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์ด ์žˆ์—ˆ๊ณ  ํ•ด๋‹น ์™ธ๋ž˜ ํ‚ค๋„ ์—…๋ฐ์ดํŠธ๋œ ๊ฒƒ์œผ๋กœ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ. ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ „ํ™˜ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ณ  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ† ํฐ์€ ๋ฐ˜๋“œ์‹œ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์ƒˆ PK ํ•„๋“œ๋ฅผ ๋„์ž…ํ•˜๋ฉด ํ˜„์žฌ ๋™์ž‘์— ์˜์กดํ•˜๋Š” ์ผ๋ถ€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ์†์ƒ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ).

์ธ์ฆ ํ† ํฐ์— ๋Œ€ํ•œ Django ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์ฐธ์กฐ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ† ํฐ ํ…Œ์ด๋ธ”์— ์ž๋™ ์ฆ๊ฐ€ ์ •์ˆ˜ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ ๋กœ ์ €๋Š” ํ™•์žฅ ํ† ํฐ ๊ตฌํ˜„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๋ฐฉ๊ธˆ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค( django-rest-multitokenauth ์ฐธ์กฐ). ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ ๊ทธ ์‹ค์ˆ˜๋ฅผ ์ง€์ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์—ฌ๊ธฐ์—์„œ ์†”๋ฃจ์…˜์„ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ณ ๋Œ€ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ Python ํŒจํ‚ค์ง€๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ์ด๊ฒƒ์ด ๋‚ด MultiTokenAuth ํŒจํ‚ค์ง€ ๋‚ด์—์„œ ์ˆ˜์ •ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
https://github.com/anx-ckreuzberger/django-rest-multiauthtoken/commit/7e11ed606271eff0693a9280f8a30349c7e90b27

ํ† ํฐ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์™ธ๋ž˜ ํ‚ค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ž ์žฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋™์ผํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์—ฌ๊ธฐ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚˜๋Š” ๋‹ค๊ฐ€์˜ค๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์ „์— ์ธ์ฆ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ›‘์–ด๋ณด๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž์—์„œ ํ† ํฐ ๋ชจ๋ธ์„ ๋“ฑ๋กํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@raunaqss ๋„ค, ๋“ฑ๋กํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์˜ฌ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ณ  ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
url์„ ํ•ด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด pk๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

PR์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ์—ฌ๊ธฐ์—์„œ ํ•ฉ๋ฆฌ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” 3.11 ๋ฆด๋ฆฌ์Šค์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋งค์šฐ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ํฐ API ํ‚ค ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ƒ๊ฐ์— ํ˜„๋ช…ํ•œ ์ผ์€ ์•„๋งˆ๋„ ์ด์— ๋Œ€ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋ณ„๋„๋กœ ๋ฆด๋ฆฌ์Šคํ•˜์—ฌ ์‹œ์ž‘ํ•˜์—ฌ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์šฐ๋ฆฌ ๋ฆด๋ฆฌ์Šค์™€ ๋ณ„๋„๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๋จผ์ € ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ฒƒ์ด ๋งŒ์กฑ์Šค๋Ÿฌ์šฐ๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง์ ‘ ํฌํ•จํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.11 ๋ฆด๋ฆฌ์Šค ์ž์ฒด์—์„œ ํ‘ธ์‹œํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์ด์— ๋Œ€ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋ณ„๋„๋กœ ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” API ํ‚ค ํ…Œ์ด๋ธ”์ด ๋งค์šฐ ํฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์—์„œ ๋ชจ๋“  ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ‘ธ์‹œํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ์กฐ์‹ฌ์Šค๋Ÿฌ์›Œํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์˜ค๋žซ๋™์•ˆ ๊ณต๊ฐœ๋˜์–ด ์™”์œผ๋ฉฐ @jarshwah ์˜ ๊ด€์ฐฐ ์ด django-rest-knox ์— ์˜ํ•ด ํ•ด๊ฒฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ์•ˆ์ „ํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. drf์˜ ์˜๋„๊ฐ€ TokenAuthentication ๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋”๋ผ๋„ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ๋น„๋ฐ€ ์ž๋ฃŒ๋ฅผ ์œ ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ˜„์ƒ๊ธˆ์„ ๊ฑธ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ๊ธฐ์—ฌํ•˜๊ฑฐ๋‚˜ ํ˜„์ƒ๊ธˆ์„ ์ง€๋ถˆํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

3.12์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ๊ธฐ์—ฌ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  PR์„ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ๊ธฐ์—ฌํ•˜๊ฑฐ๋‚˜ ํ˜„์ƒ๊ธˆ์„ ์ง€๋ถˆํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ›„์›์ž๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ ๊ธฐ์—ฌํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ›„์›์ž๋Š” ์šฐ์„  ์ง€์›์„ ๋ฐ›์œผ๋ฉฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์—์Šค์ปฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://fund.django-rest-framework.org/topics/funding/# ๊ธฐ์—… - ๊ณ„ํš

๋ชจ๋‘ ํ›Œ๋ฅญํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค! ์ €๋Š” ์ด์ œ drf ๋ฐ encode์˜ ํ›„์›์ž์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ์ž‘์—…์„ ์‹œ์ž‘ํ•  ๋•Œ ์ด ๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ™

์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ช…ํ™• ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ชจ๋ธ์ด ๊ธฐ๋ณธ ํ‚ค์— ๋Œ€ํ•ด ์ž๋™ ์ฆ๋ถ„ int๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  "key" ํ•„๋“œ๊ฐ€ ํ‘œ์ค€ ๊ณ ์œ ํ•œ ์ธ๋ฑ์‹ฑ๋œ ํ•„๋“œ๊ฐ€ ๋˜๋„๋ก ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ์˜ ์„ ํƒ์€...

  • rest_framework.authtoken2 ์™€ ๊ฐ™์€ ๊ฒƒ์„ ๋„์ž…ํ•˜๊ณ  ๋ฌธ์„œ๊ฐ€ ๋Œ€์‹  ์ด๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋” ๋‚˜์€ ๊ธฐ๋ณธ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ํ•„๋“œ๋ฅผ PK๋กœ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ณ  ์‹ค์ œ ํ† ํฐ ๊ฐ’์— ๋Œ€ํ•œ ์ƒˆ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ํฐ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค... https://stackoverflow.com/questions/41500811/copy-a-database-column-into-another-in-django ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์ง€ ์•Š์€ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์—ฌ์ „ํžˆ ์˜ฌ๋ฐ”๋ฅธ ๋™์ž‘์— ๋Œ€ํ•ด ๊ฝค ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ๋œ ์•ฑ์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒˆ ํ•„๋“œ๋ฅผ ๋„์ž…ํ•˜๊ณ  ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ฐ€ ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ์ด์ „ ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ํ•˜๋Š” ๋™์•ˆ ๋‘ ํ•„๋“œ์— ๋™์ผํ•œ ๊ฐ’์„ ์“ฐ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ๋ชจ๋‘ ๋ฐฐํฌ๋˜๊ณ  ๋™๊ธฐํ™”๋˜๋ฉด ์ƒˆ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜ํ•˜๋Š” ์ฝ”๋“œ ๋ณ€๊ฒฝ์„ ๋„์ž…ํ•˜์‹ญ์‹œ์˜ค.
  • ์šฐ๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ๊ด€๋ฆฌ์ž ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ: ์ด๊ฒƒ์ด ์ด๊ฒƒ์ด ์˜ค๋žซ๋™์•ˆ ๋ณด๋ฅ˜๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์‰ฌ์šด ๋Œ€๋‹ต์€ ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ฌ

_"๊ด€๋ฆฌ์ž ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์†Œ๊ฐœ"_ ์˜ต์…˜์„ ๋ณด๊ธฐ ์œ„ํ•ด #7341์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰