- Spring์ผ๋ก ํฌํ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ 1. ํฌํ ๊ธฐ๋ฅ์ ํ์ํ DB ํ
์ด๋ธ ์์ฑ POLL ํ
์ด๋ธ : ํฌํ ๊ธ์ ๋ํ ๋ฒํธ(PK)์ ์์ฑ์, ์์ฑ์ ๋ชฉ, ํฌํ ์์ ๋ ์ง, ๋๋๋ ๋ ์ง, ํฌํ ํญ๋ชฉ ๊ฐ์, ์ด ํฌํ์, ๊ธ ์์ฑ ์๊ฐ์ ๋ด๊ณ ์๋ค. POLLSUB ํ
์ด๋ธ : POLL ํ
์ด๋ธ์ POLLID(ํฌํ๊ธ ๋ฒํธ)๋ฅผ ๋ฐ์์ ํฌํ ํญ๋ชฉ๋ค ๊ฐ๊ฐ์ ์ด๋ฆ๊ณผ ํฌํ ์๋ฅผ ๋ด์๋๋ค. VOTER ํ
์ด๋ธ : ID๊ฐ ํฌํํ์ ๋ ์ด๋ค ํฌํ๊ธ์ ์ด๋ค ํญ๋ชฉ์ ํฌํํ๋์ง์ ํฌํํ ์๊ฐ์ ๋ด์๋๋ค. 2. MyBatis๋ฅผ ํ์ฉํ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ Poll.xml SELECT POLLID, ID, QUESTION, SDATE, EDATE, ITEMCOUNT, POLLTOTAL, REGDATE FROM POLL ORDER BY SDATE DE..
์ด์ ์ดํด๋ฆฝ์ค์์ Model1 ๋ฐฉ์์ผ๋ก ๋ง๋ค์๋ ํ์ผ ์
๋ก๋ ๊ตฌํ์ ์คํ๋ง์์ ๋ค์ ํด๋ณด์๋ค. ์ด์ ๋ณด๋ค ๊ฐํธํด์ง ์ ์ ์ปจํธ๋กค๋ฌ์์ MultipartFile ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋งค๊ฐ๋ณ์๋ก file form์ ์ฝ๊ฒ ๋ฐ๋ก ๋ฐ์ ์ ์๋ค๋ ๊ฒ. ๊ธฐ๋ณธ ์ธํ
1. ๋ฉ์ด๋ธ ๋ ํ์งํ ๋ฆฌ์์ fileupload ๊ฒ์ 2. Apache Commons FileUpload์ maven ํ๊ทธ ๊ฐ์ ธ์์ pom.xml์ ์์ฑ (์๋ ํ๊ทธ) commons-fileupload commons-fileupload 1.3.3 3. /spring ํด๋์ file-context.xml ์์ฑ file-context.xml 0 5. web.xml์ xml ๊ฒฝ๋ก ์ถ๊ฐ dispatcher org.springframework.web.servlet.Disp..
Spring ํ๋ ์์ํฌ์ ajax๋ฅผ ํ์ฉํ์ฌ ๋น๋๊ธฐ ๋ฐฉ์ ์บ๋ฆฐ๋๋ฅผ ๊ตฌํํ๋ค. ๊ตฌํ ๋ฐฉ์์ ์บ๋ฆฐ๋ ์๋จ์ new Date()๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํ์ฌ ๋
, ์์ ํ์ํ์๊ณ , ๋ฒํผ์ ๋๋ฌ ํ์ํ๋ ๋
, ์์ ์ซ์๊ฐ ๋ฐ๋ ๋ ๊ทธ ํ๊ทธ text๊ฐ์ JQuery๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ ajax Data๋ก ๋๊ฒจ์ฃผ์๋ค. ๋ฒํผ์ ๋๋ฅผ๋๋ง๋ค ajax๋ฅผ ์ฌํธ์ถํ๋ ๋ฐฉ์. ๋
, ์์ ๊ฐ์ ์ปจํธ๋กค๋ฌ๋ก ๋ณด๋ด์ด ํด๋น ์์ ์ค์ผ์ค์ List ํ์์ผ๋ก ๊ฐ์ ธ์ค๊ณ , ๊ฐ ์์ ์ฒซ์งธ๋ ์์ผ, ๋ง์ง๋ง๋ ์์ผ, ๋ง์ง๋ง ์ผ์ ๋ฑ์ ๊ตฌํด ๊ธฐ๋ณธ form์ ๋ง๋ค๊ณ append()๋ฅผ ํตํด ๋ง๋ ํ๊ทธ๋ฅผ ๋ฟ๋ ค์ฃผ์๋ค. ๋
, ์์ด ๋ฐ๋๋๋ง๋ค ๋จ์์๋ ํ๊ทธ๋ ์ด๊ธฐํํ๊ณ ๋ฟ๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์, ์์ฑ๋ trํ๊ทธ์ class ์ด๋ฆ์ ํต์ผํ์ฌ remove()๋ก ์ญ์ ํด์ฃผ์๋ค..
AOP ( Aspect Oriented Programming ) : ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ - ํต์ฌ ๊ธฐ๋ฅ๊ณผ ๊ณตํต ๊ธฐ๋ฅ์ ๋ถ๋ฆฌ ์์ผ๋๊ณ , ๊ณตํต ๊ธฐ๋ฅ์ ํ์๋ก ํ๋ ํต์ฌ ๊ธฐ๋ฅ๋ค์์ ์ฌ์ฉํ๋ ๋ฐฉ์ - ๊ณตํต ๊ธฐ๋ฅ๊ณผ ํต์ฌ ๊ธฐ๋ฅ์ด ์ง์ ์ ์ผ๋ก ์ ์ดํ์ง ์๊ณ Proxy๋ฅผ ํตํด์ ์ํ - ์ฉ์ด ์ ๋ฆฌ ํ๊ฒ (Target) ๋ถ๊ฐ๊ธฐ๋ฅ์ ๋ถ์ฌํ ๋์ ์ ์คํํธ (Aspect) ๋ถ๊ฐ๊ธฐ๋ฅ ๋ชจ๋ (๋ถ๊ฐ๋ ๊ธฐ๋ฅ์ ์ ์ํ ์ด๋๋ฐ์ด์ค์ ์ด๋๋ฐ์ด์ค๋ฅผ ์ด๋์ ์ ์ฉํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ํฌ์ธํธ์ปท์ ํจ๊ป ๊ฐ์ง๊ณ ์๋ค.) ์ด๋๋ฐ์ด์ค (Advice) ๋ถ๊ฐ๊ธฐ๋ฅ์ ๋ด์ ๊ตฌํ์ฒด ํฌ์ธํธ์ปท (PointCut) ์ด๋๋ฐ์ด์ค๋ฅผ ์ ์ฉํ ์กฐ์ธํฌ์ธํธ๋ฅผ ์ ๋ณํ๋ ๊ธฐ๋ฅ์ ์ ์ ์กฐ์ธํฌ์ธํธ (JoinPoint) ์ด๋๋ฐ์ด์ค๊ฐ ์ ์ฉ๋ ์ ์๋ ์์น (Spring์์๋ ํ๋ก์๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ..
view์์ controller๋ก ๋ฐ์ดํฐ ๋ณด๋ด๊ธฐ 1. ์ปจํธ๋กค๋ฌ์์ JSP๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ view ์คํฌ๋ฆฝํ๋ฆฟ๊ณผ elํ๊ทธ ์ฌ์ฉ ๊ฐ๋ฅ. ๋ฒํธ : ์ด๋ฆ : number : ${mycls.number } name : ${mycls.name } controller model์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ ๋ฌ @RequestMapping(value = "hello.do", method = RequestMethod.GET) public String hello(Model model) { logger.info("HelloController hello() " + new Date()); MyClass cls = new MyClass(1001, "ํ๊ธธ๋"); model.addAttribute("mycls", cls); return "..
MyBatis Framework ๊ฐ๋ฐ์๊ฐ ์ง์ ํ SQL, ์ ์ฅํ๋ก์์ ๊ทธ๋ฆฌ๊ณ ๋ช ๊ฐ์ง ๊ณ ๊ธ ๋งคํ์ ์ง์ํ๋ ํผ์์คํด์ค ํ๋ ์์ํฌ MyBatis ์ฌ์ฉ ์ด์ 1. ์ฌ์ด ์ ๊ทผ์ฑ๊ณผ ์ฝ๋์ ๊ฐ๊ฒฐํจ - JDBC์ ๋ชจ๋ ๊ธฐ๋ฅ์ MyBatis๊ฐ ๋๋ถ๋ถ ์ ๊ณตํ๋ค. - ๋ณต์กํ JDBC ์ฝ๋๋ฅผ ๊ฑท์ด๋ด๋ฉฐ ๊น๋ํ ์์ค์ฝ๋๋ฅผ ์ ์งํ ์ ์๋ค. - ์๋์ ์ธ ํ๋ผ๋ฏธํฐ ์ค์ ๊ณผ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ๋งตํ ๊ตฌ๋ฌธ์ ์ ๊ฑฐํ ์ ์๋ค. 2. SQL ๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋์ ๋ถ๋ฆฌ - SQL์ ๋ณ๊ฒฝ์ด ์์ ๋๋ง๋ค ์๋ฐ ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ ์ปดํ์ผํ์ง ์์๋ ๋๋ค. 3. ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ ๊ฐ๋ฅ Spring์์ MyBatis ์ธํ
๋ฐฉ๋ฒ 1. lib ํด๋์ mybatis-3.4.6.jar(mvnrepository.com/ ์์ mybatis ๊ฒ์ ..
Spring Framework - ์๋ฐ ํ๋ซํผ์ ์ํ ์คํ์์ค ์ ํ๋ฆฌ์ผ์ด์
ํ๋ ์์ํฌ๋ก์ ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ข
ํฉ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ฒฝ๋ํ๋ ์๋ฃจ์
Spring์ ์ฌ์ฉ ๋ชฉ์ 1. ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์ ๋ณต์กํจ - ๊ธฐ์ ์ ์ธ ์ ์ฝ์กฐ๊ฑด๊ณผ ์๊ตฌ์ฌํญ์ด ๋์ด๋จ, ๋น์ฆ๋์ค ๋ก์ง ๋ณต์ก๋ ์ฆ๊ฐ 2. ๋ณต์กํจ์ ํด๊ฒฐํ๋ ค๋ ๋
ธ๋ ฅ - ์ ๊ฑฐ ๋ ์ ์๋ ๊ทผ๋ณธ์ ์ธ ๋ณต์กํจ, ์คํจํ ํด๊ฒฐ์ฑ
EJB 3. ๋ณต์กํจ์ ์๋ํ๋ ์คํ๋ง ์ ๋ต - ์๋น์ค ์ถ์ํ, AOP, ๊ฐ์ฒด์งํฅ, DI 4. ๊ธฐ์ ์ ์ผ๋ก ์คํ๋ง์ด ์งํฅํ๋ ๋ชฉ์ ์ ์ - POJO๋ฅผ ์ด์ฉํ ๊ฐ๋ณ๊ณ ๋น์นจํฌ์ ๊ฐ๋ฐ - POJO (Plain Old Java Object) - ์ค๋๋ ๋ฐฉ์์ ์๋ฐ ์คํ์ ํธ Java EE ๋ฑ์ ์ค๋ ํ๋ ์์ํฌ๋ค์ ์ฌ์ฉํ๊ฒ ๋๋ฉด์ ํด..
EL(Expression Language) ํ๊ทธ ์ฌ์ฉ ๋ชฉ์ : front end์์ Java๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ์ํจ ELํ๊ทธ ํ์ --> ${๊ฐ or ์ฐ์ฐ์} ์คํฌ๋ฆฝํ๋ฆฟ๊ณผ EL ํ๊ทธ์ ๋น๊ต s = s = ${_str } - ๋ฌธ์ ์ถ๋ ฅ ${'๊ฐ' } - ์ฐ์ฐ ๊ฐ๋ฅ ${2+3 } - ์ผํญ์ฐ์ฐ์ ๊ฐ๋ฅ ${3>2?100:200 } - ์์ฑ๊ฐ(setAttribute)์ ํตํ ๋ฌธ์์ด ์ถ๋ ฅ ๊ฐ๋ฅ ${data } - empty, not empty : ํ ๋น๋์ด ์๋์ง (true, false) Object๊ฐ ํ ๋น๋์ด ์๋์ง? obj = ${empty _obj } obj = ${not empty _obj } - ํ๋ณ์(true/false), ์ฐ์ฐ์(value) 1 < 9 = ${1 < 9 } 1 + 3 = ${1 + 3 } ..