Notice
Recent Posts
Link
Today
Total
02-05 11:06
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (77)

dingdong coding

Spring Framework, Spring Boot

Spring ? • ์ž๋ฐ” ์–ธ์–ด ๊ธฐ๋ฐ˜( ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด )์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ์ „ ๊ณผ์ •์„ ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•˜๋ฉฐ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. • ์ดˆ๊ธฐ์— ๊ธฐ๋ณธ ์„ค์ •๊ณผ ๊ธฐ์ˆ ์„ ์ž˜ ์„ค์ •ํ•˜๋ฉด ์Šคํ”„๋ง๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋‚˜ API์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฑฐ์˜ ์‹ ๊ฒฝ ์“ธ ์ผ์ด ์—†๋‹ค. • ์ด๋Š” Spring Boot, Spring Framework์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค๋ฉด Spring์ด ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. • spring framework, spring boot๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ ์Šคํ”„๋ง ์ƒํƒœ๊ณ„ • ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ๊ฐ€์ง„ ํŠน์ง•์„ ์‚ด๋ ค๋‚ด ์ข‹์€ ๊ฐ์ฒด์ง€ํ–ฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. • Spring์˜ ํ•ต์‹ฌ ํŠน์ง•์ธ ์ œ์–ด์˜ ์—ญ์ „(Ioc), ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…(DI)์„ ์ด์šฉํ•ด ๋‹คํ˜•์„ฑ์„ ์ž˜ ์ง€ํ‚ค๋ฉฐ..

๐ŸSpring/Basic 2022. 6. 18. 10:24
Spring Bean, Spring Container

์Šคํ”„๋ง ๋นˆ(Spring Bean) ์ด๋ž€? ๋นˆ ( Bean ) Spring Ioc ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด. ์ฆ‰, ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด์„œ ์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด ์ง€๊ฒŒ ๋˜๋ฉด ์ด ๊ฐ์ฒด๋ฅผ ์Šคํ”„๋ง์€ ์Šคํ”„๋ง ๋นˆ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ์–ด์˜ ์—ญ์ „ Ioc ๊ธฐ์กด์˜ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  new๋กœ ์›ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Spring์—์„œ๋Š” new๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ, Spring์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜์–ด์ง€๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Spring์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ Bean์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. Spring Bean, Ioc Container์— ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• 1. Annotation ์ด์šฉ • @Component ์• ๋…ธํ…Œ์ด์…˜์ด ์žˆ๋‹ค๋ฉด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก ๋ฉ..

๐ŸSpring/Basic 2022. 6. 17. 12:51
SQL Injection

SQL Injection ์ด๋ž€? • ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด์•ˆ์ƒ์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ์กฐ์ž‘๋œ SQL query๋ฌธ์„ DataBase์— ์ฃผ์ž…์‹œ์ผœ ๋น„์ •์ƒ์  ๋ช…๋ น์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ• ( web hacking techniques ) • ํ•ด๋‹น ๊ณต๊ฒฉ์„ ๋ฐ›์œผ๋ฉด ์กฐ์ง ๋‚ด๋ถ€์˜ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋‚˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ฌ๊ฐํ•œ ๊ฒฝ์šฐ ์กฐ์ง ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ์žฅ์•…ํ•˜๊ฑฐ๋‚˜ ์†์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ ๋ฐฉ๋ฒ• 1 ) ์ธ์ฆ์šฐํšŒ • SQL injection์€ ๋ณดํ†ต ์‚ฌ์šฉ์ž์—๊ฒŒ ๋กœ๊ทธ์ธ(username, userid)๊ณผ ๊ฐ™์€ ์ž…๋ ฅ ์š”์ฒญ ์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. • ์ •์ƒ์ ์ธ ๊ณ„์ •์ •๋ณด ์—†์ด๋„ ๋กœ๊ทธ์ธ์„ ์šฐํšŒํ•˜์—ฌ ์ธ์ฆ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„์ด๋””๊ฐ€ abc, ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ 1234์ผ ๋•Œ ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ „์†ก๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. SELECT * FROM US..

๐ŸฌDB 2022. 6. 17. 00:14
[ ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ ] Greedy ๊ธฐ์ถœ๋ฌธ์ œ

1. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ • ๋ฌธ์ œ ํ•œ ๋งˆ์„์— ๋ชจํ—˜๊ฐ€๊ฐ€ N๋ช… ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ์—์„œ๋Š” N๋ช…์˜ ๋ชจํ—˜๊ฐ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ '๊ณตํฌ๋„'๋ฅผ ์ธก์ •ํ–ˆ๋Š”๋ฐ, '๊ณตํฌ๋„'๊ฐ€ ๋†’์€ ๋ชจํ—˜๊ฐ€๋Š” ์‰ฝ๊ฒŒ ๊ณตํฌ๋ฅผ ๋Š๊ปด ์œ„ํ—˜ ์ƒํ™ฉ์—์„œ ์ œ๋Œ€๋กœ ๋Œ€์ฒ˜ํ•  ๋Šฅ๋ ฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ๋ชจํ—˜๊ฐ€ ๊ธธ๋“œ์žฅ์ธ ๋™๋นˆ์ด๋Š” ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ ์ž ๊ณตํฌ๋„๊ฐ€ X์ธ ๋ชจํ—˜๊ฐ€๋Š” ๋ฐ˜๋“œ์‹œ X๋ช… ์ด์ƒ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์— ์ฐธ์—ฌํ•ด์•ผ ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜ ์žˆ๋„๋ก ๊ทœ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™๋นˆ์ด๋Š” ํšŒ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ** ๋ชจ๋“  ๋ชจํ—˜๊ฐ€๋ฅผ ํŠน์ •ํ•œ ๊ทธ๋ฃน์— ๋„ฃ์„ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ** • ์ž…๋ ฅ์กฐ๊ฑด - ์ฒซ์งธ ์ค„์— ๋ชจํ—˜๊ฐ€์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ( 1 ≤ N ≤ 100,000 ) - ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ๋ชจํ—˜๊ฐ€์˜ ๊ณตํฌ๋„ ๊ฐ’์„ N ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„..

๐Ÿ”ตCoding Test/Algorithm 2022. 6. 16. 19:23
MVC, Spring MVC

MVC๋ž€? MVC ํŒจํ„ด์€ ์•„ํ‚คํ…์ณ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ๋ถ„์‹œ์ผœ ์„œ๋กœ ์˜ํ–ฅ์—†์ด ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. • M ( Model ) "๋ฌด์—‡์„" - ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ - ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ˜ธ์ถœํ•  ๋•Œ, ์š”์ฒญ์— ๋งž๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์˜์—ญ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. • V ( View ) - ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI) ์ปดํฌ๋„ŒํŠธ - Controller๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ชจ๋ธ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ–๊ณ  ์ถœ๋ ฅํ•  ํ™”๋ฉด์„ ๋งŒ๋“œ๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. - ์ƒ์„ฑ๋œ ํ™”๋ฉด์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•˜๊ณ  ์ถœ๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. - ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ(๋ฐ์ดํ„ฐํ‘œ์‹œ, ์ž…๋ ฅ ํผ ๋“ฑ)์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ..

๐ŸSpring/Basic 2022. 6. 16. 12:49
[ ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ ] ๊ธฐํƒ€ ๊ทธ๋ž˜ํ”„ ์ด๋ก 

• ์„œ๋กœ์†Œ ์ง‘ํ•ฉ (Disjoint Sets) : ๊ณตํ†ต ์›์†Œ๊ฐ€ ์—†๋Š” ๋‘ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. • ์„œ๋กœ์†Œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ๋“ค๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์›์†Œ๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. • ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋‘ ์ข…๋ฅ˜์˜ ์—ฐ์‚ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. • ํ•ฉ์ง‘ํ•ฉ(Union) : ๋‘ ๊ฐœ์˜ ์›์†Œ๊ฐ€ ํฌํ•จ๋œ ์ง‘ํ•ฉ์„ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. • ์ฐพ๊ธฐ(Find) : ํŠน์ •ํ•œ ์›์†Œ๊ฐ€ ์†ํ•œ ์ง‘ํ•ฉ์ด ์–ด๋–ค ์ง‘ํ•ฉ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. • ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ•ฉ์น˜๊ธฐ ์ฐพ๊ธฐ(Union Find) ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•ฉ์น˜๊ธฐ ์—ฐ์‚ฐ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋™์ž‘ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ํ•ฉ์ง‘ํ•ฉ(Union) ์—ฐ์‚ฐ์„ ํ™•์ธํ•˜๋ฉฐ, ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๋‘ ๋…ธ๋“œ A, B๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 1) A์™€ B์˜ ๋ฃจํŠธ ๋…ธ๋“œ A'..

๐Ÿ”ตCoding Test/Algorithm 2022. 6. 15. 10:27
์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ @

์–ด๋…ธํ…Œ์ด์…˜์ด๋ž€? • @ ์‚ฌ์ธ ํ•˜๋‚˜๋กœ ๋งŽ์€ ์ปจํ…์ŠคํŠธ๋“ค์„ ์ œ๊ณต ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. • @ ์‚ฌ์ธ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์–ด๋…ธํ…Œ์ด์…˜ ์ด๋ผ๊ณ  ํ•œ๋‹ค. Spring์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ ์–ด๋…ธํ…Œ์ด์…˜ ์—†์ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ณผ ์ˆ˜ ์—†๋‹ค. Controller ๋“ฑ๋ก์ด๋‚˜ Service, Repository, Test ๋“ฑ ์•ˆ์“ฐ์ด๋Š” ๊ณณ์ด ์—†์„ ์ •๋„๋‹ค. ๋งŽ์ด ์“ฐ์ž„์—๋„ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ๊ฐ€๋” ์ƒ๊ฐ์ด ์•ˆ๋‚˜๊ฑฐ๋‚˜ ๊นŒ๋จน์„ ๋•Œ๊ฐ€ ์žˆ๊ธฐ์— ์ง€๊ธˆ์ด๋ผ๋„ ์กฐ๊ธˆ์”ฉ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ด๋‹ค. ํฌ์ŠคํŠธ์ž‡ ์ฒ˜๋Ÿผ ๊ณ„์† ์ถ”๊ฐ€ํ•  ์˜ˆ์ • โœ๏ธ @AfterEach : ๊ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ 1) Test Case๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ : ๋ฉ”๋ชจ๋ฆฌ DB์— ๋‚จ์•„์žˆ๋Š” ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. (์ง์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด์คŒ) clearStore ๋ฉ”์„œ๋“œ public void clearStore(){ st..

๐ŸSpring/Basic 2022. 6. 14. 18:10
Prev 1 2 3 4 5 6 7 8 Next