[Spring MVC] Static Resources(์ ์ ๋ฆฌ์์ค) ์ค์ ๋ฐฉ๋ฒ [Spring MVC] Static Resources(์ ์ ๋ฆฌ์์ค) ์ค์ ๋ฐฉ๋ฒ ์คํ๋ง MVC ์น ํ๋ก์ ํธ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ํ ์ ์๋ค. ์คํ๋ง XML ์ค์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ WebMvcConfigurer ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์์ ๊ฐ์ ํ๋ก์ ํธ ๊ตฌ์กฐ์์ {ํ๋ก์ ํธ ๋ฃจํธ}/src/main/webapp/resources ์์น์ ์ ์ ๋ฆฌ์์ค๋ฅผ ์ค์ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด resources ๋๋ ํ ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์คํ๋ง ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ ๋ฆฌ์์ค๋ก ์ค์ ํ ์ ์๋ค. 1. ์คํ๋ง MVC ์ ์ ๋ฆฌ์์ค XML ์ค์ ๋ฐฉ๋ฒ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ์คํ๋ง XML ์ค์ ํ์ผ์(servlet-context.xml ...) ๋ค์ ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ค. ์คํ๋ง IoC ์ปจํ ์ด๋ XML ์ค์ ํ์ผ mapp.. 2020. 4. 15. [Spring] ์คํ๋ง XML ์ค์ → ์ ๋ ธํ ์ด์ ์ค์ ๋ณํ ๋ฐฉ๋ฒ [Spring] ์คํ๋ง XML ์ค์ → ์ ๋ ธํ ์ด์ ์ค์ ๋ณํ ๋ฐฉ๋ฒ ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉ์ XML ์ค์ ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์๋ฐ ์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ์ ์ค์ ์ ์ด์ฉํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค. (์ฐธ๊ณ - ์คํ๋ง XML ์ค์ ๋ฐฉ๋ฒ : [Spring] ์คํ๋ง XML ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ ์ ๋ฆฌ) ๋ณธ ๊ธ์์๋ ์คํ๋ง์ XML ์ค์ ์ ์ ๋ ธํ ์ด์ ์ค์ ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃฌ๋ค. ๐ ๋ชฉ์ฐจ 1. ์คํ๋ง ์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ ์ค์ ๊ธฐ๋ณธ ํฌ๋งท 2. ๊ธฐ๋ณธ์ ์ธ ๋น ์ค์ ๋ฐฉ๋ฒ - ์๋ ์ฃผ์ ์ค์ - autowire ์์ฑ 3. DI(Dependency Injection) ์ค์ - ์์ฑ์ ์ฃผ์ - ํ๋กํผํฐ ์ฃผ์ - ํ๋กํผํฐ ์ฃผ์ - List ํ์ - ํ๋กํผํฐ ์ฃผ์ - Map ํ์ 4. ApplicationContext ๊ฐ์ฒด.. 2020. 4. 14. [Spring] ์คํ๋ง ๋น(Bean) ์ด๊ธฐํ, ์๋ฉธ ์ ํน์ ์์ ์ ํ๋ ๋ฐฉ๋ฒ [Spring] ์คํ๋ง ๋น(Bean)์ด ์ด๊ธฐํ, ์๋ฉธ ์ ํน์ ์์ ์ ํ๋ ๋ฐฉ๋ฒ ๋ฐฉ๋ฒ 1: InitializingBean, DisposableBean ์ธํฐํ์ด์ค ๊ตฌํ ๋ฐฉ๋ฒ 2: ์คํ๋ง XML ์ค์ ์ฌ์ฉ 1. ์ธํฐํ์ด์ค ๊ตฌํ Spring์์ ์ ๊ณตํ๋ InitializingBean, DisposableBean ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค. public class BookDao implements InitializingBean, DisposableBean { @Override public void afterPropertiesSet() throws Exception { // ๋น ์ด๊ธฐํ ์ ์ฝ๋ ๊ตฌํ } @Override public void destroy() throws Exception { // ๋น ์๋ฉธ ์ ์ฝ๋ ๊ตฌ.. 2020. 4. 13. [Spring] ์คํ๋ง XML ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ ์ ๋ฆฌ [Spring] ์คํ๋ง XML ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ ์ ๋ฆฌ ๐ ๋ชฉ์ฐจ 1. ์คํ๋ง XML ์ค์ ํ์ผ ํฌ๋งท - ๊ธฐ๋ณธ ํฌ๋งท - ์ ๋ ธํ ์ด์ ์ค์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ํฌ๋งท 2. ๋น(Bean) ์ค์ ์์ - ์๋ ์ฃผ์ ์ค์ - autowire ์์ฑ 3. DI(Dependency Injection) ์ค์ - ์์ฑ์ ์ฃผ์ - ํ๋กํผํฐ ์ฃผ์ - ํ๋กํผํฐ ์ฃผ์ - List ํ์ - ํ๋กํผํฐ ์ฃผ์ - Set ํ์ - ํ๋กํผํฐ ์ฃผ์ - Map ํ์ - ํ๋กํผํฐ ์ฃผ์ - Properties ํ์ 4. ApplicationContext ๊ฐ์ฒด ์์ฑ - ์คํ๋ง XML ์ค์ ํ์ผ์ด ํ ๊ฐ์ธ ๊ฒฝ์ฐ - ์คํ๋ง XML ์ค์ ํ์ผ์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ - ์คํ๋ง XML ์ค์ ํ์ผ์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ(import ํ๊ทธ ์ฌ์ฉ) 1. ์คํ๋ง XML ์ค์ ํ.. 2020. 4. 13. [Spring] ์คํ๋ง ์์ PetClinic ํ๋ก์ ํธ ๋ถ์ ๋ฐ ๊ธฐ๋ฅ ๋ณ๊ฒฝ [Spring] ์คํ๋ง ์์ PetClinic ํ๋ก์ ํธ ๋ถ์ ๋ฐ ๊ธฐ๋ฅ ๋ณ๊ฒฝ 1. ํ๋ก์ ํธ ๋ก๊ทธ ๋ ๋ฒจ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ํตํด ํ๋ก์ ํธ์ ์คํ ํ๋ฆ์ ์ดํด๋ณผ ์ ์๋ค. PetClinic ํ๋ก์ ํธ๋ ๊ธฐ๋ณธ ๋ก๊ทธ ๋ ๋ฒจ์ด INFO๋ก ๋์ด์์ด์ ์์ธํ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ด๊ฒ์ ๊ฒ ๋๋ฌ๋ด๋ ๋ฑํ ์ถ๋ ฅ๋๋ ๋ก๊ทธ๊ฐ ์๋ค. ๋ก๊ทธ ๋ ๋ฒจ์ DEBUG๋ก ๋ณ๊ฒฝํ์. Spring boot ํ๋ก์ ํธ๋ src/main/resources/application.properties ํ์ผ์ ๋ก๊ทธ ๋ ๋ฒจ์ ์ค์ ํ๋ค. application.properties 1 2 3 # Logging #logging.level.org.springframework=INFO logging.level.org.springframework.web=DEBU.. 2020. 2. 28. [Spring] ์คํ๋ง ์์ ํ๋ก์ ํธ PetClinic ๋น๋ ๋ฐ ์คํํ๊ธฐ [Spring] ์คํ๋ง ์์ ํ๋ก์ ํธ PetClinic ๋น๋ ๋ฐ ์คํํ๊ธฐ 1. GitHub์์ Spring ํ๋ก์ ํธ clone ๋ฐ๊ธฐ Spring์ ๊ณต์ ์์ ์ธ spring-petclinic์ ์ฌ์ฉํ๋ค. Clone๋ฐ๊ธฐ ์ํด https://github.com/spring-projects/spring-petclinic ์ ์ ์ํ๋ค. Clone or download๋ฅผ ํด๋ฆญํ๊ณ ํด๋ฆฝ๋ณด๋์ ์นดํผํ๋ ๋ฒํผ์ ํด๋ฆญํ๋ค. IntelliJ ๋ฉ์ธ ๋ฉ๋ด์์ VCS - Get from Version Control...์ ํด๋ฆญํ๋ค. ๋ณต์ฌํ github url์ ์ ๋ ฅํ๋ค. ๋๋ ํ ๋ฆฌ๋ ๋ ํ์งํ ๋ฆฌ ์ด๋ฆ์ธ spring-petclinic์ผ๋ก ์๋์ผ๋ก ์ง์ ๋๋ค. ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด ๋ณ๊ฒฝ ํ Clone์ ํด๋ฆญํ๋ค. spring-petclinic.. 2020. 2. 27. MyBatis ๋์ SQL - <choose>์ <set>์ ์ฌ์ฉํ์ฌ ๋์ SQL ๋ง๋ค๊ธฐ ๊ด๋ จ ๊ธ - [JAVA/WEB] ์น ํ๋ก์ ํธ์ MyBatis ์ธํ ๋ฐ ์ ์ฉํ๊ธฐ - MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ - MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ - MyBatis์ Log4J ์ฐ๋ํ๊ธฐ ์ ๋ชฉ MyBatis์ ๋์ SQL ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํ๋์ SQL๋ฌธ์ผ๋ก ์ฌ๋ฌ ์ผ์ด์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ์ ๋ ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ORDER BY ์ ์ ๋ฐ๊ฟ์ผ ํ๊ฑฐ๋ ๊ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ผ WHERE ์ ์ ๋ณ๊ฒฝํด์ผ ํ ๊ฒฝ์ฐ ๋์ SQL ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด ์๋์ผ๋ก ๋ณ๊ฒฝ๋๋ SQL๋ฌธ์ ๋ง๋ค ์ ์๋ค. ํ - MyBatis ๋์ SQL ์ข ๋ฅ ๋์ SQL ์๋ฆฌ๋จผํธ ์ค๋ช SQL ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์ฐ SQL๋ฌธ์ ๋ฐํํ๋ค. SQL SQL SQL ๊ฒ์ฌํ ์กฐ๊ฑด์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ ์ฌ์ฉ ์๋ฐ์ if-else๋ฌธ๊ณผ ์ ์ฌํ๋ค.. 2020. 2. 26. MyBatis์ Log4J ์ฐ๋ํ๊ธฐ ๊ด๋ จ๊ธ - [JAVA/WEB] ์น ํ๋ก์ ํธ์ MyBatis ์ธํ ๋ฐ ์ ์ฉํ๊ธฐ - MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ - MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ MyBatis์ Log4J ์ฐ๋ํ๊ธฐ MyBatis์ log4j๋ฅผ ์ฐ๋ํ์ฌ MyBatis์ ๋ก๊ทธ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. MyBatis์ ๋ก๊ทธ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด MyBatis์์ ์คํํ๋ SQL๋ฌธ, ํ๋ผ๋ฏธํฐ ๊ฐ, ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋ค. ํนํ ๋์ SQL๋ฌธ์ด ์คํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง ํ์ธํ ์ ์์ด ๋๋ฒ๊น ์ ๋งค์ฐ ์ ์ฉํ๋ค. 1. MyBatis ์ค์ MyBatis ์ค์ ํ์ผ์ ๋ก๊ทธ ์ถ๋ ฅ ์ค์ ์ ์ถ๊ฐํ๋ค. ํ์์ ๋ฅผ ์ถ๊ฐํ๊ณ ์ ์ฌ์ฉํด์ ๋ก๊ทธ ์ถ๋ ฅ๊ธฐ๋ฅผ ์ง์ ํ๋ค. MyBatis๋ ์ฌ๊ธฐ.. 2020. 2. 25. MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ ๊ด๋ จ ๊ธ - [JAVA/WEB] ์น ํ๋ก์ ํธ์ MyBatis ์ธํ ๋ฐ ์ ์ฉํ๊ธฐ - MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ MyBatis ํ๋ ์์ํฌ๊ฐ ์ฐธ์กฐํ๋ XML ํ์ผ์ MyBatis ์ค์ ํ์ผ๊ณผ SQL mapper ํ์ผ๋ก ๋๋์ด์ง๋ค. ๋ณธ ํฌ์คํ ์์๋ MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃฐ๊ฒ์ด๋ค. MyBatis๋ ์์ฒด ์ปค๋ฅ์ ํ ๊ตฌ์ถ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ค์ ํด ๋๊ณ ๊ฐ๋ฐ, ํ ์คํธ, ์ด์์ ๋ฐ๋ผ ์ฌ์ฉํ DB ์ง์ SELECT ๊ฒฐ๊ณผ ์บ์ฑ VO(Value Object, ๊ฐ ๊ฐ์ฒด)์ alias ๋ถ์ฌ ๋ฑ์ ๊ธฐ๋ฅ์ ์ง์ํ๋ค. ๋ฐ๋ผ์ MyBatis ์ค์ ํ์ผ์๋ ํด๋น ๊ธฐ๋ฅ์ ์ํํ๋ ๋์ ํ๊ฒฝ์ ์ค์ ํ๋ค. ๋ค์์ MyBatis ์ค์ ํ์ผ์.. 2020. 2. 24. MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ ๊ด๋ จ ๊ธ - [JAVA/WEB] ์น ํ๋ก์ ํธ์ MyBatis ์ธํ ๋ฐ ์ ์ฉํ๊ธฐ MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ MyBatis ์ฌ์ฉ ๋ชฉ์ ์ค ํ๋๋ DAO๋ก๋ถํฐ SQL๋ฌธ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค. ๋ถ๋ฆฌ๋ SQL๋ฌธ์ SQL mapper ํ์ผ์ ์์ฑํ๋ฉฐ DAO์์๋ SqlSession ๊ฐ์ฒด๊ฐ SQL mapper ํ์ผ์ ์ฐธ์กฐํ๊ฒ ๋๋ค. ๋ค์์ MyBatis SQL mapper ํ์ผ์ ์์ด๋ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 select PNO, PNAME, STA_DATE, END.. 2020. 2. 23. [JAVA/WEB] ์น ํ๋ก์ ํธ์ MyBatis ์ธํ ๋ฐ ์ ์ฉํ๊ธฐ ๊ด๋ จ ๊ธ - MyBatis ์ค์ ํ์ผ - SQL Mapper ์์ฑ ๋ฐฉ๋ฒ - MyBatis ์ค์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ [JAVA/WEB] ์น ํ๋ก์ ํธ์ MyBatis ์ธํ ๋ฐ ์ ์ฉํ๊ธฐ ํ๊ฒฝ ๋ฐ ๋ฒ์ ์ ๋ณด IntelliJ IDEA 2019.3 Ultimate, JDK 11, Tomcat 9, MyBatis 3 MyBatis Persistence framework ์ค ํ๋์ธ MyBatis๋ฅผ ์ฌ์ฉํ๋ฉด JDBC ํ๋ก๊ทธ๋๋ฐ ์์ด DB์ ์ฐ๋ํ ์ ์๋ค. ๊ฐ๋ฐ์๊ฐ JDBC API๋ฅผ ์ง์ ํธ์ถํ์ง ์๊ณ MyBatis๊ฐ ๋์ ํธ์ถํ๋ ๋ฐฉ์์ด๋ค. MyBatis์ ํต์ฌ์ ๊ฐ๋ฐ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฝ๋๋ก ์์ค ์ฝ๋์ ๋ด์ฅ๋ผ์๋ SQL์ ๋ณ๋์ ํ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค. ๋ํ ๋จ์ํ๊ณ ๋ฐ๋ณต์ ์ธ JDBC ์ฝ๋๋ฅผ ์บก์ํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก๊ทธ๋.. 2020. 2. 23. ์ด์ 1 ๋ค์