๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€384

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.
[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 56์ผ์ฐจ ์ด๋ฒˆ ์ˆ˜์—…์—์„œ๋Š” ๋“œ๋””์–ด Spring Boot๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.์ง€๊ธˆ๊นŒ์ง€๋Š” ์ˆœ์ˆ˜ Spring Framework๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์ˆ˜๋™ ์„ค์ •ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด์™”๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” Spring Boot๋ฅผ ํ†ตํ•ด ํ›จ์”ฌ ๊ฐ„ํŽธํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ๐Ÿ”ท Spring Boot์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ํŠน์ง•Spring Boot๋Š” ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ๋น ๋ฅด๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค.๊ธฐ์กด Spring Framework์—์„œ๋Š” web.xml, servlet-context.xml ๋“ฑ์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด์•ผ ํ–ˆ์ง€๋งŒ,Spring Boot๋Š” @SpringBootApplication ํ•˜๋‚˜๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์„ค์ •์„ ์ž๋™ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. @SpringBootApplication.. 2025. 6. 29.
[DevCourse] ์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๋ฐฑ์—”๋“œ ๋ฐ๋ธŒ์ฝ”์Šค 55์ผ์ฐจ ์˜ค๋Š˜์€ JPA์— ๋Œ€ํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ•™์Šตํ–ˆ๋‹ค.๊ทธ๋™์•ˆ MyBatis๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ค„์™”๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ORM ๊ธฐ์ˆ ์ธ JPA๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์•˜๋‹ค.๐Ÿ“Œ ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ ์ •๋ฆฌ๐Ÿ”ท JPA๋ž€ ๋ฌด์—‡์ด๊ณ  ์™œ ์“ฐ๋Š”๊ฐ€JPA๋Š” Java Persistence API์˜ ์•ฝ์ž๋กœ, ์ž๋ฐ” ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์„ ์ž๋™์œผ๋กœ ๋งคํ•‘ํ•ด ์ฃผ๋Š” ORM ๊ธฐ์ˆ ์ด๋‹ค. ๊ทธ๋™์•ˆ์€ SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ๋งคํ•‘ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, JPA๋Š” ์ด๋ฅผ ๊ฐ์ฒด ์ค‘์‹ฌ์œผ๋กœ ์ถ”์ƒํ™”ํ•ด ์ค˜์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.JPA๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์งˆ์ ์ธ ๋™์ž‘์€ Hibernate ๊ฐ™์€ ๊ตฌํ˜„์ฒด๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ , Spring์—์„œ๋Š” ์ด JPA๋ฅผ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ• .. 2025. 6. 29.
๋ฐ˜์‘ํ˜•