๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
form ํƒœ๊ทธ ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌํ„ด๋ฐ›๊ธฐ($("form").serialize() ํ•จ์ˆ˜)
2025.01.08
$(function() { const publicKey = '${publicKey}'; // ๊ณต๊ฐœํ‚ค ์ €์žฅ $("form").submit((e) => { // form ํƒœ๊ทธ submit ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง// e.preventDefault(); // ์ž…๋ ฅ๋ฐ›์€ ํšŒ์› ์ •๋ณด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌํ„ด๋ฐ›๊ธฐ const serializedData = $("form").serialize(); // => ํผ์— ๋Œ€ํ•œ serialize() ๋ฉ”์„œ๋“œ๋Š” ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜๋Š”๋ฐ // ์ด๋•Œ, ์ง๋ ฌํ™”์˜ ์˜๋ฏธ๋Š” ํผ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•œ๋‹ค๋Š” ์˜๋ฏธ// console.log(serializedData); // name=bora..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
[Spring] DI์™€ AOP์˜ ๊ฐœ๋…
2024.12.09
์˜์กด์„ฑ ์ฃผ์ž…(DI) : ์˜์กด์„ฑ ์ฃผ์ž…์€ ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ๊ฒฐ์ •ํ•˜๊ณ  ์ฃผ์ž…ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ํด๋ž˜์Šค๋Š” ์ž์‹ ์˜ ์˜์กด ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ์™ธ๋ถ€์—์„œ ์ฃผ์ž…๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.์™œ๋ƒํ•˜๋ฉด ์ด ๋ฐฉ์‹์€ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.@Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด DI๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(AOP) :์–ด๋–ค ๋กœ์ง์„ ๊ธฐ์ค€์œผ๋กœ ํ•ต์‹ฌ์ ์ธ ๊ด€์ , ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๊ณ  ๊ทธ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ๋ชจ๋“ˆํ™”@Aspect ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ AOP๋ฅผ ๊ตฌํ˜„ ์ด ๋‘ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ๊ณตํ†ต ๊ธฐ๋Šฅ์˜ ์ค‘๋ณต์„ ์ค„์ด๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์„ฑ์„ ๋Œ€ํญ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
[Spring] DispatcherServlet ๋ฐ Spring MVC์˜ ๋™์ž‘ ์ˆœ์„œ
2024.12.09
https://velog.io/@platinouss/DispatcherServlet-%EB%B0%8F-Spring-MVC%EC%9D%98-%EA%B5%AC%EB%8F%99-%EC%88%9C%EC%84%9C
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
์„ธ์…˜(Session) vs ์ฟ ํ‚ค(Cookie)
2024.11.18
1. ์„ธ์…˜- ์„œ๋ฒ„(์ปจํ…Œ์ด๋„ˆ)์— ์ €์žฅ๋˜๋Š” ์ •๋ณด => ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณด์•ˆ์— ์œ ๋ฆฌํ•จ- ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์„ธ์…˜ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด ์ดˆ๊ธฐํ™” (๋˜๋Š” ์ž๋ฐ”์˜ ์„ธ์…˜ ๊ฒฝ์šฐ invalidate() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋˜๋ฉด ์ดˆ๊ธฐํ™”)- ์ฃผ๋กœ, ๋กœ๊ทธ์ธ ์ •๋ณด ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•จ(HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋‹จ์ ์„ ๋ณด์™„) 2. ์ฟ ํ‚ค- ํด๋ผ์ด์–ธํŠธ(์›น๋ธŒ๋ผ์šฐ์ €)์—์„œ ์ €์žฅ๋˜๋Š” ์ •๋ณด => ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณด์•ˆ์— ์ทจ์•ฝ(ํด๋ผ์ด์–ธํŠธ์ƒ์—์„œ ์œ„๋ณ€์กฐ ์œ„ํ—˜์„ฑ ์žˆ์Œ) => ๋Œ€์‹ , ์„œ๋ฒ„์˜ ์ž์›์„ ์†Œ๋ชจํ•˜์ง€ ์•Š๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์ž์›๋งŒ ์†Œ๋ชจํ•จ- ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํŠน์ • ์œ„์น˜์— ํŒŒ์ผ(๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ) ํ˜•ํƒœ๋กœ ์ €์žฅ ( key, value ํ˜•์‹์œผ๋กœ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋ฉฐ, ์ฟ ํ‚ค๋ช…, ์ฟ ํ‚ค๊ฐ’, ์œ ํšจ๊ธฐ๊ฐ„ ๋“ฑ์ด ํฌํ•จ๋จ)- ์›น๋ธŒ๋ผ์šฐ์ €๋Š”..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java
AJAX ๋ž€?
2024.11.13
Ajax ( Asynchonous Javascript And Xml, ๋น„๋™๊ธฐ์‹ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ&XML)- ์›น ํŽ˜์ด์ง€(๋ธŒ๋ผ์šฐ์ €)์˜ ๊ฐฑ์‹ (Refresh) ์—†์ด๋„ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(jQuery) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์˜ ์ž‘์—… ์š”์ฒญ ์‹œ ์š”์ฒญ๋œ ์‘๋‹ต์ด ๋Œ์•„์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ , ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ๋Œ์•„์˜ค๋ฉด ํ•ด๋‹น ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ - ์ฃผ๋กœ, ์•„์ด๋”” ๋ฐ ํŒจ์Šค์›Œ๋“œ ๊ฒ€์ฆ ๋“ฑ์˜ ์‹ค์‹œ๊ฐ„ ์ •๋ณด ์กฐํšŒ ์ž‘์—…์— ํ™œ์šฉ   ajax ๋ฌธ๋ฒ•$.ajax({ type : xxx, // AJAX ๋กœ ์š”์ฒญ ์‹œ ์‚ฌ์šฉํ•  ๋ฉ”์„œ๋“œ(= ์š”์ฒญ ๋ฐฉ์‹ = "GET" or "POST" ๋“ฑ) ์ง€์ • url : xxx, // AJAX ๋กœ ์š”์ฒญํ•  ์š”์ฒญ ์ฃผ์†Œ(URL) data : xx..