[Spring ๊ธฐ๋ณธ] 9. ๋นˆ ์Šค์ฝ”ํ”„
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!๋“œ๋””์–ด ๋งˆ์ง€๋ง‰ ์„น์…˜์ž…๋‹ˆ๋‹ค!๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š” ๊ณ ๊ณ !!1. ๋นˆ ์Šค์ฝ”ํ”„๋ž€..?์ง€๊ธˆ๊นŒ์ง€ ์Šคํ”„๋ง ๋นˆ์ด ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘๊ณผ ํ•จ๊ป˜ ์ƒ์„ฑ๋˜์–ด์„œ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด๊ฒƒ์€ ์Šคํ”„๋ง ๋นˆ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ํ†ค ์Šค์ฝ”ํ”„๋กœ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.์Šค์ฝ”ํ”„๋Š” ๋ฒˆ์—ญ ๊ทธ๋Œ€๋กœ ๋นˆ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์Šค์ฝ”ํ”„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.์‹ฑ๊ธ€ํ†ค: ๊ธฐ๋ณธ ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ๊นŒ์ง€ ์œ ์ง€๋˜๋Š” ๊ฐ€์žฅ ๋„“์€ ๋ฒ”์œ„์˜ ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.ํ”„๋กœํ† ํƒ€์ž…: ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ํ”„๋กœํ† ํƒ€์ž… ๋นˆ์˜ ์ƒ์„ฑ๊ณผ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…๊นŒ์ง€๋งŒ ๊ด€์—ฌํ•˜๊ณ  ๋”๋Š” ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ๋งค์šฐ ์งง์€ ๋ฒ”์œ„์˜ ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.์›น ๊ด€๋ จ ์Šค์ฝ”ํ”„request: ์›น ์š”์ฒญ์ด ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐˆ ๋•Œ๊นŒ์ง€ ์œ ์ง€๋˜๋Š” ์Šค์ฝ”ํ”„์ž…๋‹ˆ๋‹ค.session..
[Spring ๊ธฐ๋ณธ] 8. ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”! ์ง„์งœ ์˜ค๋žœ๋งŒ์— ์™”์Šต๋‹ˆ๋‹ค!๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š” ๊ณ ๊ณ !1. ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ ์‹œ์ž‘๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜ ํ’€์ด๋‚˜ ๋„คํŠธ์›Œํฌ ์†Œ์บฃ์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ์ ์— ํ•„์š”ํ•œ ์—ฐ๊ฒฐ์„ ๋ฏธ๋ฆฌ ํ•ด๋‘๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ ์‹œ์ ์— ์—ฐ๊ฒฐ์„ ๋ชจ๋‘ ์ข…๋ฃŒํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”์™€ ์ข…๋ฃŒ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ์Šคํ”„๋ง์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์ดˆ๊ธฐํ™” ์ž‘์—…๊ณผ ์ข…๋ฃŒ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•˜๋Š”์ง€ ์˜ˆ์ œ๋กœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์— ๋ฏธ๋ฆฌ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์‹ค์ œ๋กœ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ๋‹จ์ˆœํžˆ ๋ฌธ์ž๋งŒ ์ถœ๋ ฅํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.์ด NetworkClient๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ์ ์— connect()๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์—ฐ๊ฒฐ์„ ๋งบ์–ด๋‘ฌ์•ผ ํ–ˆ๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด disConnect()๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์—ฐ๊ฒฐ์„ ..
[Spring ๊ธฐ๋ณธ] 7. ์˜์กด ๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž…
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ ์„น์…˜์€ ์–ด์—„์ฒญ ๊ธธ์–ด์šฅ..ใ…œใ…œ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์˜ˆ์ •..ใ…Ž๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด ๋ณผ๊ฒŒ์š”! ๊ณ ๊ณ !!1. ๋‹ค์–‘ํ•œ ์˜์กด ๊ด€๊ณ„ ์ฃผ์ž… ๋ฐฉ๋ฒ•์˜์กด ๊ด€๊ณ„ ์ฃผ์ž…์€ ํฌ๊ฒŒ 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ƒ์„ฑ์ž ์ฃผ์ž…์ˆ˜์ •์ž ์ฃผ์ž… (setter ์ฃผ์ž…)ํ•„๋“œ ์ฃผ์ž…์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ ์ฃผ์ž…1-1. ์ƒ์„ฑ์ž ์ฃผ์ž…โญ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ ์˜์กด ๊ด€๊ณ„๋ฅผ ์ฃผ์ž…๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.์ง€๊ธˆ๊นŒ์ง€ ์ œ๊ฐ€ ์ง„ํ–‰ํ–ˆ๋˜ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ์ƒ์„ฑ์ž ์ฃผ์ž…์ž…๋‹ˆ๋‹ค. 1. ์ƒ์„ฑ์ž ํ˜ธ์ถœ ์‹œ์ ์— ๋”ฑ 1๋ฒˆ๋งŒ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. (์ฃผ๋กœ ์‚ฌ์šฉ)2. ๋ถˆ๋ณ€, ํ•„์ˆ˜ ์˜์กด ๊ด€๊ณ„์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.@Componentpublic class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; pr..
[Spring ๊ธฐ๋ณธ] 6. ์ปดํฌ๋„ŒํŠธ ์Šค์บ”
ยท
STUDY๐Ÿ„
์•ˆ๋…•ํ•˜์„ธ์š”!์ด๋ฒˆ์—๋Š” ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์™”์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š”!!๊ณ ๊ณ !!1. ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์˜์กด๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž… ์‹œ์ž‘ํ•˜๊ธฐ์ง€๊ธˆ๊นŒ์ง€ ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•  ๋•Œ๋Š” ์ž๋ฐ” ์ฝ”๋“œ์˜ @Bean์ด๋‚˜ XML์˜ ๋“ฑ์„ ํ†ตํ•ด์„œ ์„ค์ • ์ •๋ณด์— ์ง์ ‘ ๋“ฑ๋กํ•  ์Šคํ”„๋ง ๋นˆ์„ ๋‚˜์—ดํ–ˆ์Šต๋‹ˆ๋‹ค.์˜ˆ์ œ์—์„œ๋Š” 4๊ฐœ์ •๋„๋ฐ–์— ์•ˆ ๋˜์–ด์„œ ๊ดœ์ฐฎ์•˜์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ๋“ฑ๋กํ•ด์•ผ ํ•  ์Šคํ”„๋ง ๋นˆ์ด ์ˆ˜์‹ญ ์ˆ˜๋ฐฑ ๊ฐœ๊ฐ€ ๋˜๋ฉด ์ผ์ผ์ด ๋“ฑ๋กํ•˜๊ธฐ๋„ ๊ท€์ฐฎ๊ณ , ์„ค์ • ์ •๋ณด๋„ ์ปค์ง€๊ณ  ๋ˆ„๋ฝํ•˜๋Š” ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ, ์Šคํ”„๋ง์€ ์„ค์ • ์ •๋ณด๊ฐ€ ์—†์–ด๋„ ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.๋˜, ์˜์กด๊ด€๊ณ„๋„ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•˜๋Š” @Autowired ๋ผ๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋จผ์ €, ๊ธฐ์กด AppConfig.java๋Š” ๊ณผ๊ฑฐ ์ฝ”๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋‚จ๊ฒจ..
[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 ์šฉ๋Ÿ‰์˜ ์ด๋ฏธ์ง€ ์‘๋‹ต์„ ๋‹ค์‹œ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ์บ์‹œ๊ฐ€ ์—†์„ ..