[Python] ์ด๋ฒคํŠธ ๋ฃจํ”„ (Event Loop) - ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Python
์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜, Python ํŒŒ์ด์ฌ์€ (CPython ์˜ ๊ตฌํ˜„์ฒด)๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ์•ˆ์ „์„ฑ์„ ์œ„ํ•ด"ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ํŒŒ์ด์ฌ ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค" ๋Š” ๊ทœ์น™์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.์ด๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด GIL (์ „์—ญ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ž ๊ธˆ) ์ด๋ผ๋Š” ์˜ต์…˜์ด ์žˆ๋‹ค. GIL ๋กœ๋ถ€ํ„ฐ ์Šน์ธ์„ ๋ฐ›์€ ์Šค๋ ˆ๋“œ๋งŒ ์—ฐ์‚ฐ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ๋ง์€ ํ•œ ์‹œ์ ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ํŒŒ์ด์ฌ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์œผ๋กœ ์ด๋กœ ์ธํ•ด ํŒŒ์ด์ฌ์€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ๋ฐฉ์‹์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์ธ ํŒŒ์ด์ฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์„œ๋น„์Šค๋Š” ์ˆ˜๋ฐฑ-์ˆ˜์ฒœ๋ช…์˜ ์š”์ฒญ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊นŒ? ์‹ฑ๊ธ€์ด๋ฉด ๋ช‡๋ช… ๋ฐ–์— ๋ชป์ฒ˜๋ฆฌํ•˜๋Š”๊ฑฐ ์•„๋‹ˆ์•ผ ? ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ๋‹น์—ฐํžˆ ํŒŒ์ด์ฌ์œผ๋กœ ๊ตฌ์ถ•ํ•œ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ๋„ ์ˆ˜๋ฐฑ ์ˆ˜์ฒœ๋ช…์˜ ํŠธ๋ž˜ํ”ฝ์„ ..
[DB] ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์˜ ๊ฐœ๋… ๋ฐ ์ข…๋ฅ˜
ยท
๊ณต๋ถ€/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ณต๋ถ€๊ธฐ๋ก
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด๋ž€? ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก, ์ €์žฅ, ์ฒ˜๋ฆฌ๋˜๋Š” ์ „์ฒด ๊ณผ์ •์—์„œ ์ •ํ™•์„ฑ(Accuracy), ์ผ๊ด€์„ฑ(Consistency), ์œ ํšจ์„ฑ(Validity) ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ. ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ํ—ˆ๊ฐ€๋˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์†์ƒ๋˜์ง€ ์•Š๋„๋ก ๋ณดํ˜ธํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์˜ ์ข…๋ฅ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๋ฌด๊ฒฐ์„ฑ์˜ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ด์™ธ์—๋„ null ๋ฌด๊ฒฐ์„ฑ, ๊ณ ์œ  ๋ฌด๊ฒฐ์„ฑ ๋“ฑ๋“ฑ ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•ด ์ถ”๊ฐ€์ ์œผ๋กœ ์ •์˜ํ•œ ๋ฌด๊ฒฐ์„ฑ ์ข…๋ฅ˜๊ฐ€ ๋” ์žˆ์ง€๋งŒ์•„๋ž˜ 4๊ฐ€์ง€๋Š” ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ต์žฌ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ •์˜ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” 4๊ฐ€์ง€ ๋ฌด๊ฒฐ์„ฑ์ด๋‹ค. 1. ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ(Entity Integrity): ๊ธฐ๋ณธํ‚ค(PK) ๋Š” Null ์ด ๋  ..
DNN (Deep Neural Network) ์‹ฌ์ธต์‹ ๊ฒฝ๋ง๊ณผ ์—ญ์ „ํŒŒ(backpropagation) ์•Œ๊ณ ๋ฆฌ์ฆ˜ (feat. ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•๊ณผ์˜ ์ฐจ์ด์ )
ยท
AI
์‹ฌ์ธต์‹ ๊ฒฝ๋ง DNN (Deep Neural Network)๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์˜ ๋”ฅ๋Ÿฌ๋‹ ํŠน์ง•: ์€๋‹‰์ธต์„ ์—ฌ๋Ÿฌ๊ฐœ ์Œ“์•„ ๋ฐ์ดํ„ฐ์˜ ๋ณต์žกํ•œ ํŠน์ง•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ถ”์ถœํ•จ. ์žฅ์ : ์ธ๊ฐ„์ด ์ง์ ‘ ๊ทœ์น™์„ ๋งŒ๋“ค์ง€ ์•Š์•„๋„, AI ๊ฐ€ ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๊ณ ์ฐจ์›์ ์ธ ํŒจํ„ด์„ ํ•™์Šตํ•จ. ์ž…๋ ฅ์ธต๊ณผ ์ถœ๋ ฅ์ธต ์‚ฌ์ด์˜ ์€๋‹‰์ธต์ด 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ๋ฅผ DNN ์ด๋ผ๊ณ  ๋ถ€๋ฆ„ (์š”์ฆ˜์€ ์ˆ˜๋ฐฑ์ธต๊นŒ์ง€ ๊ฐ) ๋‹จ๊ณ„๋ณ„ ์ถ”์ƒํ™” ์•ž์ชฝ ์ธต: ์ด๋ฏธ์ง€์ผ๋•Œ ์ ์ด๋‚˜ ์„ ๊ฐ™์€ ๋‹จ์ˆœํ•œ ํŠน์ง•์„ ์ฐพ์Œ ์ค‘๊ฐ„์ธต: ๊ทธ ์„ ์„ ์กฐํ•ฉํ•ด ๋ˆˆ๋ชจ์–‘, ์ฝ”๋ชจ์–‘์„ ์ดํ•ดํ•จ๋’ค์ชฝ์ธต: ๊ฒฐ๊ตญ "๊ณ ์–‘์ด ์–ผ๊ตด" ์ด๋ผ๋Š” ๋ณต์žกํ•˜๊ณ  ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์„ ์ดํ•ดํ•จ. ์—ญ์ „ํŒŒ(Backpropagation) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ: DNN ์˜ ์ถœ๋ ฅ์ธต์ด ํ‹€๋ ธ์„๋•Œ, ์ˆ˜๋งŒ๊ฐœ์˜ ์€๋‹‰์ธต ๋‰ด๋Ÿฐ์ค‘, ๋ˆ„๊ฐ€ ์–ด๋–ค ๊ฐ€์ค‘์น˜๋กœ ์ •๋‹ต์„ ๋ฐฉํ•ดํ–ˆ๋Š”์ง€ ์•Œ ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Œ...
ํผ์…‰ํŠธ๋ก (Perceptron) ์ด๋ž€? / ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง DNN (Deep Neural Network)
ยท
AI
Perceptron ์˜ ์‚ฌ์ „์  ์ •์˜ ํผ์…‰ํŠธ๋ก  (Perceptron) ์ด๋ž€? ์‹ ๊ฒฝ๋ง์˜ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„ = ํ•˜๋‚˜์˜ ๋‰ด๋Ÿฐ (๋‡Œ์„ธํฌ) ์„ ๋ชจ๋ฐฉํ•œ ๊ฒƒ ์‹œ๊ฐ๊ณผ ๋‡Œ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋ธํ™”ํ•œ ํ•™์Šต ๊ธฐ๊ณ„. ํ•™์Šต ๊ธฐ๋Šฅ๊ณผ ์ง€์  ๋™์ž‘ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํŒจํ„ด ์ธ์‹์˜ ๊ธฐ๊ณ„๋กœ์„œ, ๋ฏธ๊ตญ ์ฝ”๋„ฌ ๋Œ€ํ•™์˜ ๋กœ์  ๋ธ”๋žซ์ด ๋งŒ๋“ค์—ˆ๋‹ค. ํผ์…‰ํŠธ๋ก ์˜ ์ˆ˜ํ•™์  ์ •์˜ ๋”๋ณด๊ธฐy = f(wโ‚xโ‚ + wโ‚‚xโ‚‚ + ... + wโ‚™xโ‚™ + b) ๐Ÿ’ก : ํ•™์Šต ๋Œ€์ƒxโ‚, xโ‚‚, ..., xโ‚™: ์ž…๋ ฅ๊ฐ’ (input features) : ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ (์žฌ๋ฃŒ) wโ‚, wโ‚‚, ..., wโ‚™: ๊ฐ€์ค‘์น˜ ๐Ÿ’ก (weights) : ๊ฐ ์ž…๋ ฅ๊ฐ’์ด ๊ฒฐ๊ณผ์— ์ฃผ๋Š” ์˜ํ–ฅ๋ ฅ(์ค‘์š”๋„). ์–ด๋–ค ์ž๊ทน์— ๋” ์˜ˆ๋ฏผํ•˜๊ฒŒ ๋ฐ˜์‘ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ชจ๋ธ์˜ ์„ฑ๊ฒฉ. ์„ ์˜ ๊ธฐ์šธ๊ธฐ. b: ํŽธํ–ฅ ๐Ÿ’ก (bias) :..
์ž„๋ฒ ๋”ฉ(Embedding)๊ณผ ๋ฒกํ„ฐ ๊ณต๊ฐ„
ยท
AI
๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ์ด๋ž€ ? ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž(vector) ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •. ๋‹จ์ˆœํžˆ ์ˆซ์ž๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด์•„๋‹ˆ๋ผ, ๋‹จ์–ด ์‚ฌ์ด์˜ ์˜๋ฏธ์  ๊ด€๊ณ„ (semantic meaning) ์„ ๋‹ด์•„๋‚ธ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž„. ๋”๋ณด๊ธฐ ๋”๋ณด๊ธฐ ์Šค์นผ๋ผ(Scalar) : ๋‹จ์ผ ์ˆซ์ž, ํฌ๊ธฐ๋งŒ ์žˆ๊ณ  ๋ฐฉํ–ฅ์€ ์—†๋Š” "ํ•˜๋‚˜์˜ ์ˆซ์ž", ๋ณ€์ˆ˜ ํ•˜๋‚˜์— ๋‹ด๊ธด ๊ฐ’. ๋ฒกํ„ฐ(Vector) : ์ˆซ์ž์˜ ๋‚˜์—ด, ์ฆ‰ 1์ฐจ์› ๋ฐฐ์—ด. ์—ฌ๋Ÿฌ ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•œ ๊ฒƒ. "ํฌ๊ธฐ"์™€ "๋ฐฉํ–ฅ"์„ ๊ฐ€์ง. ํ–‰๋ ฌ(Matrix) : ์ˆซ์ž์˜ ํ‘œ (2์ฐจ์› ๋ฐฐ์—ด) : ๋ฒกํ„ฐ๋“ค์„ ์—ฌ๋Ÿฌ๊ฐœ ์Œ“์•„์˜ฌ๋ฆฐ ๊ฐ’. ex. ์—‘์…€์‹œํŠธ. ๋ฒกํ„ฐ ๊ณต๊ฐ„ ๋‹ค์ฐจ์› ์ˆ˜ํ•™์  ๊ณต๊ฐ„ ๋‹จ์ˆœํ•œ ์ˆซ์ž ๋‚˜์—ด์ด ์•„๋‹Œ, ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ฑฐ๋ฆฌ์™€ ๋ฐฉํ–ฅ์„ ํ†ตํ•ด ๊ด€๊ณ„๋ฅผ ์ •..
[260121] PostgreSQL ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ข…๋ฅ˜
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ
PostgreSQL ๋ฐ์ดํ„ฐ ํƒ€์ž…(data types) ์ข…๋ฅ˜ (postgresql ๊ณต์‹ ํŠœํ† ๋ฆฌ์–ผ) https://www.postgresql.org/docs/current/datatype.html Chapter 8. Data TypesChapter 8. Data Types Table of Contents 8.1. Numeric Types 8.1.1. Integer Types 8.1.2. Arbitrary Precision Numbers 8.1.3. Floating-Point Types 8.1.4. Serial …www.postgresql.org 1. ๊ณต์‹ ๋ฌธ์„œ์— ๋ช…์‹œ๋œ data type ์ข…๋ฅ˜ NameAliasesDescriptionbigintint8signed eight-byte integerbigseri..
[kotlin] sealed class (enum class ์™€์˜ ์ฐจ์ด์ )
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Android
Sealed class ๋ž€ ์ œํ•œ๋œ ์ƒ์† ๊ณ„์ธต์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋„๊ตฌ. ์ฆ‰, ์ •์˜ํ•œ ํด๋ž˜์Šค ์™ธ์˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†์„ ๋ฐ›์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ์ด๋•Œ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž์‹ ํด๋ž˜์Šค์˜ ์ข…๋ฅ˜๋ฅผ ๋ชจ๋‘ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๊ฒŒ ๋จ. fun handleStep(step: ProfileStep) { when(step) { is ProfileStep.Gender -> { /* ์„ฑ๋ณ„ ์ฒ˜๋ฆฌ ๋กœ์ง */ } is ProfileStep.Age -> { /* ์—ฐ๋ น ์ฒ˜๋ฆฌ ๋กœ์ง */ } is ProfileStep.Complete -> { /* ์™„๋ฃŒ ์ฒ˜๋ฆฌ ๋กœ์ง */ } // else ๊ฐ€ ํ•„์š” ์—† }}์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฐ gender, age, complete ํด๋ž˜์Šค์— ๊ฐ๊ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ..
[kotlin] ์ฝ”ํ‹€๋ฆฐ(Kotlin) ๊ณผ ์ฝ”๋ฃจํ‹ด(Coroutine)์— ๋Œ€ํ•ด
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Android
Kotlin 2011๋…„ 7์›” JetBrains(์ธํ…”๋ฆฌ์ œ์ด ๊ฐœ๋ฐœ์‚ฌ) ๊ฐ€ ์ถœ์‹œํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด JVM ๊ธฐ๋ฐ˜ ์–ธ์–ด๋กœ Java ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋” ๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•๊ณผ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋จ. Java ์™€์˜ ์ƒํ˜ธ ์šด์šฉ 100% ์ง€์›ํ•จ. JVM ๋ฐ”์ดํŠธ ์ฝ”๋“œ๊ฐ€ ๊ธฐ๋ณธ์ด์ง€๋งŒ, kotlin/native ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด jvm ์—†์ด ๊ธฐ๊ณ„์–ด๋กœ ์ปดํŒŒ์ผ์ด ๊ฐ€๋Šฅํ•จ. ์ด๋ฅผ ํ†ตํ•ด ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ kotlin ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. Android, spring ํ”„๋ ˆ์ž„์›Œํฌ, tomcat, java script, jakarta EE, kotlin/js ๋ฅผ ํ†ตํ•œ html5, iOS, ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ๋“ฑ์„ ๊ฐœ๋ฐœํ• ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. 2017๋…„ ๊ตฌ๊ธ€์ด ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ์–ธ์–ด๋กœ kotlin ์ถ”๊ฐ€ํ•จ. 2018๋…„ ์นด์นด์˜ค๊ฐ€ ์นด์นด์˜คํ†ก ๋ฉ”์‹œ์ง•..
(0114๋ณด๋ฅ˜) 1. ๐Ÿงฑ JWT ์ธ์ฆ์„ ์œ„ํ•œ “๊ฐœ๋… ํ”ผ๋ผ๋ฏธ๋“œ”
ยท
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ
๐Ÿงฑ JWT ์ธ์ฆ์„ ์œ„ํ•œ “๊ฐœ๋… ํ”ผ๋ผ๋ฏธ๋“œ”์•„๋ž˜๋Š” ์ง„์งœ ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๊ผญ๋Œ€๊ธฐ๊นŒ์ง€ ์ˆœ์„œ์•ผ. (๊ฐœ๋… ์˜์กด๋„ ํ”ผ๋ผ๋ฏธ๋“œ !!) ์œ„๋กœ ๊ฐˆ์ˆ˜๋ก “๋„ค๊ฐ€ ์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ์˜์—ญ”์ด์•ผ.1๏ธโƒฃ ๋„คํŠธ์›Œํฌ์˜ ์ง„์งœ ๋ฐ”๋‹ฅ๐Ÿ”น HTTP๋ž€ ๋ฌด์—‡์ธ๊ฐ€ โœ…https://proverbs33.tistory.com/89 [260115] HTTP ๋ž€ (http ์ธ์ฆ, http ์‘๋‹ต ์ฝ”๋“œ ๋“ฑ)HTTP | MDN๊ฐ€์ด๋“œ์™€ ํŠœํ† ๋ฆฌ์–ผ์„ ํ†ตํ•ด HTTP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ณด์„ธ์š”. HTTP ๊ฐœ์š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋“ค์ž…๋‹ˆ๋‹ค. HTTP๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ์˜๋„๋œ ์šฉ๋„๋ฅผ ์•Œ์•„๋ณด์„ธ์š”. HTTP ์บ์‹œ ์บproverbs33.tistory.com ์š”์ฒญ(Request) / ์‘๋‹ต(Response)ํ—ค๋” / ๋ฐ”๋””์ƒํƒœ์ฝ”๋“œ: 200, 401, 403…๐Ÿ‘‰ ์ด๊ฑฐ ๋ชจ๋ฅด๋ฉดJ..
[260115] REST API ์™€ ๋ฌด์ƒํƒœ์„ฑ(state less)
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ
REST API ๋ž€ (Representational State Transfer API)์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ ์ธํ„ฐํŽ˜์ด์Šค REST ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์˜ ์„ค๊ณ„ ์›์น™์„ ์ค€์ˆ˜ํ•˜์—ฌ์„œ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค HTTP URI ๋ฅผ ํ†ตํ•ด ์ž์›(resource) ์„ ๋ช…์‹œํ•˜๊ณ  HTTP Method ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD operation ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ ํŠน์ง•: ๋‹จ์ˆœํ•˜๊ณ  ๋ฌด์ƒํƒœ์ด๋ฉฐ, ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒฝ๋Ÿ‰ํ™”๋ผ์žˆ์–ด์„œ ์›น์— ์ด์ƒ์ ์ž„. ํด๋ผ์ด์–ธํŠธ (์›น ๋ธŒ๋ผ์šฐ์ €) ์™€ ๊ฐ™์€ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธก ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•จ. ๊ตฌ์„ฑ ์š”์†Œ: "๋ˆ„๊ฐ€(์ž์›), ๋ฌด์—‡์„(ํ–‰์œ„), ์–ด๋–ค ํ˜•ํƒœ๋กœ ํ•  ๊ฒƒ์ธ๊ฐ€"๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…์˜ˆ์‹œ์ž์› (Resource)๋ชจ๋“  ๊ฒƒ์„ '๋ช…์‚ฌ' ํ˜•ํƒœ์˜ URI๋กœ ํ‘œํ˜„/users, /p..