๋กœ์ผ“๐Ÿพ
article thumbnail
[Spring] ๋ฉ”์ด๋ธ๊ณผ STS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ”„๋ง ํ™˜๊ฒฝ ๊ตฌ์ถ•
... 2021. 1. 11. 22:41

๋ฉ”์ด๋ธ์€ ์˜คํ”ˆ ์†Œ์Šค ๋นŒ๋“œ ํˆด์ž…๋‹ˆ๋‹ค. ๋ฉ”์ด๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•˜๋Š” Dependency ์ž์›๊นŒ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ด๋ธ์€ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์™€ ์„ค์ • ํŒŒ์ผ ๊ทธ๋ฆฌ๊ณ  ์ด์™€ ๊ด€๋ จ๋œ ํ‘œ์ค€ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ผ๊ด€๋œ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. l ๋ฉ”์ด๋ธ(Maven) ์„ค์น˜ํ•˜๊ธฐ maven.apache.org/download.cgi ๋กœ ์ ‘์†ํ•˜์—ฌ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค. ์••์ถ•์„ ํ’€๊ณ  bin ํŒŒ์ผ ์•ˆ์— ์žˆ๋Š” ํด๋”๋ฅผ C:\spring ํด๋”์— ๋„ฃ์Šต๋‹ˆ๋‹ค. l ๋ฉ”์ด๋ธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์†์„ฑ์—์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ์ƒˆ๋กœ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ณ€์ˆ˜์ด๋ฆ„์„ MAVEN_HOME์œผ๋กœ ํ•˜๊ณ  ์•„๊นŒ ๋ณต์‚ฌํ–ˆ๋˜ ๊ฒฝ๋กœ๋ฅผ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค. Path๋ฅผ ์„ ํƒํ•˜์—ฌ ํŽธ์ง‘..

article thumbnail
[Spring] @Autowired ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 1. 11. 21:42

@Autowired๋ฅผ ์ด์šฉํ•˜๋ฉด xml์—์„œ ๋นˆ์„ ์ง์ ‘ ์„ค์ •ํ•  ํ•„์š”์—†์ด, ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•Œ์•„์„œ ์›ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ฃผ์ž…์‹œ์ผœ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. l ์˜ˆ์‹œ package com.spring.ex02; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import o..

article thumbnail
[Spring] @RequestParam ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 1. 11. 21:01

@RequestParam ์• ๋„ˆํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. l ์˜ˆ์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ view์—์„œ ์•„์ด๋””๋ฅผ kbj, ์ด๋ฆ„์„ ๊น€๋ณ‘์ค€์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ  ์ „์†กํ•ฉ๋‹ˆ๋‹ค. package com.spring.ex02; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.spri..

article thumbnail
[Spring] ์Šคํ”„๋ง ์–ด๋…ธํ…Œ์ด์…˜(Annotaion) ์ด๋ž€?
... 2021. 1. 10. 22:14

์Šคํ”„๋ง์˜ ๊ธฐ๋Šฅ๋“ค์ค‘ ํ•˜๋‚˜์ธ DI์™€ AOP๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋”ฐ๋กœ XML ํŒŒ์ผ์—์„œ ์„ค์ •์„ ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ XMLํŒŒ์ผ์— ์ด๋Ÿฌํ•œ ์„ค์ •๋“ค์„ ํ•˜๊ธฐ์—” ๋„ˆ๋ฌด๋‚˜ ๋ณต์žกํ•˜๊ณ  ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์Šคํ”„๋ง์—์„œ๋Š” DI ๊ฐ™์€ ์ž๋ฐ” ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ์„ค์ •์€ ์ฝ”๋“œ์—์„œ ์ง์ ‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ธฐ๋Šฅ์„ ์• ๋„ˆํ…Œ์ด์…˜(Annotation)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์Šคํ”„๋ง์—์„œ๋Š” XMLํŒŒ์ผ ์ง์ ‘ ์„ค์ •๊ณผ ์• ๋„ˆํ…Œ์ด์…˜ 2๊ฐœ๋ฅผ ํ˜ผํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. l ์Šคํ”„๋ง ์• ๋„ˆํ…Œ์ด์…˜ ์ œ๊ณต ํด๋ž˜์Šค ์• ๋„ˆํ…Œ์ด์…˜์„ ์ด์šฉํ•˜๋ ค๋ฉด XML ํŒŒ์ผ์—์„œ ๋‹ค์Œ 2๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๋นˆ์œผ๋กœ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๊ธฐ๋Šฅ DefaultAnnotationHandlerMapping ํด๋ž˜์Šค ๋ ˆ๋ฒจ์—์„œ @RequestMapping์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. AnnotationMethodHandlerMappin..

article thumbnail
[MyBatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค include ๊ตฌ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 1. 10. 21:08

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์—์„œ๋Š” ๋ฌธ๊ณผ ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ sql๋ฌธ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. l ๊ณผ AND NAME LIKE '%์ง€%' SELECT * FROM TEST_TABLE WHERE 1=1 ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งŒ๋“  sql๋ฌธ์€ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” sql๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. SELECT * FROM TEST_TABLE WHERE 1=1 AND NAME LIKE '%์ง€%'; '์ง€'๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” NAME์„ ์ฐพ๋Š” ๊ตฌ๋ฌธ์ด๋ฏ€๋กœ ์œ„ ์ถœ๋ ฅ๊ฒฐ๊ณผ์˜ NAME์ด 'ํ™์ง€์›'์ธ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. "๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"

article thumbnail
[MyBatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค foreach ๊ตฌ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 1. 10. 20:55

foreach ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด SQL๋ฌธ์—์„œ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์†์„ฑ ์†์„ฑ ์„ค๋ช… collection array์™€ list ์ธ์Šคํ„ด์Šค๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. list ์‹œ์—๋Š” list๋กœ ํ‘œ์‹œํ•˜๊ณ  array ์‹œ์—๋Š” array๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. index foreach๋ฌธ์ด ๋ฐ˜๋ณต๋ ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์ ‘๊ทผํ•˜๋Š” ๊ฐ’์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. item collection์˜ ์†์„ฑ์— ์ง€์ •๋œ ๊ฐ’์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์†์„ฑ ์ด๋ฆ„์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. open ํ•ด๋‹น ๊ตฌ๋ฌธ์ด ์‹œ์ž‘๋  ๋•Œ์˜ ์ง€์ •ํ•œ ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. close ํ•ด๋‹น ๊ตฌ๋ฌธ์ด ๋๋‚  ๋•Œ์˜ ์ง€์ •ํ•œ ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. separator ๋ฐ˜๋ณต๋˜๋Š” ์ฟผ๋ฆฌ๋ฌธ ์‚ฌ์ด์— ์ง€์ •ํ•œ ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. l ์˜ˆ์‹œ SELECT * FROM TEST_TABLE ..

article thumbnail
[MyBatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค choose ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 1. 10. 14:01

ํƒœ๊ทธ๋Š” switch๋ฌธ๊ณผ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. l ํƒœ๊ทธ SELECT * FROM TEST_TABLE WHERE 1=1 AND NAME=#{name} AND ID=#{id} AND NAME='ํ™์ง€์›' AND ID='ํ™์ง€์›' switch์˜ case ๋ฌธ์ฒ˜๋Ÿผ choose๋ฌธ์—์„œ๋Š” when ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์กฐ๊ฑด์•ž์—๋Š” ํ•ญ์ƒ test๋ฅผ ๋ถ™์—ฌ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์ฝ”๋“œ์—์„œ๋Š” ๋งŒ์•ฝ name, id๊ฐ€ ์žˆ์œผ๋ฉด ์ฒซ๋ฒˆ์งธ when์ด, name๋งŒ ์žˆ์œผ๋ฉด ๋‘๋ฒˆ์งธ when์ด, id๋งŒ ์žˆ์œผ๋ฉด ์„ธ๋ฒˆ์งธ when ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. public MemberVO selectIF() { sqlMapper = getInstance(); SqlSession session = sqlMapper.openSession(); MemberVO mem..

article thumbnail
[MyBatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค if ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ
... 2021. 1. 10. 13:40

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์—์„œ๋Š” ๋™์  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€์˜ ํƒœ๊ทธ๋“ค์ด ์žˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธ€์—์„œ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. l if๋ฌธ์€ ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ์™€์˜ if๋ฌธ๊ณผ ์‚ฌ์šฉ ์šฉ๋„๊ฐ€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๋˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•๋„ ์•„์ฃผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์˜ํ• ์ ์€ ๋ฐ˜๋“œ์‹œ ์กฐ๊ฑด๋ฌธ์•ž์— test=""๋ฅผ ์ ์–ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. SELECT * FROM TEST_TABLE WHERE 1=1 AND name=#{name} ๋งŒ์•ฝ name์ด๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ์œผ๋ฉด ํ•˜์œ„ ํƒœ๊ทธ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—†๋‹ค๋ฉด if ํƒœ๊ทธ์˜ ํ•˜์œ„ ํƒœ๊ทธ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. public MemberVO selectIF() { sqlMapper = getInstance(); SqlSession session = sqlMapper.openSession(); MemberVO memberVo = new MemberV..

article thumbnail
[Java] ์ž๋ฐ” List ๋ฐ˜๋ณต๋ฌธ (ํ–ฅ์ƒ๋œ ๋ฐ˜๋ณต๋ฌธ)
... 2021. 1. 10. 13:06

l List ๋ฐ˜๋ณต๋ฌธ ํ–ฅ์ƒ๋œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ž๋ฐ”์˜ ์ปฌ๋ ‰์…˜์ธ List๋ฅผ ๋ฐ˜๋ณต๋ฌธ ํƒœ์šฐ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. public void put(String string, List resultList) { for(MemberVO vo : resultList) { System.out.println(vo); } } for(MemberVO vo : resultList) { System.out.println(vo); } ์—ฌ๊ธฐ์„œ List์˜ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค. l ์ถœ๋ ฅ ๊ฒฐ๊ณผ ํ•ญ์ƒน๋œ ๋ฐ˜๋ณต๋ฌธ์€ List ๋ง๊ณ ๋„ ArrayList, HashMap, Map ๋“ฑ ์ž๋ฐ”์˜ ๋‹ค์–‘ํ•œ ์ปฌ๋ ‰์…˜์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. "๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"

article thumbnail
[Oracle] ์˜ค๋ผํด seq ์ตœ๋Œ€๊ฐ’ ๊ตฌํ•˜๊ธฐ
... 2021. 1. 8. 14:12

์˜ค๋ผํด ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋“ค์ค‘ ์ตœ๋Œ€ seq๋ฅผ ๊ฐ€์ง€๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. l ์˜ˆ์‹œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ seq์ธ 106์˜ row๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. (๋งจ ์•ž ์ปฌ๋Ÿผ์ด seq์ž…๋‹ˆ๋‹ค.) SELECT ROWNUM, TEMP.* FROM ( SELECT * FROM TABLE_01 WHERE 1=1 ORDER BY SEQ DESC ) TEMP WHERE 1=1 AND ROWNUM = 1 ORDER BY๋กœ ์ˆœ์„œ๋ฅผ ์ •ํ•œ ๋’ค ROWNUM์„ ์ด์šฉํ•ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. l ๊ฒฐ๊ณผ ์‹คํ–‰ ๊ฒฐ๊ณผ ์ž˜ ๊ฐ€์ ธ์˜จ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. "๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"

article thumbnail
[MyBatis] ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค selectOne๊ณผ selectList
... 2021. 1. 7. 21:26

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” SqlSession ํด๋ž˜์Šค์—์„œ๋Š” CRUD๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ select ๊ด€๋ จ ๋ฉ”์„œ๋“œ๋Š” ์•„๋ž˜ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ๊ธฐ๋Šฅ List selectList(query_id) id์— ๋Œ€ํ•œ select๋ฌธ์„ ์‹คํ–‰ํ•œ ํ›„ ๋ ˆ์ฝ”๋“œ๋ฅผ List๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. List selectList(query_id, '์กฐ๊ฑด') id์— ๋Œ€ํ•œ select๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ์กฐ๊ฑด(์ฟผ๋ฆฌ๋ฌธ์—์„œ ์‚ฌ์šฉํ•  ์ธ์ž)๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. T selectOne(query_id) id์— ๋Œ€ํ•œ select๋ฌธ์„ ์‹คํ–‰ํ•œ ํ›„ ํ•œ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ง€์ •ํ•œ ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. T selectOne(query_id, '์กฐ๊ฑด') id์— ๋Œ€ํ•œ select๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ์กฐ๊ฑด(์ฟผ๋ฆฌ๋ฌธ์—์„œ ์‚ฌ์šฉํ•  ์ธ์ž)๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์—ญ์‹œ ์ดํ•ดํ•˜๋Š”๋ฐ ์˜ˆ์‹œ๋ฅผ..

article thumbnail
[Java] null ๊ณผ "" ์ฐจ์ด๋Š” ๋ญ˜๊นŒ?
... 2021. 1. 7. 16:57

l null null์€ ์–ด๋– ํ•œ ๊ฐ’์œผ๋กœ๋„ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ํž™ ๋ฉ”๋ชจ๋ฆฌ์— ์˜์—ญ์ด ์กด์žฌํ•˜์ง€๋„ ์•Š์ฃ . ๋งŒ์•ฝ String str = null; ์ด๋Ÿฐ ์‹์œผ๋กœ ์„ ์–ธํ•ด์ค€๋‹ค๋ฉด ๋‚˜์ค‘์— ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค ์˜ˆ๊ณ ํ•œ ์ƒํƒœ์ด์ง€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์ง„์ฒ˜๋Ÿผ ํœด์ง€๊ฝ‰๋„ ์—†๋Š” ์ƒํƒœ์ด์ฃ . l "" ""์€ ํ•˜๋‚˜์˜ String์ž…๋‹ˆ๋‹ค. "str", "strstrstrstr"์™€ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์œ„ ์‚ฌ์ง„์—์„œ 0์ด ""์™€ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. null ๊ณผ ๋‹ค๋ฅด๊ฒŒ ํœด์ง€๊ฝ‰์€ ์žˆ์Šต๋‹ˆ๋‹ค. l ์š”์•ฝ null : ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค ์˜ˆ๊ณ ํ•œ ์ƒํƒœ "" : ์ด๋ฏธ ์‚ฌ์šฉํ•œ ์ƒํƒœ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. "๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"

article thumbnail
[JS] javascript:void(0) ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
... 2021. 1. 7. 16:50

๊ฐœ๋ฐœ์„ ํ•˜์‹  ๋ถ„์ด๋ผ๋ฉด ๊ฐ„ํ˜น href="javascript:void(0)"๋ฅผ ๋ณด์‹ ์ ์ด ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ง์ด์ฃ  ๋งํฌ ๋‚ด๋ถ€๋งํฌ๊ฐ€ ์œ„์น˜ํ•œ a ํƒœ๊ทธ์˜ ์†์„ฑ์œผ๋กœ ์ž์ฃผ ๋ณด์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ์ฐ์–ด๋ณด๋ฉด undefined๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณด์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋„๋Œ€์ฒด ์ด ํ•จ์ˆ˜๋Š” ์–ด๋””์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”? l void(0)์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์‰ฝ๊ณ  ์งง๊ฒŒ ๋งํ•˜๋ฉด a ํƒœ๊ทธ ๊ฒฝ์šฐ ๋‚ด๋ถ€ ๋งํฌ๊ฐ€ ๊ฑธ๋ ค์žˆ๋Š”๋ฐ ์ด ๋งํฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๊ฒŒ๋” ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ a ํƒœ๊ทธ์— ๋‚ด๋ถ€๋งํฌ๊ฐ€ ๊ฑธ๋ ค ์žˆ๋Š”๋ฐ a ํƒœ๊ทธ์—์„œ onclick ์†์„ฑ์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋‚ด๋ถ€ ๋งํฌ๋ฅผ ๋™์ž‘ํ•˜์ง€ ์•Š๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. href="" ์ด๋Ÿฐ ์‹์œผ๋กœ uri๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋œ๋‹ค ์ƒ๊ฐ ํ•˜์‹ค์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋งŒ์•ฝ ์ €๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ ์ตœ์ƒ์œ„ ๋งํฌ๋ฅผ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ..

article thumbnail
[MyBatis] MyBatis ์‹œ์ž‘ํ•˜๊ธฐ
... 2021. 1. 6. 22:30

๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋Š” ์Šคํ”„๋ง์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์„ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋Š” JDBC ์—ฐ๋™ ๊ณผ์ •๋„ ๋ณต์žกํ•˜๊ณ  SQL๋ฌธ์ด ์ฝ”๋“œ๋‚ด์— ์„ž์—ฌ ์ฝ”๋“œ๊ฐ€ ์ƒ๋‹นํžˆ ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋Š˜ ๊ทธ๋ ‡๋“ฏ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋„ ๊ฒฐ๊ตญ ๊ฐœ๋ฐœ์ž๋“ค์˜ ํŽธ์˜์„ฑ์„ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์˜ ํŠน์ง• sql ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ Map ๊ฐ์ฒด์— ๋งคํ•‘ํ•ด์ค๋‹ˆ๋‹ค. sql์„ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ XML๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์†Œ์Šค ๊ธฐ๋Šฅ๊ณผ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ฐ„๋‹จํžˆ ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋ฅผ ์œ„ํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ ํ›„ ๊ฐ„๋‹จํ•œ sql๋ฌธ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’์„ jsp์— ๊ฐ€์ ธ์™€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. DBMS๋Š” ์˜ค๋ผํด์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. l ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ์„ค์ •์„ ์œ„ํ•œ xml ํŒŒ์ผ๋“ค SqlMapConfig.xml ์„ ์ด์šฉํ•˜์—ฌ ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ์„ค์ •์„ ํ•ด์ค๋‹ˆ๋‹ค..

article thumbnail
[Spring] ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ(AOP) ์ดํ•ดํ•˜๊ธฐ
... 2021. 1. 3. 22:28

์Šคํ”„๋ง์˜ ํŠน์ง•์„ 5๊ฐ€์ง€๋กœ ๋‚˜๋ˆˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋Ÿ‰ ์ปจํ…Œ์ด๋„ˆ DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…) IoC(์ œ์–ด์˜ ์—ญํ๋ฆ„, Inversion of Control) AOP(๊ด€์ ์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ, Aspect oriented Programming) POJO ๋ฐฉ์‹์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ทธ ์ค‘ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” AOP(๊ด€์ ์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. l AOP๋Š” ์™œ ํ•„์š”ํ• ๊นŒ? ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ํ•ดํ‚น์„ ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ, ์‚ฌ์šฉ์ž์˜ ์ ‘์† ๋‚ด์—ญ์„ ์œ„ํ•œ ๋กœ๊น… ๊ธฐ๋Šฅ ๊ทธ์™ธ์— ํŠธ๋žœ์žญ์…˜, ์ด๋ฉ”์ผ ๋ฐœ์†ก ๊ธฐ๋Šฅ ๋“ฑ ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์˜ ๊ณตํ†ต์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋ชจ๋‘ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ๋•Œ ๊ณตํ†ต์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ํด๋ž˜์Šค๋“ค์ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ..

profile on loading

Loading...