๐ŸŒ Backend/๐Ÿƒ Spring

๋‹จ๊ณ„๋ณ„๋กœ ์„ฑ์žฅํ•˜์ž!
ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Local ํ™˜๊ฒฝ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋Š” JNDI๋ฅผ ์ด์šฉํ•˜์—ฌ Datasource๋ฅผ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. WAS์— DB Resource๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ์ด์œ  ์ƒํ™ฉ) ์šฐ์„  ์—ฌ๋Ÿฌ๊ฐœ์˜ Datasource์— ์—ฐ๊ฒฐํ•ด์•ผ ํ–ˆ๊ณ , Jeus๋ผ๋Š” WAS์— DB Resource ์ •๋ณด๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•ด ๋†“์€ ์ƒํƒœ์˜€๋‹ค. ์—ฌ๊ธฐ์„œ ์™œ WAS์— Data Resource๋ฅผ ์„ค์ •ํ•ด ๋†“์•˜๋Š”์ง€ ์˜๋ฌธ์ด ๋“ค ์ˆ˜ ์žˆ๋‹ค. (๋‚˜๋„ ๊ทธ๋žฌ๋‹ค..) ๋ณดํ†ต ์ง€๊ธˆ๊นŒ์ง€ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ์ˆœ์ˆ˜ JDBC๋‚˜ Spring์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋ณธ์ ์ธ DBCP๋ฅผ ์‚ฌ์šฉํ•ด์™”๋‹ค. ํ•˜์ง€๋งŒ, ์‹ค์ œ ์šด์˜ํ•  ๋•Œ๋Š” JDBC ์„ค์ •์„ WAS์—์„œ ํ•˜๋Š”๊ฒŒ ์œ ๋ฆฌํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ธ๋ ฅ์€ ๋”ฐ๋กœ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ WAS์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ณ ,..
์ตœ๊ทผ ํ”„๋กœ์ ํŠธ์—์„œ SessionFilter๋ฅผ GenericFilterBean๋‚˜ Filter๊ฐ€ ์•„๋‹Œ OncePerRequestFilter๋ฅผ extendsํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์™œ OncePerRequestFilter๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์ด ๊ธ€์—์„œ ๋‹ค๋ค„๋ณด๊ณ ์ž ํ•œ๋‹ค. ์šฐ์„  ์œ„ ๊ทธ๋ฆผ์„ ํ†ตํ•ด Filter์˜ ๋™์ž‘ ์ˆœ์„œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค. Filter๋Š” DispatcherServlet ์‹คํ–‰ ์ „ ํ›„์— ํ˜ธ์ถœ๋˜๋Š”๋ฐ, Filter๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด Filter๊ฐ€ ์ค‘๋ณต์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. Filter๊ฐ€ ์ค‘๋ณต ํ˜ธ์ถœ๋˜๋Š” Case Filter๋Š” Servlet๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋ฉฐ, Servlet์€ ์š”์ฒญ๋งˆ๋‹ค Servlet์„ ์ƒ์„ฑํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ ๋’ค ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์ƒ์„ฑํ•ด ๋‘” ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์žฌํ™œ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์œ„ ..
๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐฐ๊ฒฝ ํ”„๋กœ์ ํŠธ์—์„œ U2L(Unix To Linux) ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์ตœ์‹  Linux์—์„œ ๊ถŒ์žฅํ•˜๊ณ  ๋˜ํ•œ ๋ณด์•ˆ ์ทจ์•ฝ์  ๊ฒ€์‚ฌ ํ†ต๊ณผ๋ฅผ ์œ„ํ•ด JDK ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ ค์•ผ ํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ํ•ด๋‹น ๊ณผ์ •์—์„œ, ํ•˜๋Š”๊น€์— ๊ด€๋ จ๋œ ์„œ๋ธŒ ์‹œ์Šคํ…œ์˜ Spring Boot ๋ฒ„์ „๋„ ๊ฐ™์ด ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์—ˆ๊ณ , Migration ๊ณ„ํš์„ ์„ธ์šฐ๋ฉด์„œ ๊ณต๋ถ€ํ–ˆ๋˜ ๊ฒƒ๋“ค์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฒ„์ „์€ 2.7.18๋ฒ„์ „์ด์—ˆ๊ณ , ๋‹จ๊ณ„๋ณ„๋กœ ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋ฉด์„œ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์„œ๋ธŒ ์‹œ์Šคํ…œ์ด๊ธฐ์— ์ฝ”๋“œ์–‘๋„ ๋งŽ์ง€ ์•Š๊ณ  ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ๋งŽ์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜์—ฌ ํ•œ ๋ฒˆ์— ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹ค. (์ด๋ ‡๊ฒŒ ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ํฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์—ˆ๋˜ ๋ฒ„์ „๋“ค์„ ์ฐจ๋ก€๋Œ€๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.) ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ˆœ์„œ 1. ๋งˆ์ด๊ทธ..
์ธ์ฆ์˜ ํ•„์š”์„ฑ HTTP ํ†ต์‹ ์€ ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ์ข…๋ฃŒ๋˜๋ฉด ์—ฐ๊ฒฐ์„ ๋Š๋Š” Connectionless ํŠน์„ฑ๊ณผ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด ์–ด๋– ํ•œ ์ƒํƒœ๋„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” Statelessํ•œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋‹ค. ๋”ฐ๋ผ์„œ, ๋กœ๊ทธ์ธ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฟ ํ‚ค, ์„ธ์…˜, ํ† ํฐ์„ ์‚ฌ์šฉํ•œ๋‹ค. Connectionless ํ”„๋กœํ† ์ฝœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ฒ˜๋ฆฌ ๋ฐฉ์‹ Stateless ํ”„๋กœํ† ์ฝœ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์„œ๋ฒ„ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋‹ค. 1. ์ฟ ํ‚ค ๐Ÿช ์ฟ ํ‚ค๋Š” Key-Value ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งก๊ฒจ๋„ ๋˜๋Š” ๊ณต๊ฐœ ๊ฐ€๋Šฅํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ์‹œํ‚จ๋‹ค. ์ฟ ํ‚ค ๋™์ž‘ ๋ฐฉ์‹ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ตํ•  ๋•Œ, ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ž‘์€ ์ •๋ณด๋ฅผ Response Header์˜ set-cooki..
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
์ด๋ฒˆ์— ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 1. ๋‘ ๊ฐ€์ง€ ์ „์†ก ๋ฐฉ์‹ HTML Form์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹์€ ํฌ๊ฒŒ 1. x-www-form-urlencoded Http Body์— bookname=jpabook&quantity=31 ์™€ ๊ฐ™์ด key-valueํ˜•์‹์„ &๋กœ ์—ฐ๊ฒฐ์ง€์–ด ๋ฌธ์ž๋ฅผ ์ „์†กํ•œ๋‹ค. 2. multipart/form-data ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ์™€ ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. multipart/form-data์— ๋Œ€ํ•ด์„œ ๋” ์•Œ์•„๋ณด์ž. 2. multipart/form-data ํผ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„๋กœ submit ๋  ๋•Œ ์ธ์ฝ”๋”ฉ ๋˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•˜๋Š” enctype(encryptiontype)์„ ํ•ด๋‹น ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ H..
DevPoong
'๐ŸŒ Backend/๐Ÿƒ Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก