2025๋…„ 7์›” 04์ผยท6๋ถ„ ์ฝ๊ธฐ

ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ API ํ‚ค์™€ OAuth 2.0: ๋ฌด์—‡์ด ๋‹ฌ๋ผ์งˆ๊นŒ

API ํ‚ค์™€ OAuth 2.0 ๋น„๊ต: ์˜จ๋ณด๋”ฉ ๋‚œ์ด๋„, ํ† ํฐ ํšŒ์ „, ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์ ‘๊ทผ, ๊ฐ์‚ฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋น„๊ตํ•ด ํŒŒํŠธ๋„ˆ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ API ํ‚ค์™€ OAuth 2.0: ๋ฌด์—‡์ด ๋‹ฌ๋ผ์งˆ๊นŒ

๋‹น์‹ ์ด ์‹ค์ œ๋กœ ์„ ํƒํ•˜๋Š” ๊ฒƒ\n\n์‚ฌ๋žŒ๋“ค์ด API ํ‚ค์™€ OAuth 2.0์„ ๋น„๊ตํ•  ๋•Œ, ๋ณด์•ˆ ๋…ผ์Ÿ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๊ณค ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ๋Š” ์šด์˜์ƒ์˜ ๊ฒฐ์ •์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค: ํŒŒํŠธ๋„ˆ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ์ดํ›„ ์ ‘๊ทผ์„ ์–ด๋–ป๊ฒŒ ์ œ์–ดํ• ์ง€, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์ง€์›์ด ์–ผ๋งˆ๋‚˜ ๊ณ ์ƒ์Šค๋Ÿฌ์›Œ์ง€๋Š”์ง€ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.\n\n๋Œ€๋ถ€๋ถ„์˜ ํ†ตํ•ฉ์—๋Š” ๊ณตํ†ต์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค: ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ๋ฐฉ์‹, ๋ช…ํ™•ํ•œ ํ•œ๋„(์š”์ฒญ ์ œํ•œ๊ณผ ๊ถŒํ•œ), ๊ทธ๋ฆฌ๊ณ  โ€œ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ๋Š”๊ฐ€โ€๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์‹œ์„ฑ. ์–ด๋–ค ์ธ์ฆ ๋ฐฉ์‹์„ ์„ ํƒํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์ด ์š”๊ตฌ์‚ฌํ•ญ์ด ๊ธฐ๋ณธ์œผ๋กœ ์‰ฌ์›Œ์ง€๋Š”์ง€, ์•„๋‹ˆ๋ฉด ์ถ”๊ฐ€ ๊ทœ์น™ยท๋Œ€์‹œ๋ณด๋“œยท์ˆ˜๋™ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ™์—ฌ์•ผ ํ•˜๋Š”์ง€๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.\n\n๋ช‡ ๊ฐ€์ง€ ๊ฐ„๋‹จํ•œ ์šฉ์–ด๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ํ˜„์‹ค์ ์ธ ๋Œ€ํ™”์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค:\n\n- API ํ‚ค: ํŒŒํŠธ๋„ˆ ์•ฑ์ด๋‚˜ ์‹œ์Šคํ…œ์„ ์‹๋ณ„ํ•˜๋Š” ๊ณต์œ  ๋น„๋ฐ€ ๋ฌธ์ž์—ด.\n- ํ† ํฐ(token): API ํ˜ธ์ถœ์— ์“ฐ์ด๋Š” ์‹œ๊ฐ„ ์ œํ•œ ์ž๊ฒฉ์ฆ๋ช….\n- ์Šค์ฝ”ํ”„(scope): "์ฒญ๊ตฌ์„œ ์ฝ๊ธฐ"๋‚˜ "ํ‹ฐ์ผ“ ์ƒ์„ฑ"์ฒ˜๋Ÿผ ์ด๋ฆ„ ๋ถ™์€ ๊ถŒํ•œ ๋‹จ์œ„.\n\n์ง„์งœ ๊ฒฐ์ •์€ ํ†ตํ•ฉ์ด ๋ฌด์—‡์„ ๋Œ€์‹ ํ•˜๋Š”์ง€์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๋จธ์‹  ๋Œ€ ๋จธ์‹ (machine-to-machine)์ด๋ผ๋ฉด API ํ‚ค๊ฐ€ ์ ์ ˆํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ˆ: ํŒŒํŠธ๋„ˆ๊ฐ€ ์ž์ •๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ ๋‹น์‹ ์˜ API๋กœ ๋™๊ธฐํ™”๋ฅผ ๋Œ๋ฆฌ๋Š” ๊ฒฝ์šฐ. ์‚ฌ์šฉ์ž๊ฐ€ "ํ—ˆ์šฉ"์„ ํด๋ฆญํ•˜๋Š” ํ๋ฆ„์ด ์—†๊ณ , ์ฃผ๋กœ ํŒŒํŠธ๋„ˆ ์ˆ˜์ค€์˜ ์ ‘๊ทผ, ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ํšŒ์ „, ๋น ๋ฅธ ์˜จ๋ณด๋”ฉ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.\n\n์‚ฌ์šฉ์ž ์œ„์ž„(user-delegated) ์‹œ๋‚˜๋ฆฌ์˜ค๋ผ๋ฉด OAuth 2.0์ด ์ผ๋ฐ˜์ ์œผ๋กœ ๋งž์Šต๋‹ˆ๋‹ค. ์˜ˆ: ๊ณ ๊ฐ์ด ํŒŒํŠธ๋„ˆ ์•ฑ์—์„œ ๋ณธ์ธ ๊ณ„์ •์„ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ฐ ๊ณ ๊ฐ์ด ๋ณธ์ธ ๋ฐ์ดํ„ฐ์—๋งŒ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ. ์ด๋•Œ๋Š” ์‚ฌ์šฉ์ž๋ณ„ ๊ถŒํ•œ, ์‰ฌ์šด ์ฒ ํšŒ, ๋” ๊น”๋”ํ•œ ๊ฐ์‚ฌ ๊ธฐ๋ก์ด ์ฃผ์š” ๊ณ ๋ ค์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.\n\n์ด ์„ ํƒ์€ ์ง€์› ๋ถ€๋‹ด์—๋„ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ํ‚ค๋ฅผ ์“ฐ๋ฉด ํ‚ค ๊ณต์œ ยทํšŒ์ „ ์กฐ์ •ยท์–ด๋А ํŒŒํŠธ๋„ˆ ํ™˜๊ฒฝ์— ์–ด๋–ค ํ‚ค๊ฐ€ ์†ํ•˜๋Š”์ง€ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๋” ๋“ค ๊ฒ๋‹ˆ๋‹ค. OAuth๋ฅผ ์“ฐ๋ฉด ๋™์˜ ํ”Œ๋กœ์šฐ์™€ ๋ฆฌ๋””๋ ‰ํŠธ ์„ค์ •์— ์‹œ๊ฐ„์ด ๋” ๋“ค์ง€๋งŒ, ์–ด๋–ค ์‚ฌ๋žŒ ๋˜๋Š” ํ…Œ๋„ŒํŠธ๊ฐ€ ์ž‘์—…์„ ์ด‰๋ฐœํ–ˆ๋Š”์ง€ ์ถ”์ธกํ•˜๋Š” ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.\n\nAppMaster ๊ฐ™์€ ๋„๊ตฌ๋กœ ํ†ตํ•ฉ ๋ฐฑ์—”๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ์ธ์ฆ์„ ์ผ์ฐ ๊ณ„ํšํ•˜์„ธ์š”. ํŒŒํŠธ๋„ˆ, ์‚ฌ์šฉ์ž, ์Šค์ฝ”ํ”„ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐ–์ถ”๊ณ  ์‹ถ์„ ๊ฐ์‚ฌ ๋กœ๊ทธ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.\n\n## ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ API ํ‚ค๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜\n\nAPI ํ‚ค๋Š” ํŒŒํŠธ๋„ˆ๊ฐ€ API๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์†๋„ ๋ฉด์—์„œ ์œ ๋ฆฌํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค: ๋น„๋ฐ€ ๋ฌธ์ž์—ด์„ ๊ฑด๋„ค๋ฉด ํŒŒํŠธ๋„ˆ๋Š” ์š”์ฒญ์— ํฌํ•จ์‹œํ‚ค๊ณ  ๊ณง๋ฐ”๋กœ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n### ํ‚ค๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ\n\n๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ API ํ‚ค๋Š” ํŠน์ • ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ํŒŒํŠธ๋„ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(๋˜๋Š” ํ†ตํ•ฉ)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๊ฐ€ ํŒ€ ์ „์ฒด์™€ ๋ชจ๋“  ๊ณ ๊ฐ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ‚ค๋งŒ ์“ฐ๋ฉด, ๋‹น์‹  ์ชฝ ๋กœ๊ทธ์—๋Š” ๋ชจ๋“  ์š”์ฒญ์ด "ํŒŒํŠธ๋„ˆ X"๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์„ค์ •์€ ์‰ฌ์›Œ์ง€์ง€๋งŒ ์ ‘๊ทผ ์ œ์–ด๋Š” ๊ฑฐ์น ์–ด์ง‘๋‹ˆ๋‹ค.\n\n์‹ค๋ฌด์—์„œ๋Š” ํ‚ค๊ฐ€ ๊ด€๋ฆฌ์ž ์ฝ˜์†”์—์„œ ๋ฐœ๊ธ‰๋˜๊ฑฐ๋‚˜ ์ผํšŒ์„ฑ ํ”„๋กœ๋น„์ €๋‹ ๋‹จ๊ณ„๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๋Š” ์ด๋ฅผ ๊ตฌ์„ฑ ํŒŒ์ผ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ์‹œํฌ๋ฆฟ ๋งค๋‹ˆ์ €์— ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” "์ž„์‹œ" ํ‚ค๊ฐ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์— ๋ณต์‚ฌ๋˜๊ฑฐ๋‚˜ ์ฑ„ํŒ…์— ๋ถ™์—ฌ๋„ฃ์–ด์ง€๊ฑฐ๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ชฝ ์ฝ”๋“œ์— ํฌํ•จ๋˜๋Š” ๋นˆ๋„์ž…๋‹ˆ๋‹ค.\n\n์ œ์•ฝ์€ ๋น ๋ฅด๊ฒŒ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์€ ๋„“๊ฒŒ ์„ค์ •๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๊ณ , ํ‚ค๋Š” ๊ณต์œ ๋œ ์ž๊ฒฉ์ฆ๋ช…์ด๋ฏ€๋กœ ํ–‰๋™์„ ์‚ฌ๋žŒ ๋‹จ์œ„๋กœ ์ •ํ™•ํžˆ ๊ท€์†์‹œํ‚ค๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํšŒ์ „์€ ์กฐ์œจ์ด ํ•„์š”ํ•˜๊ณ , ํ‚ค๊ฐ€ ์œ ์ถœ๋˜๋ฉด ํ๊ธฐํ•  ๋•Œ๊นŒ์ง€ ๊ณต๊ฒฉ์ž๊ฐ€ ํŒŒํŠธ๋„ˆ๋กœ์„œ ํ–‰๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์˜ˆ: ๋ฌผ๋ฅ˜ ํŒŒํŠธ๋„ˆ๊ฐ€ ์ž์ •์— ์„œ๋ฒ„์—์„œ ์ฃผ๋ฌธ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ API ํ‚ค๋ฅผ ์“ฐ๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋กœ๊ทธ์—๋Š” ํŒŒํŠธ๋„ˆ ํ‚ค๋งŒ ๋‚จ๊ณ  ๊ทธ๊ฒƒ์ด ๊ฐœ๋ฐœ์ž ํ…Œ์ŠคํŠธ์ธ์ง€, ์˜ˆ์•ฝ ์ž‘์—…์ธ์ง€, ์•„๋‹ˆ๋ฉด ์นจํ•ด๋œ ๊ธฐ๊ณ„์ธ์ง€ ์•Œ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.\n\n### API ํ‚ค๊ฐ€ ์—ฌ์ „ํžˆ ํ•ฉ๋ฆฌ์ ์ธ ๊ฒฝ์šฐ\n\nAPI ํ‚ค๋Š” ์•ˆ์ •๋œ ์†Œ์ˆ˜์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์„œ๋ฒ„ ๋Œ€ ์„œ๋ฒ„ ํ†ตํ•ฉ์— ์ž˜ ๋งž์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ‚ค๋ฅผ ํŠน์ • IP, ์—”๋“œํฌ์ธํŠธ, ํ˜น์€ ํ™˜๊ฒฝ(ํ…Œ์ŠคํŠธ vs ํ”„๋กœ๋•์…˜)์œผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. AppMaster ๊ฐ™์€ ํˆด๋กœ API ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ค๋ฉด ๋น ๋ฅธ ํŒŒํŠธ๋„ˆ ํŠธ๋ผ์ด์–ผ์—๋Š” ํ‚ค๊ฐ€ ์ข‹์€ ์ถœ๋ฐœ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ์šด์˜ ์ „ ํšŒ์ „๊ณผ ํ๊ธฐ ๊ณ„ํš์„ ๋ฏธ๋ฆฌ ์ •ํ•˜์„ธ์š”.\n\n## OAuth 2.0์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜ (๊ต๊ณผ์„œ์‹ ์„ค๋ช…์„ ํ”ผํ•ด)\n\nOAuth 2.0์˜ ์ฃผ๋œ ๋ชฉ์ ์€ ์œ„์ž„๋œ ์ ‘๊ทผ(delegated access)์ž…๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ ์•ฑ์ด ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์ง€ ์•Š๊ณ ๋„ ํŠน์ • ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•ด API๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ํ•ด ์ฃผ๋ฉฐ, ํŒŒํŠธ๋„ˆ๊ฐ€ ์˜๊ตฌ์ ์ด๊ณ  ๋ฌด์ œํ•œ์ ์ธ ์ ‘๊ทผ์„ ์–ป์ง€ ์•Š๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.\n\n์„ธ ๋‹น์‚ฌ์ž ๊ฐ„์˜ ๊ถŒํ•œ ํ—ˆ๊ฐ€ ํ•ธ๋“œ์…ฐ์ดํฌ๋กœ ์ƒ๊ฐํ•˜์„ธ์š”:\n\n- ์‚ฌ์šฉ์ž(๋ฆฌ์†Œ์Šค ์†Œ์œ ์ž): ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ๋‹นํ•˜๋Š” ์‚ฌ๋žŒ.\n- ํŒŒํŠธ๋„ˆ ์•ฑ(ํด๋ผ์ด์–ธํŠธ): ํŒŒํŠธ๋„ˆ๊ฐ€ ๋งŒ๋“œ๋Š” ํ†ตํ•ฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜.\n- ๋‹น์‹ ์˜ ์ธ์ฆ ์‹œ์Šคํ…œ(๊ถŒํ•œ ์„œ๋ฒ„): ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋™์˜๋ฅผ ๋ฌป๊ณ  ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜๋Š” ์‹œ์Šคํ…œ.\n\n์‚ฌ์šฉ์ž๊ฐ€ ์Šน์ธํ•˜๋ฉด ํŒŒํŠธ๋„ˆ ์•ฑ์€ **์•ก์„ธ์Šค ํ† ํฐ(access token)**์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ํ† ํฐ์€ ์•ฑ์ด ์ง€๊ธˆ ๋‹น์žฅ ๊ถŒํ•œ์ด ์žˆ์Œ์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด API์— ๋ณด๋‚ด๋Š” ๋‹จ๊ธฐ ์ž๊ฒฉ์ฆ๋ช…์ž…๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ํ† ํฐ์€ ๋น ๋ฅด๊ฒŒ ๋งŒ๋ฃŒ๋˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์œ ์ถœ ์‹œ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.\n\n์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณ„์†ํ•ด์„œ ์Šน์ธ ์š”์ฒญ์„ ๊ฐ•์š”ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์„ค์ •์€ **๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ(refresh token)**๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์€ ๋” ์˜ค๋ž˜ ์ง€์†๋˜๋ฉฐ ๋งŒ๋ฃŒ๋œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐ๋งŒ ์”๋‹ˆ๋‹ค. ์‰ฌ์šด ๋ชจ๋ธ์€: ์•ก์„ธ์Šค ํ† ํฐ์€ API ํ˜ธ์ถœ์šฉ, ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์€ ์ƒˆ ์•ก์„ธ์Šค ํ† ํฐ์„ ์–ป๋Š” ์šฉ๋„์ž…๋‹ˆ๋‹ค.\n\n์Šค์ฝ”ํ”„๋Š” OAuth๋ฅผ ์‹ค์šฉ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋Š” "read:invoices"๋‚˜ "write:customers" ๊ฐ™์€ ๊ถŒํ•œ ๊ฒฝ๊ณ„์ž…๋‹ˆ๋‹ค. ๋™์˜ ๊ณผ์ •์—์„œ ์‚ฌ์šฉ์ž๋Š” ํŒŒํŠธ๋„ˆ ์•ฑ์ด ๋ฌด์—‡์„ ์š”์ฒญํ•˜๋Š”์ง€ ๋ณด๊ณ  ์Šน์ธํ•œ ๋‚ด์šฉ์ด ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. API๋Š” ๋งค ์š”์ฒญ๋งˆ๋‹ค ์Šค์ฝ”ํ”„๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์Šน์ธ๋˜์ง€ ์•Š์€ ํ˜ธ์ถœ์€ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.\n\n์˜ˆ: CRM ํŒŒํŠธ๋„ˆ๊ฐ€ ์—ฐ๋ฝ์ฒ˜๋ฅผ ๋™๊ธฐํ™”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ์—๊ฒŒ "read:contacts"์™€ "write:contacts"๋งŒ ์š”์ฒญํ•˜๋„๋ก ์š”๊ตฌํ•˜๋ฉด, ๋‚˜์ค‘์— ์‚ญ์ œ ์‹œ๋„๋ฅผ ํ•˜๋ฉด "delete:contacts"๊ฐ€ ์Šน์ธ๋˜์ง€ ์•Š์€ ํ•œ API๊ฐ€ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“œ๋Š” ์ ์€ OAuth๊ฐ€ ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ์ ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.\n\n## ์˜จ๋ณด๋”ฉ: ์™ธ๋ถ€ ๊ฐœ๋ฐœ์ž์˜ ์ฒซ๋‚  ๊ฒฝํ—˜\n\nAPI ํ‚ค๋กœ๋Š” ์˜จ๋ณด๋”ฉ์ด ๊ฑฐ์˜ ์ฆ‰์‹œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๊ฐ€ ํ‚ค๋ฅผ ์š”์ฒญํ•˜๋ฉด ํฌํ„ธ์ด๋‚˜ ์ด๋ฉ”์ผ๋กœ ์ „๋‹ฌํ•˜๊ณ , ํŒŒํŠธ๋„ˆ๋Š” ์š”์ฒญ ํ—ค๋”์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ํ˜ธ์ถœ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๋ช‡ ๋ถ„๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๋น ๋ฅด๊ฒŒ ์ฆ๋ช…ํ•ด์•ผ ํ•  ๋•Œ ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹ค.\n\nํ•˜์ง€๋งŒ ์†๋„์˜ ๋Œ€๊ฐ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: ์ฒซ๋‚ ์—๋Š” "๋ˆ„๊ฐ€ ํ˜ธ์ถœํ–ˆ๋‚˜"๊ฐ€ ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ํ‚ค๋ฅผ ํŒŒํŠธ๋„ˆ ํŒ€์ด ๊ณต์œ ํ•˜๋ฉด ๋ฐ๋ชจ๋Š” ๋นจ๋ฆฌ ๋˜์ง€๋งŒ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ๊ฒฝ๊ณ„(ํ…Œ์ŠคํŠธ vs ํ”„๋กœ๋•์…˜, ์ตœ์†Œ ๊ถŒํ•œ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ์˜ ๋ช…ํ™•ํ•œ ์†Œ์œ ๊ถŒ)๋ฅผ ์ •ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.\n\nOAuth ์˜จ๋ณด๋”ฉ์€ ๋ถ€ํ’ˆ์ด ๋” ๋งŽ์•„ ์ฒซ ํ˜ธ์ถœ์ด ๋” ๋ฌด๊ฒ๊ฒŒ ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๋Š” ๋ณดํ†ต ์•ฑ ๋“ฑ๋ก, ๋ฆฌ๋””๋ ‰ํŠธ URI ์„ค์ •, ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ์ž๋‚˜ ์ƒŒ๋“œ๋ฐ•์Šค ๊ณ„์ • ์‚ฌ์šฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ํ˜ธ์ถœ์ด ๋ช‡ ์‹œ๊ฐ„ ๋˜๋Š” ๋ฉฐ์น  ๊ฑธ๋ฆฌ๋Š” ์ด์œ ๋Š” OAuth ์ž์ฒด๊ฐ€ ๋ณต์žกํ•ด์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ฌ์†Œํ•œ ์„ค์ •์ด ํฐ ์ง€์—ฐ์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.\n\n๊ฐ€์žฅ ํ”ํ•œ ์ฒซ๋‚  ์ฐจ๋‹จ ์›์ธ์€ ๋ฆฌ๋””๋ ‰ํŠธ URI ๋ถˆ์ผ์น˜, authorization code๋ฅผ access token์œผ๋กœ ํ˜ผ๋™, ํ™˜๊ฒฝ ํ˜ผ์šฉ(ํ…Œ์ŠคํŠธ ์ž๊ฒฉ์ฆ๋ช…์œผ๋กœ ํ”„๋กœ๋•์…˜ ํ˜ธ์ถœ), ์Šค์ฝ”ํ”„ ๋ˆ„๋ฝ, ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ์ž ์ƒ์„ฑ/์žฌ์„ค์ • ๋ฐฉ๋ฒ• ๋ถ€์žฌ ๋“ฑ์ž…๋‹ˆ๋‹ค.\n\nOAuth์—๋Š” ๋ฌธ์„œ๊ฐ€ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. API ํ‚ค์—๋Š” "ํ‚ค ๋ณต์‚ฌ โ†’ ํ—ค๋”์— ์ถ”๊ฐ€ โ†’ ์—”๋“œํฌ์ธํŠธ ํ˜ธ์ถœ" ์ •๋„์˜ ์งง์€ ์•ˆ๋‚ด๊ฐ€ ์ถฉ๋ถ„ํ•  ๋•Œ๊ฐ€ ๋งŽ์ง€๋งŒ, OAuth์—๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์‹ค์ œ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜ˆ์ œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.\n\nAppMaster๋กœ ํŒŒํŠธ๋„ˆ ํˆด๋ง์„ ๋งŒ๋“ค๋ฉด ์ž‘์€ ์Šคํƒ€ํ„ฐ ์•ฑ(์›น UI + ๋ฐฑ์—”๋“œ ํ”„๋ก์‹œ)์„ ์ œ๊ณตํ•ด ํŒŒํŠธ๋„ˆ๊ฐ€ ๋งŽ์€ ์ฝ”๋“œ ์—†์ด๋„ OAuth ํ๋ฆ„์„ ๋๊นŒ์ง€ ์™„๋ฃŒํ•˜๋„๋ก ๋„์šธ ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋Ÿผ์œผ๋กœ์จ ์ฒซ๋‚ ๋ถ€ํ„ฐ ๋ณด์•ˆ ๋ชจ๋ธ์„ ๋ช…ํ™•ํžˆ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n## ์‹ค์ œ ์„ธ๊ณ„์˜ ํ† ํฐ ํšŒ์ „๊ณผ ํ๊ธฐ\n\nํšŒ์ „์€ ๋‹จ์ˆœํ•ด ๋ณด์ด์ง€๋งŒ ํŒŒํŠธ๋„ˆ์—๊ฒŒ๋Š” ํฌ๋ก ์žก, ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ, "๋ˆ„๊ตฐ๊ฐ€๊ฐ€ 6๊ฐœ์›” ์ „์— ๋น„๋ฐ€์„ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์— ๋ถ™์—ฌ๋„ฃ์—ˆ๋‹ค" ๊ฐ™์€ ํ˜„์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌด์  ์งˆ๋ฌธ์€ "ํšŒ์ „ํ•  ์ˆ˜ ์žˆ๋‚˜?"๊ฐ€ ์•„๋‹ˆ๋ผ "ํ”„๋กœ๋•์…˜์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๊ณ  ํšŒ์ „ํ•  ์ˆ˜ ์žˆ๋‚˜?"์ž…๋‹ˆ๋‹ค.\n\nAPI ํ‚ค์˜ ๊ฒฝ์šฐ ํšŒ์ „์€ ๋Œ€๋ถ€๋ถ„ ์กฐ์œจ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์•ˆ์ „ํ•œ ํŒจํ„ด์€ ์ค‘๋ณต ํ‚ค ์œ ์ง€: ์ƒˆ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ  ์ž ๊น ๋‘ ํ‚ค๋ฅผ ๋ชจ๋‘ ํ—ˆ์šฉํ•œ ๋’ค ํŒŒํŠธ๋„ˆ๊ฐ€ ์ „ํ™˜์„ ํ™•์ธํ•˜๋ฉด ๊ตฌ ํ‚ค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๊ธด๊ธ‰ ํ๊ธฐ๋Š” ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ์ฃฝ์ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n\n์‹ค๋ฌด์ ์ธ ํšŒ์ „ ์ •์ฑ…์€ ๋ณดํ†ต ํŒŒํŠธ๋„ˆ๋‹น ๋‘ ๊ฐœ์˜ ํ™œ์„ฑ ํ‚ค(ํ˜„์žฌ์™€ ๋‹ค์Œ), ํ™˜๊ฒฝ๋ณ„ ๋ณ„๋„ ํ‚ค(dev/staging/prod), ์–ด๋–ค ์‹œ์Šคํ…œ์ด ์–ด๋–ค ํ‚ค๋ฅผ ์“ฐ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ช…ํ™•ํ•œ ๋ผ๋ฒจ๋ง, ๊ทธ๋ฆฌ๊ณ  ์ฆ‰์‹œ ํ๊ธฐ ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ๋œ ์‚ฌ๊ณ  ๋Œ€์‘ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.\n\nOAuth ์ชฝ์€ ์•ก์„ธ์Šค ํ† ํฐ์„ ์งง๊ฒŒ ์œ ์ง€ํ•˜๋ฉด ํšŒ์ „์ด ๋” ์ž๋™ํ™”๋ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ํ† ํฐ์ด ๋นจ๋ฆฌ ๋งŒ๋ฃŒ๋˜๋„๋ก ํ•˜๊ณ  ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋ฉด ์ ‘๊ทผ ์ฐจ๋‹จ ์‹œ ๋‹ค์šดํƒ€์ž„ ์œ„ํ—˜์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ํ๊ธฐ๋Š” ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์— ์ง‘์ค‘๋ฉ๋‹ˆ๋‹ค: ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ํ๊ธฐํ•˜๋ฉด ํŒŒํŠธ๋„ˆ๋Š” ๋” ์ด์ƒ ์ƒˆ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n\n์ •์ฑ…์ด ์–ด๋ ค์šด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค: ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ์ˆ˜๋ช…, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ, ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์žฌ์ธ์ฆ์„ ์š”๊ตฌํ• ์ง€(๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •, ๊ด€๋ฆฌ์ž ์‚ญ์ œ, ์˜์‹ฌ์Šค๋Ÿฌ์šด ํ™œ๋™ ๋“ฑ). ๋น ๋ฅธ ์‚ฌ๊ณ  ๋Œ€์‘์ด ํ•„์š”ํ•˜๋ฉด ์•ก์„ธ์Šค ํ† ํฐ์„ ์งง๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ํ๊ธฐ๊ฐ€ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์„ธ์š”.\n\nํ”ํ•œ ์‚ฌ๊ณ  ์˜ˆ: ํŒŒํŠธ๋„ˆ ์„œ๋ฒ„ ๋กœ๊ทธ์— ์ž๊ฒฉ์ฆ๋ช…์ด ์šฐ์—ฐํžˆ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. API ํ‚ค๋ผ๋ฉด ํ‚ค๋ฅผ ํ๊ธฐํ•˜๋ฉด ํ†ตํ•ฉ์ด ์ฆ‰์‹œ ์ค‘๋‹จ๋˜๊ณ  ์žฌ๋ฐœ๊ธ‰ ๋ฐ ์—…๋ฐ์ดํŠธ ์กฐ์ •์„ ์„œ๋‘˜๋Ÿฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. OAuth๋ผ๋ฉด ํ•ด๋‹น ํŒŒํŠธ๋„ˆ๋‚˜ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ํ๊ธฐํ•˜๋ฉด ๊ธฐ์กด ์•ก์„ธ์Šค ํ† ํฐ์€ ๊ณง ๋งŒ๋ฃŒ๋˜์–ด ๋ณดํ†ต ๋” ์ ์€ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋‹ค์šดํƒ€์ž„์œผ๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n## ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์ ‘๊ทผ: ์‚ฌ์šฉ์ž๋ณ„, ํŒŒํŠธ๋„ˆ๋ณ„, ๋˜๋Š” ๋‘˜ ๋‹ค?\n\nํšŒ์‚ฌ(ํŒŒํŠธ๋„ˆ)๊ฐ€ ๋ˆ„๊ฐ€ ํ˜ธ์ถœํ–ˆ๋Š”์ง€๋งŒ ์•Œ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด ํŒŒํŠธ๋„ˆ ์ˆ˜์ค€์˜ ์‹๋ณ„์ž๋งŒ์œผ๋กœ๋„ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒŒํŠธ๋„ˆ๊ฐ€ ์—ฌ๋Ÿฌ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•ด ํ–‰๋™ํ•œ๋‹ค๋ฉด ๋ช…ํ™•ํ•œ ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.\n\nAPI ํ‚ค์˜ ์ผ๋ฐ˜ ํŒจํ„ด์€ ํŒŒํŠธ๋„ˆ๋‹น ํ•˜๋‚˜์˜ ๋น„๋ฐ€์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ๋Š” ๋ณดํ†ต ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋กœ ๋ง๋ถ™์ž…๋‹ˆ๋‹ค: ์‚ฌ์šฉ์ž ์—†์Œ(๋ชจ๋“  ํ˜ธ์ถœ์ด ํŒŒํŠธ๋„ˆ๋กœ ๋ณด์ž„), ํ—ค๋”๋‚˜ ํ•„๋“œ์— ์‚ฌ์šฉ์ž ID ์ „๋‹ฌ, ๋˜๋Š” ํŒŒํŠธ๋„ˆ๊ฐ€ ๋‹น์‹ ์ด ๋ฐœ๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ID๋ฅผ ์„œ๋ช…ํ•ด ์ „์†กํ•˜๋Š” ์ž„ํผ์Šจํ™”(impersonation) ์Šคํƒ€์ผ ํ๋ฆ„. ์ด๋“ค ๋ฐฉ๋ฒ•์€ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŒŒํŠธ๋„ˆ๊ฐ€ ๋ณด๋‚ด๋Š” ์‚ฌ์šฉ์ž ์‹๋ณ„์ž๋Š” ๊ฒ€์ฆ๋˜์ง€ ์•Š์œผ๋ฉด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฐ„์ฃผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n\nOAuth๋Š” ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์ ‘๊ทผ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž๋Š” ์ ‘๊ทผ์„ ์Šน์ธํ•˜๊ณ  ์Šค์ฝ”ํ”„๊ฐ€ ํŒŒํŠธ๋„ˆ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ์†Œ ๊ถŒํ•œ์„ ์ ์šฉํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค: ํ†ตํ•ฉ์€ ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ฝ์„ ์ˆ˜๋งŒ ์žˆ๊ณ  ์ฒญ๊ตฌ ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์—†๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ํ‹ฐ์ผ“์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๊ด€๋ฆฌ์ž ์„ค์ •์€ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n### ํŒŒํŠธ๋„ˆ๊ฐ€ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•  ๋•Œ ๊ถŒํ•œ ๋ชจ๋ธ๋ง\n\n๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ ค๋ฉด ์ •์ฒด์„ฑ(identity)๊ณผ ๊ถŒํ•œ(permission)์„ ๋ถ„๋ฆฌํ•˜์„ธ์š”: ํŒŒํŠธ๋„ˆ ์‹๋ณ„(๋ˆ„๊ฐ€ ํ†ตํ•ฉํ•˜๋Š”๊ฐ€), ์‚ฌ์šฉ์ž ์‹๋ณ„(๋ˆ„๊ตฌ๋ฅผ ๋Œ€์‹ ํ•˜๋Š”๊ฐ€), ์—ญํ• (์‚ฌ์šฉ์ž๊ฐ€ ์ œํ’ˆ์—์„œ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€), ์Šค์ฝ”ํ”„(ํŒŒํŠธ๋„ˆ๊ฐ€ ํ•ด๋‹น ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€).\n\n์˜ˆ: ํ—ฌํ”„๋ฐ์Šคํฌ ํŒŒํŠธ๋„ˆ๊ฐ€ 200๋ช…์˜ ์ƒ๋‹ด์› ํ‹ฐ์ผ“์„ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ API ํ‚ค๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์ž‘์—…์ด ๋กœ๊ทธ์— "ํŒŒํŠธ๋„ˆ A"๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ์ƒ๋‹ด์›์ด ์ž์‹ ์˜ ๊ถŒํ•œ์œผ๋กœ ์Šน์ธํ•  ์ˆ˜ ์žˆ์–ด "์ƒ๋‹ด์› ๋งˆ๋ฆฌ์•„๊ฐ€ ํŒŒํŠธ๋„ˆ A๋ฅผ ํ†ตํ•ด ํ‹ฐ์ผ“ 1832๋ฅผ ์—…๋ฐ์ดํŠธํ•จ"์ฒ˜๋Ÿผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๋‘˜ ๋‹ค ํ•„์š”ํ•˜๋ฉด ํŒŒํŠธ๋„ˆ ์ˆ˜์ค€์˜ ํด๋ผ์ด์–ธํŠธ ์‹๋ณ„๊ณผ ์‚ฌ์šฉ์ž ์œ„์ž„(OAuth์œผ๋กœ ์‚ฌ์šฉ์ž์— ๋ฌถ์ธ ํ† ํฐ)์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์„ธ์š”. AppMaster ๊ฐ™์€ ๋„๊ตฌ์—์„œ๋Š” ์ด๋ฅผ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ชจ๋“ˆ, ํŒŒํŠธ๋„ˆ ๋ ˆ์ฝ”๋“œ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n## ๊ฐ์‚ฌ์„ฑ๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ: ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ๋‚˜?\n\nํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ณ ์น˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€๋ฅผ ์ฆ๋ช…ํ•˜๋Š” ๊ฒŒ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.\n\nAPI ํ‚ค๋ฅผ ์“ฐ๋Š” ํŒ€์€ ์ข…์ข… ๊ณต์œ ๋œ ์ •์ฒด์„ฑ ๋ฌธ์ œ์— ๋ถ€๋”ชํž™๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ‚ค๋Š” ๋ณดํ†ต "๊ทธ ํŒŒํŠธ๋„ˆ"๋ฅผ ๋Œ€ํ‘œํ•˜๋ฏ€๋กœ ํŠน์ • ์‚ฌ๋žŒ์ด๋‚˜ ์•ฑ ์ธ์Šคํ„ด์Šค๋กœ ๊ท€์†์‹œํ‚ค๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์ด ํ‚ค A๋กœ ์ด๋ฃจ์–ด์กŒ๋‹ค๋Š” ๋กœ๊ทธ๋Š” ๋‚จ์ง€๋งŒ ์–ด๋А ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ํŠธ๋ฆฌ๊ฑฐํ–ˆ๋Š”์ง€, ์ง์›์ธ์ง€ ์Šคํฌ๋ฆฝํŠธ์ธ์ง€ ์œ ์ถœ๋œ ํ‚ค์ธ์ง€ ์ฆ๋ช…ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๊ฐ€ ํ‚ค๋ฅผ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์— ๋ณต์‚ฌํ•˜๋ฉด ๋กœ๊ทธ๋Š” ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.\n\nOAuth๋Š” ๋ˆ„๊ฐ€ ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ธ์ œ ์Šน์ธํ–ˆ๊ณ  ์–ด๋–ค ์ ‘๊ทผ(์Šค์ฝ”ํ”„)์ด ๋ถ€์—ฌ๋˜์—ˆ๋Š”์ง€๋ฅผ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ๋‚จ๊น๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ ์•ฑ์ด ์นจํ•ด๋‹นํ•˜๋ฉด ์˜ํ–ฅ์„ ํŠน์ • client_id๋‚˜ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•œ ์‚ฌ์šฉ์ž ์ง‘ํ•ฉ์œผ๋กœ ์ขํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n๋ณด์•ˆ ๋ฆฌ๋ทฐ๋‚˜ ์ปดํ”Œ๋ผ์ด์–ธ์Šค์—์„œ ๋ฐ›๊ฒŒ ๋  ๊ฐ์‚ฌ ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ์–ด๋–ค ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ํŒŒํŠธ๋„ˆ ์•ฑ์— ์–ด๋–ค ์Šค์ฝ”ํ”„๋กœ ์ ‘๊ทผ๋˜์—ˆ๋‚˜; ์ ‘๊ทผ์ด ์–ธ์ œ ๋ถ€์—ฌ๋˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉ๋œ ์‹œ์ ์€ ์–ธ์ œ์ธ๊ฐ€; ํ˜ธ์ถœ์ด ์–ด๋””์„œ ์™”๋Š”๊ฐ€(IP, ํ™˜๊ฒฝ); ์Šน์ธ๋œ ์Šค์ฝ”ํ”„๋ฅผ ์ดˆ๊ณผํ•œ ํ–‰์œ„๊ฐ€ ์žˆ์—ˆ๋‚˜; ํ•œ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ๋งŒ ์ฒ ํšŒํ•  ์ˆ˜ ์žˆ๋‚˜ ๋“ฑ์ž…๋‹ˆ๋‹ค.\n\n๋ฌธ์ œ ํ•ด๊ฒฐ์„ ๋น ๋ฅด๊ฒŒ ํ•˜๋ ค๋ฉด ๋ชจ๋“  ์š”์ฒญ(์ธ์ฆ ๋ฐฉ์‹๊ณผ ๊ด€๊ณ„์—†์ด)์— ๋ช‡ ๊ฐ€์ง€ ํ•„๋“œ๋ฅผ ์บก์ฒ˜ํ•˜์„ธ์š”: client_id(๋˜๋Š” ํ‚ค ID), ์ฃผ์ฒด(์‚ฌ์šฉ์ž ID, ๊ฐ€๋Šฅํ•˜๋ฉด), ์Šค์ฝ”ํ”„, IP ์ฃผ์†Œ, ๊ทธ๋ฆฌ๊ณ  ์‘๋‹ต์— ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ณ ์œ  ์š”์ฒญ ID. ํƒ€์ž„์Šคํƒฌํ”„์™€ ๊ฒฐ๊ณผ(์„ฑ๊ณต, ๊ฑฐ๋ถ€, ๋ ˆ์ดํŠธ ์ œํ•œ ๋“ฑ)๋„ ์ถ”๊ฐ€ํ•ด ์ธ์‹œ๋˜ํŠธ ํƒ€์ž„๋ผ์ธ์„ ๋ช‡ ๋ถ„ ๋‚ด๋กœ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์„ธ์š”.\n\n## ๋ณด์•ˆ ๋ฐ ์ง€์› ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ํ”ํ•œ ์‹ค์ˆ˜\n\n๋Œ€๋ถ€๋ถ„์˜ ํŒŒํŠธ๋„ˆ ์ธ์ฆ ์‚ฌ๊ณ ๋Š” ๊ณ ๊ธ‰ ํ•ดํ‚น์ด ์•„๋‹ˆ๋ผ ์ž‘์€ ์„ ํƒ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€์„ ๋…ธ์ถœํ•˜๊ธฐ ์‰ฝ๊ฑฐ๋‚˜ ๊ต์ฒดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ์‚ฌ์†Œํ•œ ๊ฒฐ์ •์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.\n\nAPI ํ‚ค ๋ฌธ์ œ๋Š” ๋ณดํ†ต ํ‚ค๊ฐ€ ์–ด๋””์— ๋‚จ๋А๋ƒ์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํŒŒํŠธ๋„ˆ๊ฐ€ ํ‚ค๋ฅผ ๋ชจ๋ฐ”์ผ ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์•ฑ์— ๋„ฃ์œผ๋ฉด ๋กœ๊ทธ, ์Šคํฌ๋ฆฐ์ƒท, ์ฑ„ํŒ…์—์„œ ๋ณต์‚ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ํ‚ค๋ฅผ ์˜๊ตฌ์ ์ธ ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํšŒ์ „ ๊ณ„ํš์ด ์—†์œผ๋ฉด ํŒ€์€ ๊ต์ฒด๋ฅผ ๊บผ๋ฆฌ๊ณ , ์ง์›์ด ๋– ๋‚˜๊ฑฐ๋‚˜ ๋ ˆํฌ๊ฐ€ ๋…ธ์ถœ๋˜์–ด๋„ ๋ฐ”๊พธ์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.\n\nOAuth ์‹คํŒจ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ์ง€์› ํ‹ฐ์ผ“์€ ๋ฆฌ๋””๋ ‰ํŠธ URI ๋ถˆ์ผ์น˜์ž…๋‹ˆ๋‹ค: ์Šคํ…Œ์ด์ง•์—์„œ๋Š” ์ž‘๋™ํ•˜๊ณ  ํ”„๋กœ๋•์…˜์—์„œ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์Šค์ฝ”ํ”„๋ฅผ ๋„“๊ฒŒ ์„ค์ •ํ•ด "๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด" ๊ถŒํ•œ์„ ๋” ์ฃผ๋Š” ๊ฒƒ์ธ๋ฐ, ์ด๊ฒŒ ๋‚˜์ค‘์— ๋ณด์•ˆ ๊ฒ€ํ† ์—์„œ ๋ฌธ์ œ ๋ฉ๋‹ˆ๋‹ค. ๋™์˜ ํ™”๋ฉด์ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ์‚ฌ์šฉ์ž๊ฐ€ ํ†ตํ•ฉ ๋™์ž‘๊ณผ ๊ถŒํ•œ์ด ๋งž์ง€ ์•Š๋‹ค๊ณ  ๋А๋ผ๋Š” ๊ฒฝ์šฐ๋„ ์ด์Šˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.\n\n๋‘ ๋ฐฉ์‹ ๋ชจ๋‘์— ํ•จ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ธฐ๊ฐ„ ์œ ํšจํ•œ ๋น„๋ฐ€๊ณผ ํ† ํฐ์€ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹ ๋ถ€์žฌ๋Š” ๋ฒ„๊ทธ๋ฅผ ์žฅ์• ๋กœ ํ‚ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌํ”Œ๋ ˆ์ด ๋ฐฉ์ง€ ๋ˆ„๋ฝ(์˜ˆ: ๋™์ผํ•œ ์„œ๋ช… ์š”์ฒญ์„ ๋‘ ๋ฒˆ ํ—ˆ์šฉ)์€ ์ค‘๋ณต ์ฒญ๊ตฌ๋‚˜ ์ค‘๋ณต ์ƒ์„ฑ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์ง€์› ์ด์Šˆ๋Š” ์ข…์ข… ์Šค์Šค๋กœ ๋งŒ๋“  ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ชจํ˜ธํ•˜๋ฉด(์˜ˆ: "unauthorized") ํŒŒํŠธ๋„ˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์—์Šค์ปฌ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์Šค์™€ ์ผ๊ด€๋œ ํ™˜๊ฒฝ์ด ์—†์œผ๋ฉด ํŒŒํŠธ๋„ˆ๊ฐ€ ์‹ค์ˆ˜๋กœ ํ”„๋กœ๋•์…˜์„ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n์˜จ๋ณด๋”ฉ ์ „์— ๊ธฐ๋ณธ ๊ฐ€๋“œ๋ ˆ์ผ์„ ์›ํ•œ๋‹ค๋ฉด ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”:\n\n- ๋น„๋ฐ€์€ ์„œ๋ฒ„์—๋งŒ ๋‘๊ณ  ํด๋ผ์ด์–ธํŠธ ์•ฑ์ด๋‚˜ ๊ณต์œ  ์ฑ„๋„์— ๋…ธ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”.\n- ํšŒ์ „๊ณผ ํ๊ธฐ๋ฅผ ๊ณ„์•ฝ์˜ ์ผ๋ถ€๋กœ ํฌํ•จํ•˜๊ณ  ๊ธฐํ•œ๊ณผ ๋‹ด๋‹น์ž๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜์„ธ์š”.\n- ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๊ถŒํ•œ ์ด๋ฆ„์œผ๋กœ ๋ช…ํ™•ํ•œ ์Šค์ฝ”ํ”„๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.\n- ์“ฐ๊ธฐ ์•ก์…˜์—๋Š” ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹๊ณผ ๋ฉฑ๋“ฑ์„ฑ ๋˜๋Š” ๋ฆฌํ”Œ๋ ˆ์ด ๋ฐฉ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.\n- ํ˜„์‹ค์ ์ธ ๋ฐ์ดํ„ฐ์™€ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์„ค์ •์„ ๊ฐ–์ถ˜ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”.\n\nAppMaster ๊ฐ™์€ ๋„๊ตฌ๋กœ ํ†ตํ•ฉ ๋ฐฑ์—”๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ์ธ์ฆ ๋ชจ๋“ˆ๊ณผ ์˜ค๋ฅ˜ ์‘๋‹ต์— ์ด๋Ÿฌํ•œ ๊ทœ์น™์„ ์ดˆ๊ธฐ์— ๋ฐ˜์˜ํ•ด ํŒŒํŠธ๋„ˆ๊ฐ€ ์˜์กดํ•˜๊ธฐ ์ „์— ๊ฐ•์ œํ•˜์„ธ์š”.\n\n## ํŒŒํŠธ๋„ˆ ํŒ€์„ ์œ„ํ•œ ์‹ค์šฉ์  ์˜์‚ฌ๊ฒฐ์ • ๊ฐ€์ด๋“œ\n\n๊ธฐ์ˆ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ง€ ๋ง๊ณ  ๊ฒฐ๊ณผ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”. ์ง„์งœ ์„ ํƒ์€ ๋‹น์‹ ์ด ๋‹จ์ผ ํ†ตํ•ฉ(์„œ๋น„์Šค ์ •์ฒด์„ฑ)์„ ํ—ˆ๊ฐ€ํ•  ๊ฒƒ์ธ์ง€, ์•„๋‹ˆ๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‹ค์ œ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€์ž…๋‹ˆ๋‹ค.\n\nํŒŒํŠธ๋„ˆ๊ฐ€ ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•ด ํ–‰๋™ํ•œ๋‹ค๋ฉด OAuth 2.0์ด ๋ณดํ†ต ๋” ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ํ˜ธ์ถœ์„ ์‚ฌ๋žŒ์—๊ฒŒ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ทธ ์‚ฌ๋žŒ์ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ œํ•œํ•˜๋ฉฐ ํŒŒํŠธ๋„ˆ ์ „์ฒด ํ†ตํ•ฉ์„ ๊นจ์ง€ ์•Š๊ณ  ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\nํ†ตํ•ฉ์ด ์ง„์ •์œผ๋กœ ์„œ๋ฒ„ ๋Œ€ ์„œ๋ฒ„์ด๊ณ  ์ ‘๊ทผ์ด ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค๋ฉด API ํ‚ค๋กœ ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ: "ํŒŒํŠธ๋„ˆ X๊ฐ€ ์•ผ๊ฐ„์— ์žฌ๊ณ  ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋‚ธ๋‹ค" ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์‚ฌ๋žŒ ์ปจํ…์ŠคํŠธ๊ฐ€ ์—†๊ณ  ํ•ญ์ƒ ๋™์ผํ•œ ๋™์ž‘์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.\n\n๊ฐ„๋‹จํ•œ ์œ„ํ—˜ยท์šด์˜ ์ ๊ฒ€์œผ๋กœ ๊ฒฐ์ •ํ•˜์„ธ์š”:\n\n- ์‚ฌ์šฉ์ž๋ณ„ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฉด OAuth๋ฅผ ์„ ํƒํ•˜์„ธ์š”.\n- ๋‹จ์ผ ๊ณ ์ • ์›Œํฌํ”Œ๋กœ์šฐ๋ผ๋ฉด ํ‚ค๋กœ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์•ˆ์ „ํ•œ ํšŒ์ „์ด ์ „์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n- ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฏผ๊ฐ(PII, ๊ฒฐ์ œ, ๊ฑด๊ฐ•, ๊ธˆ์œต)ํ•˜๋ฉด ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๊ณ  ์‚ฌ์šฉ์ž๋ณ„ ๊ฐ์‚ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ OAuth๋กœ ๊ธฐ์šธ์ด์„ธ์š”.\n\n- ํŒŒํŠธ๋„ˆ ์„ฑ์ˆ™๋„๊ฐ€ ๋‚ฎ์•„ ํ‚ค๊ฐ€ ๊ณต์œ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋ฉด OAuth๊ฐ€ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.\n\n๋‘˜ ๋‹ค ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ •ํ•˜์„ธ์š”. ์˜ˆ: ๋ฐฑ์˜คํ”ผ์Šค ๋ฐฐ์น˜ ์ž‘์—…์€ API ํ‚ค, ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ๊ฑด๋“œ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์€ OAuth. ์–ด๋–ค ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์„ ๋ฐ›๋Š”์ง€์™€ ์ ‘๊ทผ ์ฒ ํšŒ ์‹œ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”.\n\n๊ตฌ์ฒด์  ์˜ˆ: CRM ํŒŒํŠธ๋„ˆ๊ฐ€ ๋ฆฌ๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค. ์•ผ๊ฐ„ ์ž‘์—…์œผ๋กœ ํ•œ ํšŒ์‚ฌ ๊ณ„์ •์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด API ํ‚ค๊ฐ€ ๊ดœ์ฐฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ์˜์—… ๋‹ด๋‹น์ž๊ฐ€ ์ž์‹ ์˜ ๊ณ„์ •์„ ์—ฐ๊ฒฐํ•˜๊ณ  ์ž์‹ ๋งŒ์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณด๊ฒŒ ํ•˜๋ ค๋ฉด OAuth๊ฐ€ ์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.\n\n## ํŒŒํŠธ๋„ˆ๋ฅผ ํ”„๋กœ๋•์…˜์— ๋‚ด๋ณด๋‚ด๊ธฐ ์ „ ๋น ๋ฅธ ์ ๊ฒ€ ๋ชฉ๋ก\n\nํ”„๋กœ๋•์…˜ ์ ‘๊ทผ์„ ์—ด๊ธฐ ์ „์— ์ธ์ฆ์„ ๋‹จ์ˆœํ•œ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์šด์˜ ์‹œ์Šคํ…œ์œผ๋กœ ์ทจ๊ธ‰ํ•˜์„ธ์š”. ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ ๊ฐ€์žฅ ํฐ ์ง€์› ํ™”์žฌ๋Š” ๋ถˆ๋ช…ํ™•ํ•œ ์ž๊ฒฉ์ฆ๋ช…, ๋ชจํ˜ธํ•œ ๊ถŒํ•œ, ๋ˆ„๋ฝ๋œ ๋กœ๊ทธ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.\n\n### ๋ณด์•ˆ ๋ฐ ์ ‘๊ทผ\n\n๋ช…ํ™•ํ•œ ๋ฐœ๊ธ‰ ๊ฒฝ๋กœ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์„ธ์š”. API ํ‚ค๋“  OAuth๋“  go-live ์ ๊ฒ€ ํ•ญ๋ชฉ์€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค: ๋ˆ„๊ฐ€ ์ž๊ฒฉ์ฆ๋ช…์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ๋“ค์ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋Š”์ง€.\n\nํŒŒํŠธ๋„ˆ ํŒ€์„ ์œ„ํ•ด ๊ธฐ๋ณธ์„ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”: ๋ˆ„๊ฐ€ ์ ‘๊ทผ์„ ์Šน์ธํ•˜๋Š”์ง€์™€ ํŒŒํŠธ๋„ˆ ์‹ ์›์„ ์–ด๋–ป๊ฒŒ ํ™•์ธํ•˜๋Š”์ง€; ๋งŒ๋ฃŒ์™€ ํšŒ์ „ ์ •์ฑ…, ํšŒ์ „ ์‹คํŒจ ์‹œ ๋ฌด์—‡์ด ๊นจ์ง€๋Š”์ง€; ํ•œ ํŒŒํŠธ๋„ˆ(๋˜๋Š” ํ•œ ์‚ฌ์šฉ์ž)๋ฅผ ๋Œ ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋œ ํ‚ฌ ์Šค์œ„์น˜; ์ตœ์†Œ ๊ถŒํ•œ ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋ช…ํ™•ํ•œ ๋™์˜ ๋ฌธ๊ตฌ; ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ ์ž๊ฒฉ์ฆ๋ช…๊ณผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–์ถ˜ ์ƒŒ๋“œ๋ฐ•์Šค.\n\nํ˜„์‹ค ์ ๊ฒ€: ํŒŒํŠธ๋„ˆ์˜ API ํ‚ค๊ฐ€ ๊ณต๊ฐœ ๋ ˆํฌ์— ๋…ธ์ถœ๋˜๋ฉด, ๋ช‡ ๋ถ„ ๋‚ด๋กœ ํ๊ธฐํ•˜๊ณ  ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•˜๋ฉฐ ์ƒˆ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•ด ์ˆ˜๋™ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŽธ์ง‘ ์—†์ด ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‚˜์š”?\n\n### ์šด์˜ ๋ฐ ์ง€์›\n\n"๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋‚˜?"์— ๋Œ€ํ•œ ์ฆ๊ฑฐ๋ฅผ ์ œ์‹œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์š”์ฒญ์— ๋ˆ„๊ฐ€ ํ˜ธ์ถœํ–ˆ๋Š”์ง€(ํŒŒํŠธ๋„ˆ ID, ์‚ฌ์šฉ์ž ID ๊ฐ€๋Šฅ), ๋ฌด์—‡์„ ์‹œ๋„ํ–ˆ๋Š”์ง€(์—”๋“œํฌ์ธํŠธ, ์Šค์ฝ”ํ”„), ์‹œ์Šคํ…œ์ด ๋ฌด์Šจ ๊ฒฐ์ •์„ ํ–ˆ๋Š”์ง€(์ƒํƒœ ์ฝ”๋“œ, ์˜ค๋ฅ˜ ์ด์œ )๋ฅผ ๋กœ๊ทธ๋กœ ๋‚จ๊ธฐ์„ธ์š”.\n\n๋˜ํ•œ ํŒŒํŠธ๋„ˆ๊ฐ€ ๊ณ ์น  ์ˆ˜ ์žˆ๋„๋ก ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€(์Šค์ฝ”ํ”„ ๋ˆ„๋ฝ, ํ† ํฐ ๋งŒ๋ฃŒ, ์„œ๋ช… ๋ถˆ์ผ์น˜ ๋“ฑ), ํŒŒํŠธ๋„ˆ๋ฅผ ๋†€๋ผ๊ฒŒ ํ•˜์ง€ ์•Š๋Š” ๋ณดํ˜ธ์šฉ ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹, ์ ‘๊ทผ ์ผ์‹œ ์ค‘์ง€ ๋ฐ ๊ด€๋ จ ํŒŒํŠธ๋„ˆ ํ†ต๋ณด๋ฅผ ์œ„ํ•œ ์ธ์‹œ๋˜ํŠธ ํ”Œ๋ ˆ์ด๋ถ์„ ์ค€๋น„ํ•˜์„ธ์š”.\n\nAppMaster๋กœ ํŒŒํŠธ๋„ˆ API๋ฅผ ๋งŒ๋“ค๋ฉด ์ด๋Ÿฐ ํ•„๋“œ์™€ ๊ฒ€์‚ฌ๋ฅผ ์ดˆ๊ธฐ์— ์„ค์ •ํ•ด ์ƒ์„ฑ๋˜๋Š” ๋ฐฑ์—”๋“œ์™€ ๋กœ๊ทธ๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€ํ™”์—๋„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ํ•˜์„ธ์š”.\n\n## ํ˜„์‹ค์ ์ธ ์˜ˆ: CRM ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ\n\n์ˆ˜์‹ญ ๊ฐœ์˜ ๊ณตํ†ต ๊ณ ๊ฐ์„ ์œ„ํ•ด ์—ฐ๋ฝ์ฒ˜๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” CRM ํŒŒํŠธ๋„ˆ๋ฅผ ์ƒ์ƒํ•ด ๋ณด์„ธ์š”. ๊ฐ ๊ณ ๊ฐ์‚ฌ์—๋Š” ์—ฌ๋Ÿฌ ํŒ€์ด ์žˆ๊ณ  ๋ชจ๋“  ํŒ€์ด ๊ฐ™์€ ์—ฐ๋ฝ์ฒ˜๋ฅผ ๋ณผ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. CRM ๊ณต๊ธ‰์—…์ฒด๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ์„ ์›ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ์ง€์› ํ‹ฐ์ผ“์„ ์ค„์ด๊ณ  ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ๋ช…ํ™•ํžˆ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.\n\nAPI ํ‚ค๋กœ๋Š” ์˜จ๋ณด๋”ฉ์ด ๋‹จ์ˆœํ•ด ๋ณด์ž…๋‹ˆ๋‹ค: ํŒŒํŠธ๋„ˆ์—๊ฒŒ ํ‚ค๋ฅผ ์ฃผ๋ฉด ํ‘ธ์‹œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ผ์ฃผ์ผ ํ›„์— ๊ณ ๊ฐ์ด "์˜์—…ํŒ€์€ ๋™๊ธฐํ™”๋˜์ง€๋งŒ ์ง€์›ํŒ€์€ ์•ˆ ๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‚˜?"๋ผ๊ณ  ๋ฌป๋Š” ์ˆœ๊ฐ„ ๋ฌธ์ œ๊ฐ€ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ‚ค๊ฐ€ ๋งŒ๋Šฅ ์—ด์‡ ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.\n\n์ด ๊ตฌ์„ฑ์—์„œ API ํ‚ค์˜ ํ•œ๊ณ„๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค: ์ ‘๊ทผ์€ ๋ณดํ†ต ํ‚ค ๋‹จ์œ„๋กœ ์ „๋ถ€ ํ˜น์€ ์ „๋ฌด๊ฐ€ ๋˜๊ณ (๊ทธ๋ž˜์„œ ๊ณ ๊ฐยทํŒ€ยทํ™˜๊ฒฝ๋ณ„๋กœ ํ‚ค๋ฅผ ๋” ๋งŒ๋“ ๋‹ค), ์œ ์ถœ ์‹œ ์ „์—ญ ํšŒ์ „์ด ํ•„์š”ํ•˜๊ณ , ๊ท€์†์„ฑ์ด ์•ฝํ•ด ์–ด๋А ๊ฐœ์ธ์ด ํ–ˆ๋Š”์ง€ ์•Œ๊ธฐ ์–ด๋ ต๊ณ , ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ฐจ๋‹จํ•˜๋ ค๋ฉด ์ „์ฒด ํ‚ค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.\n\nOAuth๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒํŠธ๋„ˆ CRM์ด ๊ฐ ๊ณ ๊ฐ์˜ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋™์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๋ฝ์ฒ˜ ๋™๊ธฐํ™”์— ํ•„์š”ํ•œ ์Šค์ฝ”ํ”„(์—ฐ๋ฝ์ฒ˜ ์ฝ๊ธฐยท์“ฐ๊ธฐ, ์ฒญ๊ตฌยท๊ด€๋ฆฌ ๊ถŒํ•œ ์—†์Œ)๋งŒ ์š”์ฒญํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ถŒํ•œ ๋ฒ”์œ„๋ฅผ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๋ฉด "์™œ ์ด๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์ง€?"๋ผ๋Š” ํ‹ฐ์ผ“์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.\n\n์ผ์ƒ ์šด์˜์€ OAuth๊ฐ€ ๋” ๊น”๋”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค: ํ•œ ๊ณ ๊ฐ(๋˜๋Š” ํ•œ ์‚ฌ์šฉ์ž)์˜ ์ ‘๊ทผ๋งŒ ์ฒ ํšŒํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹จ๊ธฐ ์•ก์„ธ์Šค ํ† ํฐ์€ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ์ค„์ด๋ฉฐ, ๊ฐ์‚ฌ ๋กœ๊ทธ๋Š” ํŒŒํŠธ๋„ˆ ์•ฑยท๊ณ ๊ฐ ๊ณ„์ •ยท์ข…์ข… ํŠน์ • ์‚ฌ์šฉ์ž ID๊นŒ์ง€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\nAppMaster ๊ฐ™์€ ํ”Œ๋žซํผ์—์„œ ์ด ์ž‘์—…์„ ํ•œ๋‹ค๋ฉด ๋™๊ธฐํ™”๋œ ์—ฐ๋ฝ์ฒ˜ ์—…๋ฐ์ดํŠธ๋งˆ๋‹ค ํŒŒํŠธ๋„ˆ ์•ฑ, ๊ณ ๊ฐ ๊ณ„์ •, ๊ทธ๋ฆฌ๊ณ  OAuth ์‚ฌ์šฉ ์‹œ ๋™์ž‘ํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด "์—ฐ๋ฝ์ฒ˜๊ฐ€ ๋ฐค์‚ฌ์ด์— ์ค‘๋ณต ์ƒ์„ฑ๋จ" ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.\n\n## ๋‹ค์Œ ๋‹จ๊ณ„: ๋” ์•ˆ์ „ํ•œ ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ ์ถœ๋ฒ”\n\nํ†ตํ•ฉ์„ ๋‘ ๊ฐœ์˜ ์งง์€ ์ด์•ผ๊ธฐ๋กœ ์ ์–ด๋‘์„ธ์š”: ํ–‰๋ณต ๊ฒฝ๋กœ(์ž๊ฒฉ์ฆ๋ช…์„ ์–ป๊ณ , ์—”๋“œํฌ์ธํŠธ ํ˜ธ์ถœํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•จ)์™€ ์‹คํŒจ ๊ฒฝ๋กœ(ํ† ํฐ ๋งŒ๋ฃŒ, ์Šค์ฝ”ํ”„ ๋ˆ„๋ฝ, ์ž˜๋ชป๋œ ๊ณ„์ •). ์ด ํ•œ ํŽ˜์ด์ง€๊ฐ€ ํŒŒํŠธ๋„ˆ๊ฐ€ ์Šค์Šค๋กœ ์ง„๋‹จํ•˜๊ฒŒ ํ•ด ์ง€์› ์‹œ๊ฐ„์„ ๋งŽ์ด ์ค„์—ฌ์ค๋‹ˆ๋‹ค.\n\nํŒŒ์ผ๋Ÿฟ ํŒŒํŠธ๋„ˆ์™€ ์ž‘๊ฒŒ ์‹œ์ž‘ํ•˜์„ธ์š”. ์‹ค์ œ ํŠธ๋ž˜ํ”ฝ์€ ๋น ๋ฅด๊ฒŒ ๋ฌด์—‡์ด ๋น ์กŒ๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค: ์–ด๋–ค ์—”๋“œํฌ์ธํŠธ์— ๋” ๋ช…ํ™•ํ•œ ์Šค์ฝ”ํ”„๊ฐ€ ํ•„์š”ํ•œ์ง€, ์–ด๋–ค ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐœ์„ ํ•ด์•ผ ํ•˜๋Š”์ง€, ๋ฌด์—‡์„ ๋กœ๊น…ํ•ด์•ผ ๋น ๋ฅด๊ฒŒ ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋“ฑ.\n\n์ž์ฒด ํ†ตํ•ฉ ํ”Œ๋žซํผ์„ ๋งŒ๋“ค ๊ณ„ํš์ด๋ผ๋ฉด ์ดˆ๊ธฐ ๋ฒ„์ „์€ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”. AppMaster ๊ฐ™์€ ๋„๊ตฌ๋Š” ์ธ์ฆ ํ๋ฆ„, API, ๊ฐ์‚ฌ ์นœํ™”์  ๋ฐฑ์—”๋“œ๋ฅผ ๋” ๋นจ๋ฆฌ ๋งŒ๋“ค๋„๋ก ๋„์™€์ฃผ๋ฉฐ ๋ชจ๋“  ๊ฑธ ์ˆ˜์ž‘์—…์œผ๋กœ ์ฝ”๋”ฉํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์„ ๋” ์‚ดํŽด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด AppMaster์™€ appmaster.io๋ฅผ ํ™•์ธํ•˜์„ธ์š”.\n\n๋‹ค์Œ์€ "์ž‘๋™ํ•จ"์—์„œ "์•ˆ์ „ํ•˜๊ณ  ์ง€์› ๊ฐ€๋Šฅํ•œ ์ƒํƒœ"๋กœ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•œ ์‹ค๋ฌด ์ฒดํฌ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค:\n\n- ๊ธฐ๋ณธ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๊ณ  ์˜ˆ์™ธ ํ—ˆ์šฉ ์กฐ๊ฑด์„ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”.\n- ํšŒ์ „ ์ •์ฑ…(์ฃผ๊ธฐ, ์ค‘๋ณต ํ—ˆ์šฉ, ๊ธด๊ธ‰ ํ๊ธฐ ๋ฐฉ์‹)์„ ์ •ํ•˜์„ธ์š”.\n- ์ ‘๊ทผ ๊ทœ์น™์„ ์ •์˜ํ•˜์„ธ์š”(ํŒŒํŠธ๋„ˆ ๋‹จ์œ„, ์‚ฌ์šฉ์ž ๋‹จ์œ„, ๋˜๋Š” ๋‘˜ ๋‹ค).\n- ๋ฌด์—‡์„ ๋กœ๊น…ํ• ์ง€ ๊ฒฐ์ •ํ•˜์„ธ์š”(ํŒŒํŠธ๋„ˆ ID, ์‚ฌ์šฉ์ž ID(์žˆ๋‹ค๋ฉด), ์—”๋“œํฌ์ธํŠธ, ์•ก์…˜, ํƒ€์ž„์Šคํƒฌํ”„).\n- ํ…Œ์ŠคํŠธ ์ž๊ฒฉ์ฆ๋ช…๊ณผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–์ถ˜ ํŒŒํŠธ๋„ˆ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์ค€๋น„ํ•˜์„ธ์š”.\n\n๋งˆ์ง€๋ง‰์œผ๋กœ ์˜จ๋ณด๋”ฉ์„ ๊ฐ€์ด๋“œ๋œ ์„ค์ •์ฒ˜๋Ÿผ ๋А๊ปด์ง€๊ฒŒ ํ•˜์„ธ์š”. ๊นจ๋—ํ•œ ์ƒŒ๋“œ๋ฐ•์Šค, ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜, ์œ ์šฉํ•œ ๋กœ๊ทธ๊ฐ€ ์ผ์ฃผ์ผ ์ฐจ ์ขŒ์ ˆ์„ ์ถœ์‹œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

When should I choose an API key instead of OAuth 2.0 for a partner integration?

API ํ‚ค๋Š” ํ†ตํ•ฉ์ด ์ง„์ •ํ•œ ์„œ๋ฒ„ ๋Œ€ ์„œ๋ฒ„(server-to-server)์ด๊ณ  ๊ฐœ๋ณ„ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๋•Œ ์‚ฌ์šฉํ•˜์„ธ์š”. ํŒŒํŠธ๋„ˆ ์•ฑ์ด ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ํ…Œ๋„ŒํŠธ๋ฅผ ๋Œ€์‹ ํ•ด ๋™์ž‘ํ•˜๊ณ  ์‚ฌ์šฉ์ž๋ณ„ ๋™์˜, ๋ฒ”์œ„(scope), ์ฆ‰๊ฐ์ ์ธ ์ ‘๊ทผ ์ฐจ๋‹จ์ด ํ•„์š”ํ•˜๋ฉด OAuth 2.0์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

Whatโ€™s the practical difference between โ€œpartner-levelโ€ access and โ€œuser-delegatedโ€ access?

API ํ‚ค๋Š” ๋ณดํ†ต ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์„ ํ•˜๋‚˜์˜ ๊ณต์œ ๋œ ์‹๋ณ„์ž๋กœ ์‹๋ณ„ํ•˜๋ฏ€๋กœ ๊ถŒํ•œ๊ณผ ๋กœ๊ทธ๊ฐ€ ๊ฑฐ์น ๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. OAuth 2.0์€ ํŠน์ • ์‚ฌ์šฉ์ž์˜ ๋™์˜์™€ ์—ฐ๊ฒฐ๋œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด ์‚ฌ์šฉ์ž ์ˆ˜์ค€์˜ ๊ถŒํ•œ ๊ฒ€์‚ฌ์™€ ๊ฐ์‚ฌ ์ถ”์ ์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Why do API keys feel faster to onboard than OAuth?

API ํ‚ค๋Š” ๋ณดํ†ต ํŒŒํŠธ๋„ˆ๊ฐ€ ํ‚ค๋ฅผ ์š”์ฒญ๋ฐ›์•„ ์š”์ฒญ ํ—ค๋”์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜์–ด ์˜จ๋ณด๋”ฉ์ด ๋ช‡ ๋ถ„ ์•ˆ์— ๋๋‚ฉ๋‹ˆ๋‹ค. OAuth๋Š” ์•ฑ ๋“ฑ๋ก, ๋ฆฌ๋””๋ ‰ํŠธ URI ์„ค์ •, ๋™์˜ ํ๋ฆ„ ๋“ฑ ์‚ฌ์ „ ์ค€๋น„๊ฐ€ ๋” ํ•„์š”ํ•ด ์ฒซ ํ˜ธ์ถœ๊นŒ์ง€ ๋ช‡ ์‹œ๊ฐ„์—์„œ ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

What are the most common OAuth setup mistakes partners make?

๊ฐ€์žฅ ํ”ํ•œ ๋ฌธ์ œ๋Š” ๋ฆฌ๋””๋ ‰ํŠธ URI ๋ถˆ์ผ์น˜์ž…๋‹ˆ๋‹ค. ๊ทธ ๋ฐ–์— ํ…Œ์ŠคํŠธ/ํ”„๋กœ๋•์…˜ ์ž๊ฒฉ์ฆ๋ช… ํ˜ผ๋™, authorization code์™€ access token ํ˜ผ๋™, ์ž˜๋ชป๋œ ์Šค์ฝ”ํ”„ ์š”์ฒญ ๋“ฑ์ด ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

How should we rotate API keys without breaking a partnerโ€™s production jobs?

ํŒŒํŠธ๋„ˆ๋‹น ๋‘ ๊ฐœ์˜ ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ์ค‘๋ณต ํ—ˆ์šฉ ๊ธฐ๊ฐ„(overlap window)์„ ๋‘๋Š” ๋ฐฉ์‹์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค: ์ƒˆ ํ‚ค ๋ฐœ๊ธ‰ ํ›„ ๋‘ ํ‚ค๋ฅผ ์ž ๊น ํ—ˆ์šฉํ•˜๊ณ  ์ „ํ™˜ ํ™•์ธ์ด ๋˜๋ฉด ๊ตฌ ํ‚ค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์„ธ์š”. ํ™˜๊ฒฝ๋ณ„๋กœ ๋ณ„๋„ ํ‚ค๋ฅผ ์œ ์ง€ํ•˜๊ณ , ๋…ธ์ถœ ์‹œ ์ฆ‰์‹œ ํ๊ธฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Whatโ€™s a sensible token rotation and revocation approach with OAuth 2.0?

์•ก์„ธ์Šค ํ† ํฐ์€ ์งง๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋„๋ก ํ•˜์„ธ์š”. ์‚ฌ๊ณ  ๋Œ€์‘์„ ์œ„ํ•ด์„œ๋Š” ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ํ๊ธฐ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ฆ‰์‹œ ์ ์šฉ๋˜๋„๋ก ํ•ด์•ผ ํŒŒํŠธ๋„ˆ๊ฐ€ ๊ณ„์† ์ ‘๊ทผ์„ ๊ฐฑ์‹ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Is it ever safe to put an API key in a mobile or browser app?

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋ชจ๋ฐ”์ผ ์•ฑ์— ๋„ฃ์€ ๊ฒƒ์€ ์ถ”์ถœ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์„ธ์š”. API ํ‚ค๋Š” ์„œ๋ฒ„์—๋งŒ ๋ณด๊ด€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‚ฌ์šฉ์ž๋ณ„ ์ ‘๊ทผ์ด ํ•„์š”ํ•˜๋ฉด ์˜๊ตฌ์ ์ธ ๊ณต์œ  ๋น„๋ฐ€์„ ์‹ฌ๋Š” ๋Œ€์‹  OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

How do scopes help, and how should we design them for partners?

์Šค์ฝ”ํ”„๋Š” โ€œread contactsโ€๋‚˜ โ€œwrite ticketsโ€ ๊ฐ™์€ ์ด๋ฆ„ ์žˆ๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋Š” ์ž‘๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  ์‹ค์ œ ์ž‘์—…์— ๋งž์ถฐ ์ •๋ฆฌํ•˜์„ธ์š”. ํŒŒํŠธ๋„ˆ๊ฐ€ ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ์š”์ฒญํ•˜๋„๋ก ์š”๊ตฌํ•˜๋ฉด ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ์ง€ํ‚ค๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

What should we log to make partner auth issues easy to troubleshoot?

๋กœ๊ทธ์— ๋‚จ๊ฒจ์•ผ ํ•  ํ•„๋“œ๋Š” ํŒŒํŠธ๋„ˆ ์‹๋ณ„์ž(ํ‚ค ID ๋˜๋Š” client_id), ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์œผ๋ฉด ์‚ฌ์šฉ์ž/์ฃผ์ฒด(subject), ๋ถ€์—ฌ๋œ ์Šค์ฝ”ํ”„, ์‹œ๋„ํ•œ ์—”๋“œํฌ์ธํŠธ/์•ก์…˜, ๊ฒฐ์ • ๊ฒฐ๊ณผ(์„ฑ๊ณต ๋˜๋Š” ๊ฑฐ๋ถ€)์™€ ์ด์œ , IP ์ฃผ์†Œ, ๊ทธ๋ฆฌ๊ณ  ์‘๋‹ต์— ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ณ ์œ  ์š”์ฒญ ID์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ธ์‹œ๋˜ํŠธ์—์„œ "๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ๋Š”๊ฐ€"๋ฅผ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

What are the key go-live checks before we open partner access to production?

๊ธฐ๋ณธ ์ธ์ฆ ๋ฐฉ์‹์„ ์ •ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ ํ—ˆ์šฉํ•  ์กฐ๊ฑด์„ ๋ฌธ์„œํ™”ํ•˜์„ธ์š”. ์ž๊ฒฉ์ฆ๋ช…์„ ๋น ๋ฅด๊ฒŒ ๋ฐœ๊ธ‰ํ•˜๊ณ  ํ๊ธฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋ ˆ์ดํŠธ ๋ฆฌ๋ฐ‹๊ณผ ์“ฐ๊ธฐ ์—”๋“œํฌ์ธํŠธ์˜ ๋ฉฑ๋“ฑ์„ฑ(idempotency)์„ ์ ๊ฒ€ํ•˜์„ธ์š”. ์ƒŒ๋“œ๋ฐ•์Šค, ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€, ํŠน์ • ํŒŒํŠธ๋„ˆ๋‚˜ ์‚ฌ์šฉ์ž๋ฅผ ์ผ์‹œ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ ์ ˆ์ฐจ๋„ ์ค€๋น„ํ•˜์„ธ์š”.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
ํŒŒํŠธ๋„ˆ ํ†ตํ•ฉ์—์„œ API ํ‚ค์™€ OAuth 2.0: ๋ฌด์—‡์ด ๋‹ฌ๋ผ์งˆ๊นŒ | AppMaster