MapleStory Finger Point

๐ŸŸค JAVA/๐ŸŸค Spring 18

[Spring] JDBC, Spring JDBC, Mybatis, JPA

๋ชฉ์ฐจ  1)  SQL Mapping ํ”„๋ ˆ์ž„์›Œํฌโœ… ์ฃผ์š” ๊ณผ์ •SQL Session Factory ์ƒ์„ฑConnection ์ƒ์„ฑSQL ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜2) JDBC (์ˆœ์ˆ˜ JDBC ์‚ฌ์šฉ ๋ฐฉ์‹)โœ… ์ˆœ์ˆ˜ JDBC๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐConnection ์ง์ ‘ ๊ด€๋ฆฌํ–ˆ์Œ.PreparedStatement ์ƒ์„ฑ ๋ฐ SQL ์‹คํ–‰ํ–ˆ์Œ.ResultSet ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ์Œ.close()๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ง์ ‘ ํ•ด์ œํ•ด์•ผ ํ–ˆ์Œ.โžก๏ธ ๋ถˆํŽธํ•œ ์ :Connection์„ ๋งค๋ฒˆ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ์Œ.close()๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•ด์•ผ ํ•ด์„œ ์‹ค์ˆ˜๋กœ ๋ˆ„๋ฝ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ.3) Spring JDBCSpring์—์„œ๋Š” Connection Pool *์„ ์‚ฌ์šฉํ•ด์„œ ์ปค๋„ฅ์…˜์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•จ.* DB ์—ฐ๊ฒฐ์„ ๋ฏธ๋ฆฌ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์–ด๋‘๊ณ  ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ  (..

[Spring] MVC Controller, Service, DAO

๐Ÿ’ป Controller ํ™”๋ฉด ์ฒ˜๋ฆฌ@Controller@Requestmapping1) void2) String 3) redirect4) ResponseBody  ๐Ÿ’ป Request ํŒŒ๋ผ๋ฏธํ„ฐ1) ์ „ํ†ต์  HttpServletRequest ๊ฐ์ฒด๋กœ  HTTP ์ •๋ณด ์–ป๊ธฐString name = request.getParameter("name") 2) ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ  HTTP ์ „์†ก ์ •๋ณด ์–ป๊ธฐ (๋‹จ์ผ๊ฐ’)@RequestParam(value=๏ผ‚ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’", required = false, defaultValue = “๊ธฐ๋ณธ๊ฐ’") 3) ์ปค๋ฉ˜๋“œ ๊ฐ์ฒด  HTTP ์ „์†ก ์ •๋ณด ์–ป๊ธฐvo๊ฐ์ฒด์— ๋™์ผํ•œ setter ๊ฐ€ ์žˆ์œผ๋ฉด ์ž๋™ ์ €์žฅ ๐Ÿ’ป Model ํ™”๋ฉด์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฐ์ฒด  1) Model2) ModelAndView3) Mod..

[Spring] ์Šคํ”„๋ง MVC ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์กฐ

๐Ÿ’ป ์Šคํ”„๋ง MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋™์ž‘๊ตฌ์กฐ 1) ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.2) DispatcherServlet ์ด ์š”์ฒญ์„ ๋ฐ›๋Š”๋‹ค.3) HandlerMapping ๊ฐ์ฒด์— Controller ๊ฐ์ฒด ๊ฒ€์ƒ‰์„ ์š”์ฒญํ•œ๋‹ค.=> ๋ชจ๋“  Controller ๊ฐ์ฒด๋ฅผ ๊ฒ€์ƒ‰ ํ›„ DispatcherServlet ๊ฐ์ฒด์— ๋ฐ˜ํ™˜ํ•œ๋‹ค.4) DispatcherServlet  ๋Š” ๋‹ค์‹œ HandlerAdapter ๊ฐ์ฒด์— ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋ถ€ํ•ฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๊ฒ€์ƒ‰์„ ์š”์ฒญํ•œ๋‹ค.=> HandlerAdpter ๊ฐ์ฒด๋Š” ์š”์ฒญ์— ๋ถ€ํ•ฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ์•„์„œ ํ•ด๋‹น Controller ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.5) Controller ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด, HandlerAdapter ๊ฐ์ฒด์— ModelAndView  ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.6) ModelAndView ๊ฐ์ฒด์—๋Š”..

[Spring] Container ๊ณผ Bean

๐Ÿ’ป Spring  Container (์ปจํ…Œ์ด๋„ˆ) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์‹ฌ์ ์ธ ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.์ปจํ…Œ์ด๋„ˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด๋“ค์„ ์ƒ์„ฑํ•˜๊ณ ,๊ทธ๋“ค ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์„ค์ •ํ•˜๋ฉฐ,๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”์™€ ์ข…๋ฃŒ ๊ณผ์ •์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.  ์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection): ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ์ฒด์˜ ์˜์กด์„ฑ์„ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ์ฒด๊ฐ€ ์ž์‹ ์ด ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋„๋ก ํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋ผ์ดํ”„์‚ฌ์ดํด ๊ด€๋ฆฌ: ์ปจํ…Œ์ด๋„ˆ๋Š” Bean์˜ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”, ์†Œ๋ฉธ๊นŒ์ง€์˜ ์ „ ๊ณผ์ •์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๋ถ€๋‹ด์„ ์ค„์ด๊ณ , ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  ๐Ÿ’ป Spring  Bean (๋นˆ) Spring Conta..

[Spring] Maven (pom.xml) - ์Šคํ”„๋ง ์กฐ๋ฆฝ

jsp ์— ๋นŒ๋“œํˆด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€1. Maven 2. Gradle ์ด ์žˆ๋‹ค.   ์Šคํ”„๋ง์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ => ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ๊ตฌ์ถ• ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋งŽ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.  ๐Ÿ’ป Maven ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 1) Dynamic Web Project ์ƒ์„ฑํ•˜๊ธฐ2) ๊ธฐ๋ณธ ํŒŒ์ผ ํด๋”๋ช…์„ src/main/java ๋กœ ๋ณ€๊ฒฝ3) Content director ์„ webapp ๋กœ ๋ณ€๊ฒฝ (web.xml ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ)4) ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ์šฐํด๋ฆญํ•ด์„œ Covert to Maven Project ๋ฅผ ํด๋ฆญ5)6) ์™„์„ฑ๋œ pom.xml       ๐Ÿ’ป  Maven ์ด๋ž€ ? ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(๋ชจ๋“ˆ) ์„ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ  ๋นŒ๋“œ๋ฅผ ์œ„ํ•œ ํ”Œ๋žซํผ์ด๋‹ค.์ฆ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์ •์œผ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.    ๐Ÿ’ป M..

[Spring] IoC (์ œ์–ด์˜์—ญ์ „), DI (์˜์กด์„ฑ์ฃผ์ž…)

๐Ÿ’ป  IoC (Inversion of Control) ์ œ์–ด์˜ ์—ญ์ „๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ์˜ ์ œ์–ด๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ / ์ปจํ…Œ์ด๋„ˆ์— ๋งก๊น€ (๊ฐœ๋ฐœ์ž๋Š” ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค)๊ฐ์ฒด๋ฅผ ํ•„์š”ํ•  ๋•Œ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ์‹์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด ๋†“๊ณ  ๊บผ๋‚ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋ณ€๊ฒฝ     ๐Ÿ’ป DI (Dependency Injection) ์˜์กด์„ฑ ์ฃผ์ž… DI : Dependency Injection A ๋Š” B ์— ์˜์กด์ ์ด๋‹ค -> A ๋Š” B ๊ฐ€ ์žˆ์–ด์•ผ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Œ์ฃผ์ž… : ์ฃผ์ž… ๋ฐ›๋Š” ์ž…์žฅ์€ `์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ์ฃผ์ž…๋˜์–ด๋„ (์˜์กดํ•˜์—ฌ๋„)` ์ž์‹ ์˜ ์—ญํ• ์€ ๋ณ€ํ•˜์ง€ ์•Š์Œ Applicatioin context ์—์„œ ๊ฐ์ฒด(Bean) ์„ ๊ด€๋ฆฌ, ์ƒ์„ฑ, ์ฃผ์ž…์˜ ์ผ์„ ํ•œ๋‹ค.`Application context` ๋Š” XML, annotation, JAVA ๋ฐฉ์‹์œผ๋กœ..

[Spring] ์Šคํ”„๋ง ์ดˆ๊ธฐ ์„ธํŒ… ๋ฐฉ๋ฒ•

๋ชฉ์ฐจ   (1) JDK ์„ค์น˜   โ— ์˜ค๋ผํด์‚ฌ์ดํŠธ์—์„œ jdk ๋‹ค์šด๋กœ๋“œhttps://www.oracle.com/java/technologies/downloads/ Download the Latest Java LTS FreeSubscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.www.oracle.comSE : Standard EditionEE : Enterprise Edition(๊ธฐ์—…์šฉ)  jdk 21 ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๋ฐ›์•„์คฌ๋‹ค.  exe ํŒŒ์ผ์„ ๋”๋ธ”ํด๋ฆญ jdk ๋ฅผ ๋‹ค์šด๋ฐ›์•„์ค€๋‹ค.   โ— ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŽธ์ง‘์šด์˜์ฒด์ œ์˜ ์–ด๋””์„œ๋“ ์ง€ ์ž๋ฐ”๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ..

[Spring/SpringBoot] ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•˜์—ฌ โญ

๋ชฉ์ฐจ    Spring ํƒ„์ƒ ๋ฐฐ๊ฒฝ๊ธฐ์—…๋“ค์€ ๊ธฐ์—…์šฉ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ, ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ–ˆ๋Š”๋ฐ,JAVA SE(Java Standard Edition)๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ–ˆ์Œ.์ด์— Oracle์ด JAVA EE๋ฅผ ์ถœ์‹œํ•˜์˜€์ง€๋งŒ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์ ์ด ์กด์žฌํ•จ.Java EE ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ → ๋ณต์žกํ•˜๊ณ  ๋ฌด๊ฑฐ์›€EJB(Enterprise Java Beans) → Java EE์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ชจ๋“ˆํ™”ํ•˜๋Š” ๊ธฐ์ˆ ์ด์ง€๋งŒ ์„ค์ •์ด ๋ณต์žก  Spring → Java EE์˜ ๋‹จ์  ๋ณด์™„Spring์€ Java EE์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ์œผ๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ.์„ค์ • ํŒŒ์ผ, ์ปจํ…Œ์ด๋„ˆ, ๋นˆ ๋“ฑ๋ก, ์˜์กด์„ฑ ์„ค์ • ๋“ฑ์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ๋ฐฐํฌ๊ฐ€ ์–ด๋ ค์›€ → WAR ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์•ผ ํ•จ๋‚ด์žฅ ์›น ์„œ๋ฒ„๊ฐ€ ์—†์Œ → ๋ณ„๋„๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ๊ฒฝ๋Ÿ‰ํ™”   Sp..