๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ386

์ธ์ฆ/์ธ๊ฐ€ (Authentication & Authorization) ์›น ์„œ๋น„์Šค์—์„œ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ , ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ—ˆ์šฉ๋œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์ด๋•Œ ํ•„์š”ํ•œ ๊ฐœ๋…์ด ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ€(Authorization)์ž…๋‹ˆ๋‹ค.1. ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ€(Authorization)์˜ ์ฐจ์ด์ธ์ฆ์€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธํ•  ๋•Œ ID/๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฒ€์ฆํ•˜๊ฑฐ๋‚˜ “์ด ์‚ฌ๋žŒ์ด ์‹ค์ œ๋กœ ์ด ๊ณ„์ • ์ฃผ์ธ์ธ๊ฐ€?”๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ฐ€๋Š” ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์—‡๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๊ธ€์„ ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , ๊ด€๋ฆฌ์ž๋งŒ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ธ๊ฐ€์ž…๋‹ˆ๋‹ค.⇒ ๋กœ๊ทธ์ธ์€ ์ธ์ฆ, ๊ถŒํ•œ ์ฒดํฌ๋Š” ์ธ๊ฐ€2. Session ๊ธฐ๋ฐ˜ ์ธ์ฆ (์ „ํ†ต์ ์ธ ๋ฐฉ์‹)์„ธ์…˜ ์ธ์ฆ์€ ์„œ๋ฒ„๊ฐ€ .. 2025. 12. 5.
HTTP์™€ ์›น ํ†ต์‹  ๊ธฐ์ดˆ 1. HTTP๋ž€?HTTP(HyperText Transfer Protocol)๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ทœ์น™(ํ”„๋กœํ† ์ฝœ) ์ž…๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ฒ„ํŠผ์„ ํด๋ฆญ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ(request)์„ ์ „์†ก์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„, ์‘๋‹ต(response)์„ ์ „์†ก์ด๋•Œ “์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์–ด๋–ค ํ˜•์‹์œผ๋กœ ์ฃผ๊ณ ๋ฐ›์„์ง€”๋ฅผ ์ •ํ•ด๋†“์€ ์•ฝ์†์ด ๋ฐ”๋กœ HTTP ์ž…๋‹ˆ๋‹ค.2. HTTP ๋ฉ”์„œ๋“œ์™€ IdempotentHTTP ์š”์ฒญ์—๋Š” “์ด ์š”์ฒญ์œผ๋กœ ๋ฌด์—‡์„ ํ•˜๊ณ  ์‹ถ์€์ง€”๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋™์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๊ฒƒ์ด ๋ฐ”๋กœ HTTP ๋ฉ”์„œ๋“œ(Method) ์ž…๋‹ˆ๋‹ค.2-1. ์ž์ฃผ ์“ฐ๋Š” HTTP ๋ฉ”์„œ๋“œGET์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉex) ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ, ํŠน์ • ๊ธ€ ์ƒ์„ธ ์กฐํšŒ ๋“ฑPOST์„œ๋ฒ„์— ์ƒˆ๋กœ.. 2025. 11. 26.
API API (Application Programming Interface)1. ๊ฐœ๋…API๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์˜๋ฏธํ•จ.์ฆ‰, ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋Šฅ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ•ด์ง„ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต๋ฐ›๊ธฐ ์œ„ํ•œ ๊ทœ์•ฝ(Protocol) ์ž„.์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„ ํ†ต์‹ ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ.2. ํŠน์ง•ํ”„๋กœ๊ทธ๋žจ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐ ๊ธฐ๋Šฅ ํ˜ธ์ถœ์„ ํ‘œ์ค€ํ™”ํ•จ๋‚ด๋ถ€ ๋กœ์ง์„ ์ˆจ๊ธฐ๊ณ , ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ์™ธ๋ถ€์— ๊ณต๊ฐœํ•จ (์บก์Аํ™” ๊ฐœ๋…๊ณผ ์œ ์‚ฌ)ํ”Œ๋žซํผ๊ณผ ์–ธ์–ด์— ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•จJSON, XML ๋“ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response) ๊ตฌ์กฐ๋กœ ๋™์ž‘3. ๊ตฌ์„ฑ ์š”์†Œ๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…EndpointAPI๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๋Š” URL ์ฃผ์†ŒMethod๋™์ž‘์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹ (G.. 2025. 11. 7.
XML XML (eXtensible Markup Language)1. ๊ฐœ๋…XML์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋งˆํฌ์—… ์–ธ์–ด๋กœ, ๋ฐ์ดํ„ฐ์˜ ์˜๋ฏธ(Meaning) ์™€ ๊ตฌ์กฐ(Structure) ๋ฅผ ํ•จ๊ป˜ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.ํƒœ๊ทธ๋ฅผ ์ง์ ‘ ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด ํ™•์žฅ์„ฑ(Extensible) ์ด ๋†’์œผ๋ฉฐ, ์‹œ์Šคํ…œ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜, ์„ค์ • ํŒŒ์ผ, ๋ฌธ์„œ ๊ตฌ์กฐ ์ •์˜ ๋“ฑ์— ๋„๋ฆฌ ํ™œ์šฉ๋จ.2. ํŠน์ง•ํƒœ๊ทธ()๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์‹ธ๋Š” ๊ตฌ์กฐ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ์˜ ์˜๋ฏธ๋ฅผ ํ•จ๊ป˜ ํ‘œํ˜„ ๊ฐ€๋Šฅ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์–ด๋ ต์ง€๋งŒ ๊ธฐ๊ณ„๊ฐ€ ํ•ด์„ํ•˜๊ธฐ ์šฉ์ดํ•จ๊ณ„์ธต์ (hierarchical) ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์„ ์œ„ํ•œ DTD ๋˜๋Š” XML Schema ์ง€์›์ฃผ์„() ์‚ฌ์šฉ ๊ฐ€๋ŠฅJSON๋ณด๋‹ค ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํฌ๊ณ  ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•จํ†ต์‹ ๋ณด๋‹ค๋Š” ๋ฌธ์„œ ์ €์žฅ, ์„ค์ •, ๋ณต์žกํ•œ ๊ณ„์ธต ํ‘œํ˜„์— ์ฃผ๋กœ ์‚ฌ์šฉ๋จ3... 2025. 10. 29.
JSON JSON (JavaScript Object Notation)1. ๊ฐœ๋…JSON์€ JavaScript ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ˜•์‹์œผ๋กœ,์‹œ์Šคํ…œ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์‰ฝ๊ณ  ๊ธฐ๊ณ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์šฉ์ดํ•˜์—ฌ REST API ํ†ต์‹ ์˜ ํ‘œ์ค€ ํฌ๋งท์œผ๋กœ ํ™œ์šฉ๋จ.JavaScript ๋ฌธ๋ฒ•์—์„œ ์œ ๋ž˜ํ–ˆ์ง€๋งŒ ์–ธ์–ด์— ๋…๋ฆฝ์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์ง€์›๋จ.2. ํŠน์ง•ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€๋…์„ฑ์ด ๋†’์Œ{} ๊ฐ์ฒด, [] ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด ๊ณ„์ธต์  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ‘œํ˜„ ๊ฐ€๋Šฅ์–ธ์–ด ๋…๋ฆฝ์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด์—์„œ ์ง€์›๋จ์ง๋ ฌํ™”(๊ฐ์ฒด → JSON)์™€ ์—ญ์ง๋ ฌํ™”(JSON → ๊ฐ์ฒด)๊ฐ€ ๊ฐ„๋‹จํ•จXML๋ณด๋‹ค ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ณ  ๋„คํŠธ์›Œํฌ ์ „์†ก ํšจ์œจ์ด ๋†’์Œ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ, ๋ฐฐ์—ด, ๊ฐ์ฒด, null ํƒ€์ž…๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ3.. 2025. 10. 29.
[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 57์ผ์ฐจ ์ด๋ฒˆ ์ˆ˜์—…์—์„œ๋Š” Spring Boot ํ™˜๊ฒฝ์—์„œ ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, JPA๋ฅผ ์ด์šฉํ•œ ์ƒํ’ˆ ๋“ฑ๋ก/์กฐํšŒ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค.์ง€๋‚œ ์‹œ๊ฐ„์— ํ”„๋กœ์ ํŠธ์˜ ๋ผˆ๋Œ€๋ฅผ ์„ธํŒ…ํ–ˆ๋‹ค๋ฉด, ์ด๋ฒˆ์—๋Š” ๊ทธ ๋ผˆ๋Œ€ ์œ„์— ์‹ค์ œ ๊ธฐ๋Šฅ์„ ์–น์–ด๋ณด๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ๐Ÿ”ท JPA๋ฅผ ํ™œ์šฉํ•œ ์—”ํ‹ฐํ‹ฐ ์„ค๊ณ„์™€ ์ €์žฅ ๋กœ์ง ๊ตฌํ˜„์˜ค๋Š˜์€ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์ €์žฅํ•  Item ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ , ItemSellStatus์™€ ๊ฐ™์€ enum ํƒ€์ž…์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๊ตฌ์ฒดํ™”ํ–ˆ๋‹ค.Lombok์„ ์‚ฌ์šฉํ•ด ๋ถˆํ•„์š”ํ•œ getter/setter, toString ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ์ค„์˜€๊ณ , JPA์˜ @Entity, @Id, @GeneratedValue, @Enumerated ๋“ฑ์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด DB ํ…Œ์ด๋ธ”๊ณผ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค... 2025. 6. 29.
๋ฐ˜์‘ํ˜•