๋ชฉ๋ก๐Ÿ’ป JAVA_ (34)

Programing_Java

[Servlet] ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ์„ ํ™œ์šฉํ•œ ์‡ผํ•‘ ์นดํŠธ ์ƒํ’ˆ ์ˆ˜๋Ÿ‰ ์กฐ์ ˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๐Ÿš€

โœ… ์›น์‚ฌ์ดํŠธ์˜ ๋ฐ˜์‘์„ฑ• ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์š”์†Œ ์ค‘ ํ•˜๋‚˜→ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ’ˆ ์ˆ˜๋Ÿ‰์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜์ง€ ์•Š๊ณ ๋„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ฆ‰์‹œ ๋ฐ˜์˜→ ์‚ฌ์šฉ์ž๋Š” ๋” ๋น ๋ฅด๊ณ  ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰ 1๏ธโƒฃ ๊ธฐ์ˆ  ์Šคํƒ• ์ฃผ์š” ๊ธฐ์ˆ ์€ ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ→ ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ→ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ๋Œ๋ ค์ฃผ๋Š” ์—ญํ•  2๏ธโƒฃ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฒ˜๋ฆฌ• cartProductNumber : ์ƒํ’ˆ์˜ ๊ณ ์œ  ๋ฒˆํ˜ธ• productCount : ์กฐ์ •ํ•˜๊ณ ์ž ํ•˜๋Š” ์ˆ˜๋Ÿ‰• cartProductCondition : ์ˆ˜๋Ÿ‰ ์กฐ์ ˆ ๋ฐฉํ–ฅ (upCartProductCount ๋˜๋Š” downCartProductCount)int cartProductNumber = Integer.parseInt(request.getParam..

๐Ÿ’ป JAVA_ 2025. 4. 7. 01:12
[Backend] JSON ๋Œ€์‹  MAP ๋ณ€ํ™˜ํ•˜์—ฌ ๋‚ด๋ณด๋‚ด๋Š” ์ด์œ ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๐Ÿš€

โ˜‘๏ธ ๋ฌธ์ œ ์ƒํ™ฉ• ์„œ๋ธ”๋ฆฟ๊ณผ JSP ํ™˜๊ฒฝ์—์„œ JSON์„ ์ง์ ‘ ์ฝ์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ• ์„œ๋ธ”๋ฆฟ์—์„œ JSP๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ, EL(Expression Language)์€ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘→ JSON ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์‹ํ•˜์ง€ ๋ชปํ•จ โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•• JSON์„ Map์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌ → Java์—์„œ๋Š” ObjectMapper๋ฅผ ํ™œ์šฉํ•˜์—ฌ JSON์„ Map์œผ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ  1๏ธโƒฃ ์ฝ”๋“œ ์˜ˆ์ œ ObjectMapper๋ฅผ ์ด์šฉํ•˜์—ฌ JSON์„ Map์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, EL์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฝ”๋“œimport com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;..

๐Ÿ’ป JAVA_ 2025. 4. 2. 23:29
[Backend] FrontController๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์œ ์—ฐ์„ฑ๊ณผ ๊ฐ€๋…์„ฑ ๋†’์ด๊ธฐ ๐Ÿญ

โœ… ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ ์‹œ, ๋ชจ๋“ˆ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”โœ… FrontController์˜ ๋ถ„๋ฆฌ๋Š” ์œ„ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์ „๋žต ์ค‘ ํ•˜๋‚˜1๏ธโƒฃ ์œ ์—ฐ์„ฑ ํ–ฅ์ƒ• ํ”„๋ŸฐํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๊ฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํŠน์ • ์ž‘์—…์— ์ดˆ์ ์„ ๋งž์ถœ ์ˆ˜ ์žˆ์Œ• ํ•˜๋‚˜์˜ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ธ์ฆ๊ณผ ๊ด€๋ จ๋œ ๋กœ์ง์„ ์ฒ˜๋ฆฌ, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌ→ ๊ฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ณ€๊ฒฝ์ด ๋‹ค๋ฅธ ์ปจํŠธ๋กค๋Ÿฌ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™” 2๏ธโƒฃ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ• ์ฝ”๋“œ์˜ ๋ถ„๋ฆฌ๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ• ๊ฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ช…ํ™•ํ•œ ์—ญํ• ๊ณผ ์ฑ…์ž„์„ ๊ฐ€์ง → ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฌ์›Œ์ง• ๋””๋ฒ„๊น…๊ณผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ๋” ๊ฐ„๋‹จ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜์˜ ๊ฐ€๋Šฅ์„ฑ ๊ฐ์†Œ 3๏ธโƒฃ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ• ๋ถ„๋ฆฌ๋œ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ..

๐Ÿ’ป JAVA_ 2025. 3. 31. 22:54
[Backend] Java Servlet์„ ํ™œ์šฉํ•œ CU ์ƒํ’ˆ ๋ชฉ๋ก Pagination ๊ตฌํ˜„ํ•˜๊ธฐ

โœ… ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€๋„ค์ด์…˜(Pagination) ๊ธฐ๋Šฅ์€ ํ•„์ˆ˜์ โœ”๏ธ ํŽ˜์ด์ง€๋„ค์ด์…˜(Pagination) : ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํŠน์ • ๊ฐœ์ˆ˜๋งŒํผ ๋‚˜๋ˆ„์–ด ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋ฒ•→ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ , ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ โœ”๏ธ Java Servlet์„ ํ™œ์šฉํ•˜์—ฌ CU ํŽธ์˜์  ์ƒํ’ˆ ๋ชฉ๋ก์„ ํŽ˜์ด์ง€๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•โœ”๏ธ ๊ฐœ๋ณ„ ์ƒํ’ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ, ๋ถ„๋ฅ˜ํ•˜์—ฌ ํŽ˜์ด์ง€๋„ค์ด์…˜ ๊ธฐ๋Šฅ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹ 1๏ธโƒฃ Pagination ๋กœ์ง• ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๋ฐ›๊ธฐ: ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„ ๊ธฐ๋ณธ๊ฐ’(1)๊ณผ ํ•จ๊ป˜ ์„ค์ •• ํŽ˜์ด์ง€๋‹น ํ•ญ๋ชฉ ์ˆ˜ ์„ค์ •: ๊ธฐ๋ณธ์ ์œผ๋กœ 3๊ฐœ ํ˜น์€ 6๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก ์„ค์ •, ์š”์ฒญ ๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ฐ˜์˜• ์‹œ์ž‘ ์ธ๋ฑ์Šค ๊ณ„์‚ฐ: (ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ - 1)..

๐Ÿ’ป JAVA_ 2025. 3. 21. 18:00
[FrontController] JSP์—์„œ ์„œ๋ธ”๋ฆฟ์œผ๋กœ์˜ ์ „ํ™˜: FrontController ํŒจํ„ด ์ ์šฉํ•˜๊ธฐ

โœ… Servlet์œผ๋กœ FrontController ํŒจํ„ด ๊ตฌํ˜„ํ•˜๊ธฐ 1๏ธโƒฃ Servlet์œผ๋กœ์˜ ์ „ํ™˜• ๊ธฐ์กด์—๋Š” [ controller.jsp?action=MAINPAGE ]์™€ ๊ฐ™์ด ํ•ญ์ƒ ์•ก์…˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์™€์•ผ ํ–ˆ์Œ→ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ํ†ตํ•ด ๋” ๊น”๋”ํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ• JSP๋Š” ์›๋ž˜ View ์—ญํ• ๋งŒ ํ•จ. Java์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์€ ์ œํ•œ์ • JSTL, EL, ๊ทธ๋ฆฌ๊ณ  Custom Tag๋ฅผ ํ™œ์šฉํ•ด View ๋กœ์ง์„ ์ฒ˜๋ฆฌ→ Controller๋Š” Servlet์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ ํ•ฉ→ "VIEW ๋Š” VIEW ๋‹ต๊ฒŒ!" 2๏ธโƒฃ FrontController ํŒจํ„ด• FrontController ํŒจํ„ด์€ ๋ชจ๋“  ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด ์ฒ˜๋ฆฌ, ์„œ๋ธ”๋ฆฟ์ด ์š”์ฒญ์„ ๋ถ„๊ธฐํ•˜์—ฌ ์•Œ๋งž์€ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋„๋ก ์œ ๋„• FrontContr..

๐Ÿ’ป JAVA_ 2025. 3. 20. 22:03
[Listener, Filter] Spring์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•  ์„œ๋ธ”๋ฆฟ, ๋ฆฌ์Šค๋„ˆ, ํ•„ํ„ฐ์˜ ์—ญํ• ๊ณผ ์ฐจ์ด์ 

โœ… ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ๊ฐœ๋ฐœ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ, Application์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉ: Servlet, Listener, Filter๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•จ: ํŠนํžˆ Spring๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„๊ตฌ๋“ค์ด ํƒ‘์žฌ๋˜์–ด ์žˆ์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์Œ 1๏ธโƒฃ Servlet: ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค: ์„œ๋ฒ„์—์„œ ์‹คํ–‰: ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ ์ ˆํ•œ ์‘๋‹ต์„ ๋งŒ๋“ค์–ด ๋ณด๋‚ด๋Š” ์—ญํ• โœ”๏ธ Spring Framework๋Š” Servlet์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌ• Spring Boot → ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์„œ๋ธ”๋ฆฟ์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ Spring์ด ๋‚ด์žฅ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๊ด€๋ฆฌ• ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ..

๐Ÿ’ป JAVA_ 2025. 3. 19. 22:26