[Spring ๊ธฐ๋ณธ] 5. ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ์—๋Š” ์‹ฑ๊ธ€ํ†ค์— ๊ด€๋ จํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์™”์Šต๋‹ˆ๋‹ค!๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๊ณ ๊ณ !!1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‹ฑ๊ธ€ํ†ค์Šคํ”„๋ง์€ ํƒœ์ƒ์ด ๊ธฐ์—…์šฉ ์˜จ๋ผ์ธ ์„œ๋น„์Šค ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.๋Œ€๋ถ€๋ถ„์˜ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.๋ชฐ๋ก  ์›น์ด ์•„๋‹Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๋„ ์–ผ๋งˆ๋“ ์ง€ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ์—ฌ๋Ÿฌ ๊ณ ๊ฐ์ด ๋™์‹œ์— ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.1. ํด๋ผ์ด์–ธํŠธ A, B, C๊ฐ€ memberService๋ฅผ ์Šคํ”„๋งํ•œํ…Œ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.2. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ DI ์ปจํ…Œ์ด๋„ˆ(AppConfig)๋Š” new๋กœ memberService๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.=>A๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , B๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , C๊ฐ€ ์š”์ฒญํ•˜๋ฉด DI ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ ..3. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด, ๊ณ ๊ฐ์ด..
[Spring ๊ธฐ๋ณธ] 4. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ์Šคํ”„๋ง ๋นˆ๐Ÿซ›
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์˜ค๋Š˜๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šคํ”„๋ง์˜ ์„ธ๊ณ„๋กœ ๋“ค์–ด๊ฐ€๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.๊ณ ๊ณ ์”ฝ!!1. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๋จผ์ € ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.//์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);์ €๋ฒˆ ์„น์…˜ ๋งˆ์ง€๋ง‰ ์ฏ”์Œ์— ๋‚˜์™”๋˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.new๋กœ ํ•ด์„œ AnnotationConfigApplicationContext ์ด๋ฆ„๋„ ๊ธด ์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ AppConfig๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ(๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ๋„˜๊ฒผ์Šต๋‹ˆ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ApplicationContext๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด ApplicationContext๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.๋‹ค..
[Spring ๊ธฐ๋ณธ] 3. ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ์ดํ•ด2- ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ ์ ์šฉ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ €๋ฒˆ ์„น์…˜์—์„œ ํ•˜๋˜ ๊ฒƒ์„ ์ด์–ด ์ƒˆ๋กœ์šด ํ• ์ธ ์ •์ฑ…(์ •๋ฅ  ํ• ์ธ ์ •์ฑ…)์„ ๊ฐœ๋ฐœํ•ด๋ณด๊ณ  ์Šคํ”„๋ง์œผ๋กœ ์ „ํ™˜์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!๊ณ ๊ณ !!1. ์ƒˆ๋กœ์šด ํ• ์ธ ์ •์ฑ… ๊ฐœ๋ฐœ - ์ •๋ฅ  ํ• ์ธ ์ •์ฑ…(RateDiscountPolicy)์ €๋ฒˆ ์„น์…˜์—์„œ ํ–ˆ๋˜ ๊ฒƒ๋“ค์— ์ด์–ด ์ƒˆ๋กœ์šด ํ• ์ธ ์ •์ฑ…์„ ํ™•์žฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•…๋• ๊ธฐํš์ž: ์„œ๋น„์Šค ์˜คํ”ˆ ์ง์ „์— ํ• ์ธ ์ •์ฑ…์„ ์ง€๊ธˆ์ฒ˜๋Ÿผ ๊ณ ์ • ๊ธˆ์•ก ํ• ์ธ์ด ์•„๋‹ˆ๋ผ ์ข€ ๋” ํ•ฉ๋ฆฌ์ ์ธ ์ฃผ๋ฌธ ๊ธˆ์•ก ๋‹น ํ• ์ธํ•˜๋Š” ์ •๋ฅ (%) ํ• ์ธ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๊ธฐ์กด ์ •์ฑ…์€ VIP๊ฐ€ 10,000์›์„ ์ฃผ๋ฌธํ•˜๋“  20,000์›์„ ์ฃผ๋ฌธํ•˜๋“  ํ•ญ์ƒ 1,000์›์„ ํ• ์ธํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— ์ƒˆ๋กœ ๋‚˜์˜จ ์ •์ฑ…์€ 10%๋กœ ์ง€์ •ํ•ด๋‘๋ฉด ๊ณ ๊ฐ์ด 10,000์› ์ฃผ๋ฌธ ์‹œ 1,000์›์„ ํ• ์ธํ•ด์ฃผ๊ณ , 20,000์› ์ฃผ๋ฌธ ์‹œ 2,000์›์„ ํ• ์ธํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค...
[Spring ๊ธฐ๋ณธ] 2. ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ์ดํ•ด1 - ์˜ˆ์ œ ๋งŒ๋“ค๊ธฐ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ ์„น์…˜๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฝ”๋“œ ์œ„์ฃผ๋กœ ์ž‘์„ฑํ•ด๋ณผ๊ฑฐ ๊ฐ™์•„์š”!๊ทธ๋Ÿผ ๊ณ ๊ณ !!1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์šฐ์„  ๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šคํ”„๋ง์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ž๋ฐ”๋กœ๋งŒ ๊ตฌํ˜„์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ• ๊นŒ์š”?์ฐจ๊ทผ์ฐจ๊ทผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.Java17๊ณผ IDE: IntelliJ๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์Šคํ”„๋ง ๋ถ€ํŠธ ์Šคํƒ€ํ„ฐ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ด์„œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://start.spring.io์œ„์˜ ๋งํฌ๊ฐ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ์Šคํƒ€ํ„ฐ ์‚ฌ์ดํŠธ ์ž…๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๋ณด๋ฉด..์ด๋Ÿฐ์‹์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.์—ฌ๊ธฐ์—์„œ Project๋Š” Gradle - Groovy, Language๋Š” Java, Spring Boot๋Š” 3.4.4๋กœ ํ•ด๋ณผ๊ฒŒ์š”.SNAPSHOT๊ณผ M2๋Š” ์•„์ง ๋ถˆ์•ˆ์ •ํ•˜๋‹ค๊ณ  ..
[Spring ๊ธฐ๋ณธ] 1. ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์™€ ์Šคํ”„๋ง
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!HTTP๋ฅผ ๋‹ค ๋๋‚ด๊ณ  Spring์œผ๋กœ ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค!๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šคํ”„๋ง์„ ๋ฐฐ์šฐ๋ ค๋ฉด ์Šคํ”„๋ง์˜ ๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์•Œ์•„์•ผ๊ฒ ์ฃ ?๊ณ ๊ณ !1. ์Šคํ”„๋ง์ด๋ž€? (์Šคํ”„๋ง ์ƒํƒœ๊ณ„)1-1. ์Šคํ”„๋ง์˜ ๊ตฌ์„ฑ์Šคํ”„๋ง์€ ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ์— ์†ํ•˜๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์Šคํ”„๋ง ๋ถ€ํŠธ, ๊ทธ๋ฆฌ๊ณ  ์„ ํƒ์ ์ธ ๊ธฐ์ˆ ์— ์†ํ•˜๋Š” ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ, ์Šคํ”„๋ง ์„ธ์…˜, ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ, ์Šคํ”„๋ง Rest Docs, ์Šคํ”„๋ง ๋ฐฐ์น˜, ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ธ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ๋’ค์—์„œ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ• ๊ฑฐ๊ตฌ์š”.๋จผ์ € ์„ ํƒ์ ์ธ ๊ธฐ์ˆ ๋“ค๋ถ€ํ„ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.์Šคํ”„๋ง ๋ฐ์ดํ„ฐ๋ž€, CRUD ๋“ฑ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ œ์ผ ๋งŽ์ด ์“ฐ๋Š” ๊ฒƒ์€ ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA ์ž…๋‹ˆ๋‹ค.์Šคํ”„๋ง ์„ธ์…˜์ด๋ž€, ์„ธ์…˜ ๊ธฐ๋Šฅ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ..
[HTTP] 8. HTTP ํ—ค๋”2 - ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!๋ฒŒ์จ HTTP ๋งˆ์ง€๋ง‰ ์„น์…˜์ด์—์šฅ!!์ €๋ฒˆ ์„น์…˜์— ์ด์–ด HTTP ํ—ค๋”๋ฅผ ํ•  ๊ฑด๋ฐ ์š”๋ฒˆ์—” ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์— ๊ด€ํ•ด์„œ ์ž…๋‹ˆ๋‹ค.๊ณ ๊ณ !!1. ์บ์‹œ ๊ธฐ๋ณธ ๋™์ž‘์บ์‹œ๋Š” ๊ณผ์—ฐ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ์š”?1-1. ์บ์‹œ๊ฐ€ ์—†์„ ๋•Œ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์šฐ์„  ์บ์‹œ๊ฐ€ ์—†์„ ๋•Œ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— star.jpg๋ฅผ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„์—์„œ ์šฐ์„  star.jpg๊ฐ€ ์žˆ์œผ๋ฉด ์›จ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๋‚ด์ค๋‹ˆ๋‹ค.์ฆ‰, ์„œ๋ฒ„๊ฐ€ ํ—ค๋”์™€ ๋ฐ”๋”” ํ•ฉ์ณ์„œ 1.1M ์šฉ๋Ÿ‰์˜ star.jpg๋ฅผ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์š”์ฒญ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์บ์‹œ๊ฐ€ ์—†์„ ๋•Œ ๋˜‘๊ฐ™์€ ์š”์ฒญ์„ ํ•œ ๋ฒˆ ๋” ํ–ˆ์Šต๋‹ˆ๋‹ค.์„œ๋ฒ„์—์„œ๋Š” ๋˜ ๋˜‘๊ฐ™์ด ์š”์ฒญ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ์„œ๋ฒ„๋Š” ๋˜ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ—ค๋”์™€ ๋ฐ”๋”” ๋ถ€๋ถ„ ํ•ฉ์ณ์„œ 1.1M ์šฉ๋Ÿ‰์˜ ์ด๋ฏธ์ง€ ์‘๋‹ต์„ ๋‹ค์‹œ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ์บ์‹œ๊ฐ€ ์—†์„ ..
[HTTP] 7. HTTP ํ—ค๋”1 - ์ผ๋ฐ˜ ํ—ค๋”๐Ÿช
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!๋ฒŒ์จ ์„น์…˜7์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!!๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๊ณ ๊ณ !!1. HTTP ํ—ค๋” ๊ฐœ์š”1-1. HTTP ํ—ค๋”HTTP ํ—ค๋”๋Š” header-field = field-name ":" OWS field-value OWS (OWS: ๋„์–ด์“ฐ๊ธฐ ํ—ˆ์šฉ) ์ด๋Ÿฐ ํ˜•์‹์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๋˜ํ•œ, field-name์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ฌธ์ด ์—†์Šต๋‹ˆ๋‹ค.HTTP ํ—ค๋”์˜ ํŠน์ง•์— ๊ด€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.HTTP ํ—ค๋”๋Š” ์‹œ์ž‘๋ผ์ธ ์ œ์™ธํ•˜๊ณ  HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ๋‚ด์šฉ, ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ํฌ๊ธฐ, ์••์ถ•, ์ธ์ฆ, ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ์ •๋ณด, ์บ์‹œ ๊ด€๋ฆฌ ์ •๋ณด ๋“ฑ๋“ฑ ๋ง์ด์ฃ .๋˜ํ•œ, HTTP ํ—ค๋”๋Š” ํ‘œ์ค€ ํ—ค๋”๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์Šต๋‹ˆ๋‹ค.ํ•„์š” ์‹œ ์ž„์˜์˜ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๊ตฌ์š”. ๊ทธ๋Ÿผ ๊ณผ๊ฑฐ์˜ HTTP ..
[HTTP] 6. HTTP ์ƒํƒœ ์ฝ”๋“œ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์˜ค๋Š˜๋„ ๊ณต๋ถ€ํ•˜๊ณ  ์™”์–ด์šฉ๋ฒŒ์จ ์„น์…˜6 ๊นŒ์ง€ ์™”๋„ค์š”!!!!์•„์ž์•„์ž ํ™”์ดํŒ…!!! ๊ทธ๋Ÿผ ๊ณ ๊ณ !!1. ์ƒํƒœ ์ฝ”๋“œํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์‘๋‹ต์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ 1xx: ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ ์ค‘ (๊ฑฐ์˜ ์‚ฌ์šฉX)2xx: ์š”์ฒญ ์ •์ƒ ์ฒ˜๋ฆฌ3xx: ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ํ–‰๋™์ด ํ•„์š” (๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)4xx: ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜, ์ž˜๋ชป๋œ ๋ฌธ๋ฒ• ๋“ฑ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ5xx: ์„œ๋ฒ„ ์˜ค๋ฅ˜, ์„œ๋ฒ„๊ฐ€ ์ •์ƒ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•จ2. ๋งŒ์•ฝ์— ๋ชจ๋ฅด๋Š” ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด?๋ชจ๋ฅด๋Š” ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋„ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, 299๋ผ๋Š” ์ƒํƒœ ์ฝ”๋“œ๋กœ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.๊ทผ๋ฐ ์šฐ๋ฆฐ ์ด๊ฑธ ๋ชจ๋ฅด์ฃ ? ๊ทผ๋ฐ 200๋ฒˆ๋Œ€๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณตํ–ˆ๋‹ค๋ผ๋Š” ๊ฒƒ์€ ์••๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ, ์šฐ๋ฆฐ ๊ทธ๋ƒฅ "์•„~ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ์„ฑ..
[HTTP] 5. HTTP ๋ฉ”์„œ๋“œ ํ™œ์šฉ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ €๋ฒˆ์—๋Š” HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ๋ญ๋ƒ? ์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ์—ˆ๋Š”๋ฐ ์˜ค๋Š˜์€ HTTP ๋ฉ”์„œ๋“œ์˜ ํ™œ์šฉ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๊ธ€์”จ์ฒด๊ฐ€ ๋‹ฌ๋ผ์กŒ์ฃ ? ์ด๊ฒŒ ๋” ์ด์œ๊ฑฐ ๊ฐ™์•„์„œ ๊ธ€์”จ์ฒด ๋ฐ”๊ฟจ์–ด์š”ใ…Žใ…Ž๊ณ ๊ณ !!1. ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก1-1. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ, ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ „์— ?q~~ ์š”๋Ÿฐ๊ฑฐ ํ–ˆ๋˜๊ฑฐ ๊ธฐ์–ต๋‚˜์‹œ๋‚˜์š”? ์ด๋Ÿฐ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง ๊ฐ™์€๊ฑธ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.GET ๋ฉ”์„œ๋“œ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ์ฃผ๋กœ ์ •๋ ฌ ํ•„ํ„ฐ(๊ฒ€์ƒ‰์–ด or list ์ •๋ ฌ)์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ, ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์žˆ์Šต๋‹ˆ๋‹ค.POST, PUT, PATCH ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ตฌ์š”.ํšŒ์› ๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ, ๋ฆฌ์†Œ์Šค ๋“ฑ..
[HTTP] 4. HTTP ๋ฉ”์„œ๋“œ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์˜ค๋Š˜์€ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š” ๊ณ ๊ณ !!1. HTTP API๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž. (๊ณผ์ •)1-1. ์š”๊ตฌ์‚ฌํ•ญ - ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ API๋ฅผ ๋งŒ๋“ค์–ด๋ผ!ํšŒ์› ๋ชฉ๋ก ์กฐํšŒํšŒ์› ์กฐํšŒํšŒ์› ๋“ฑ๋กํšŒ์› ์ˆ˜์ •ํšŒ์› ์‚ญ์ œ 1-2. API URI ์„ค๊ณ„URI = Uniform Resource IdentifierํšŒ์› ๋ชฉ๋ก ์กฐํšŒ: /read-member-listํšŒ์› ์กฐํšŒ: /read-member-by-idํšŒ์› ๋“ฑ๋ก: /create-memberํšŒ์› ์ˆ˜์ •: /update-memberํšŒ์› ์‚ญ์ œ: /delete-memberURI ์„ค๊ณ„ ํ›„์— ๊ฐœ๋ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ํ•œ ๊ฐ€์ง€ ์˜๋ฌธ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด๊ฒƒ์€ ๊ณผ์—ฐ ์ข‹์€ URI ์„ค๊ณ„์ผ๊นŒ์š”?์ •๋‹ต์€ NO! ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€! ๋ฆฌ์†Œ์Šค ์‹๋ณ„์„ ๊ธฐ์ค€์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ..