๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ(654)
-
Spring MVC [1] Spring MVC ๊ฐ๋ ๋ฐ ํ๊ฒฝ์ค์
1. MVC (Model-View-Controller) ํจํด MVC ํจํด์ ์ํํธ์จ์ด ๊ณตํ์์ ์ฌ์ฉ๋๋ ์ํคํ ์ฒ ํจํด์ผ๋ก MVC ํจํด์ ์ฃผ ๋ชฉ์ ์ business logic๊ณผ presentation logic์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค. -> MVC ํจํด์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ง๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์๋ก ์ํฅ์ด ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋๋ฐ ํจ์จ์ ์ด๋ค. Model : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด (๋ฐ์ดํฐ, business logic ํฌํจ) View : ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ํ๋ฉด (Presentation logic) Controller : Model ๊ณผ View ์ฌ์ด์ ์ํธ์์ฉ์ ๊ด๋ฆฌํ๋ค. 1๏ธโฃ Model ์ปดํฌ๋ํธ : ๋ฐ์ดํฐ ์ ์ฅ์(๋ฐ์ดํฐ๋ฒ ์ด์ค) ์ ์ฐ๋ํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ๋ฐ์ด..
2021.11.23 -
[Error] cvc-id.3: A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type. ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
Spring ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ web.xml์ DispatcherServlet์ ์ค์ ํด์ฃผ๋ ค๋๋ฐ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋ฅ ๊ตฌ๊ธ๋ง ํด๋ณด๋ ์ ๋ง ๊ฐ๋จํ๊ฒ http://java.sun.com ์ http://Java.sun.com์ผ๋ก ๋ก ๋ฐ๊ฟ์ฃผ๋ ํด๊ฒฐ๋๋คใ ใ ใ ใ ใ
2021.11.23 -
Spring MyBatis [2] Mapper ์ธํฐํ์ด์ค ๊ฐ๋ , ์ค์
1. Mapper ์ธํฐํ์ด์ค : Mapper ์ธํฐํ์ด์ค๋ Mapping ํ์ผ์ ๊ธฐ์ฌ๋ SQL์ ํธ์ถํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ด๋ค. ๋ฐ๋ผ์ Mapping ํ์ผ์ ์๋ SQL์ ์๋ฐ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํธ์ถํ ์ ์๋๋ก ํด์ค๋ค. 1๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์์์ ๋ -> Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด, SQL์ ํธ์ถํ๋ ํ๋ก๊ทธ๋จ์ SqlSession์ ๋ฉ์๋์ ์๊ท๋จผํธ์ ๋ฌธ์์ด๋ก ์ง์ ํด์ผํ๋๋ฐ ์ด๋ ๋ฌธ์์ด๋ก ์ง์ ํ๊ธฐ ๋๋ฌธ์ ์คํ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ๋ ์๋ค. 2๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ ๋ -> UserMapper ์ธํฐํ์ด์ค๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ฉด ๋๋ค. 2. Mapper ์ธํฐํ์ด์ค ์์ฑ 1๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ค. 2๏ธโฃ Mapping ํ์ผ์ namespace๋ฅผ..
2021.11.18 -
Spring MyBatis [1] MyBatis ๊ฐ๋ , MyBatis-Spring ์ปดํฌ๋ํธ ์ญํ , MyBatis-Spring ๊ฐ๋จํ ์ฌ์ฉ์ ๊ด๋ฆฌ ์์
1. MyBatis : MyBatis๋ ์๋ฐ ์ค๋ธ์ ํธ์ SQL๋ฌธ ์ฌ์ด์ ์๋ Mapping ๊ธฐ๋ฅ์ ์ง์ํ๋ ORM ํ๋ ์์ํฌ์ด๋ค. - ํน์ง 1๏ธโฃ ์ฌ์ด ์ ๊ทผ์ฑ๊ณผ ์ฝ๋์ ๊ฐ๊ฒฐํจ 2๏ธโฃ SQL๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋์ ๋ถ๋ฆฌ 3๏ธโฃ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ ๊ฐ๋ฅ (JAVA, C#, NET, RUBY) 2. MyBatis ์ฃผ์ ์ปดํฌ๋ํธ -MyBatis3์ ์ฃผ์ ์ปดํฌ๋ํธ์ ์ญํ 1๏ธโฃ MyBatis ์ค์ ํ์ผ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ฃผ์ ์ ๋ณด๋ Mapping ํ์ผ์ ๊ฒฝ๋ก ๋ฑ ๊ณ ์ ๋ ํ๊ฒฝ์ ๋ณด๋ฅผ ์ค์ ํ๋ค. 2๏ธโฃ SqlSessionFactoryBuilder : MyBatis ์ค์ ํ์ผ์ ๋ฐํ์ผ๋ก SqlSessionFactory๋ฅผ ์์ฑํ๋ค. 3๏ธโฃ SqlSessionFactory : SqlSession์ ์์ฑํ๋ค. 4๏ธ..
2021.11.17 -
Spring AOP[3] @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ, Advice ์ ์ํ๋ ์ด๋ ธํ ์ด์ ์ข ๋ฅ, Aspect ํด๋์ค ์์ฑ ๋ฐ ํ ์คํธ
1. Spring AOP ๊ตฌํ ๋ฐฉ๋ฒ 1๏ธโฃ XML ๊ธฐ๋ฐ์ POJO ํด๋์ค๋ฅผ ์ด์ฉํ AOP ๊ตฌํ : ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Advice ํด๋์ค๋ฅผ ์์ฑํ๊ณ , XML ์ค์ ํ์ผ์ ์ ์ด์ฉํด์ Aspect๋ฅผ ์ค์ ํ๋ค. (Advice์ Pointcut์ ์ค์ ํจ.) 2๏ธโฃ @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ โ : @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Aspect ํด๋์ค๋ฅผ ์์ฑํ๋ค. Aspect ํด๋์ค์๋ Advice๋ฅผ ๊ตฌํํ๋ ๋ฉ์๋์ Pointcut์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ XML ์ค์ ํ์ผ์ ์ ์ค์ ํ๋ค. 2. Aspect ํด๋์ค ์ ์ธ ๋ฐ ์ค์ ํ๊ธฐ : Aspect ํด๋์ค์๋ 4๊ฐ์ง ์ ํ(Before, AfterReturning, AfterThrowing, After)์ Advice์ Poi..
2021.11.15 -
Spring AOP [2] Advice, AOP ์ค์ ๋ฐ ํ ์คํธ, PointCut ํํ์
1. Spring AOP ๊ตฌํ ๋ฐฉ๋ฒ 1๏ธโฃ XML ๊ธฐ๋ฐ์ POJO ํด๋์ค๋ฅผ ์ด์ฉํ AOP ๊ตฌํ : ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Advice ํด๋์ค๋ฅผ ์์ฑํ๊ณ , XML ์ค์ ํ์ผ์ ์ ์ด์ฉํด์ Aspect๋ฅผ ์ค์ ํ๋ค. (Advice์ Pointcut์ ์ค์ ํจ.) 2๏ธโฃ @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ : @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Aspect ํด๋์ค๋ฅผ ์์ฑํ๋ค. Aspect ํด๋์ค์๋ Advice๋ฅผ ๊ตฌํํ๋ ๋ฉ์๋์ Pointcut์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ XML ์ค์ ํ์ผ์ ์ ์ค์ ํ๋ค. 2. Advice ์ข ๋ฅ 1๏ธโฃ Aroud Advice : Target์ ๋ฉ์๋๊ฐ ํธ์ถ๋๊ธฐ ์ด์ (Before) ์์ ๊ณผ ์ดํ (After) ์์ ์ ๋ชจ๋ ์ฒ๋ฆฌํด์ผํ ํ์๊ฐ ์๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ์ํ..
2021.11.15 -
Spring AOP(Aspect Oriented Programming) ๊ฐ๋ ๋ฐ ์ฉ์ด, AspectJ, Spring AOP ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
1. Spring AOP 1๏ธโฃ ํต์ฌ๊ธฐ๋ฅ๊ณผ ๋ถ๊ฐ๊ธฐ๋ฅ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๋ฌด ๋ก์ง์ ํฌํจํ๋ ๊ธฐ๋ฅ์ด๊ณ , ๋ถ๊ฐ ๊ฐ๋ฅ์ ํต์ฌ ๊ธฐ๋ฅ์ ๋์์ฃผ๋ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ(๋ก๊น , ๋ณด์ ๋ฑ)์ ๋ถ๊ฐ๊ธฐ๋ฅ(cross-cutting Concerns)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. 2๏ธโฃ AOP(Aspect Oriented Programming) AOP๋ ์ ํ๋ฆฌ์ผ์ด์ ์์์ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ, ์ฆ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์์ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๋ค. ๋ฐ๋ผ์ AOP์ ๋ชฉ์ ์ ํ๋ก๊ทธ๋๋จธ๋ค์ ์ผ๋ ์ฌํญ์ ๋ณ๋์ ๊ด์ฌ์ฌ(Aspect)๋ก ๋ถ๋ฆฌํ์ฌ ์ฝ๋ ๊ฐ๋ฐํ ๋ ํต์ฌ ๊ธฐ๋ฅ์ ๋ ์ง์คํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด๋ค! => Separation of Cross-Cutting Concern 2. Spring AOP ์ฉ์ด 1๏ธโฃ Aspect : Aspect๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ์ํ ์ฝ๋์ธ Ad..
2021.11.15 -
Spring JDBC [3] ๊ฐ๋จํ ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ
https://hyejin.tistory.com/250 Spring JDBC [1] DAO ํจํด์ด๋?, DataSource, JDBC, jdbcTemplate ํด๋์ค 1. DAO(Data Access Object) ํจํด ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ DAO ํจํด์ ์ ์ฉํ์ฌ ๋น์ง๋์ค ๋ก์ง๊ณผ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ก์ง์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์์น์ด๋ผ๊ณ ํ๋ค. DAO ํจํด์ ์๋น์ค ๊ณ์ธต์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ฐ hyejin.tistory.com https://hyejin.tistory.com/251 Spring JDBC [2] SPRING JDBC ํ๊ฒฝ์ค์ ํ๊ธฐ (Oracle JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, Spring JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, DataSour 1. DB ๊ณ์ ๋ฐ ํ ์ด๋ธ ์์ฑํ๊ธฐ 1๏ธโฃ ๊ด๋ฆฌ์๋ก ๋ก๊ทธ์ธํ์ฌ scott์ด๋ผ..
2021.11.12 -
Spring JDBC [2] SPRING JDBC ํ๊ฒฝ์ค์ ํ๊ธฐ (Oracle JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, Spring JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, DataSource ์์ฑ)
1. DB ๊ณ์ ๋ฐ ํ ์ด๋ธ ์์ฑํ๊ธฐ 1๏ธโฃ ๊ด๋ฆฌ์๋ก ๋ก๊ทธ์ธํ์ฌ scott์ด๋ผ๋ ๊ณ์ ์์ฑํ๊ธฐ 2๏ธโฃ scott์ด๋ผ๋ ๊ณ์ ์ ๊ถํ ๋ถ์ฌํด์ฃผ๊ธฐ 3๏ธโฃ ํ ์ด๋ธ ์์ฑํ๊ธฐ 4๏ธโฃ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์ ํ commit ํ๊ธฐ 5๏ธโฃ USERS ํ ์ด๋ธ ๋ฐ์ดํฐ ์กฐํํด๋ณด๊ธฐ 2. Oracle JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ pom.xml์ ์ค์นํ๊ธฐ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Oracle ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Oracle ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ๊ฒ์ด๋ค. https://mvnrepository.com/artifact/oracle/ojdbc6/11.2.0.3 pom.xml ์ ์ถ๊ฐํ๋ค. 3. Spring JDBC ์ค์นํ๊ธฐ https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.2.17..
2021.11.11 -
Spring JDBC [1] DAO ํจํด์ด๋?, DataSource, JDBC, jdbcTemplate ํด๋์ค
1. DAO(Data Access Object) ํจํด ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ DAO ํจํด์ ์ ์ฉํ์ฌ ๋น์ง๋์ค ๋ก์ง๊ณผ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ก์ง์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์์น์ด๋ผ๊ณ ํ๋ค. DAO ํจํด์ ์๋น์ค ๊ณ์ธต์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ธฐ์ ์ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค. 2. DataSource DataSource๋ ์ปจ๋ฅ์ ํ๋ง์ ์ง์ํ๋ค. ๋ค์ค ์ฌ์ฉ์๋ฅผ ๊ฐ๋ ์ํฐํ๋ผ์ด์ฆ ์์คํ ์ด๋ผ๋ฉด ๋ฐ๋์ DB ์ปค๋ฅ์ ํ๋ง ๊ธฐ๋ฅ์ ์ง์ํ๋ DataSource๋ฅผ ์ฌ์ฉํด์ผํ๋ค. -> Spring ์์๋ DataSource๋ฅผ ๊ณต์ ๊ฐ๋ฅํ Spring Bean์ผ๋ก ๋ฑ๋กํด์ฃผ์ด ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค. โ ์ปจ๋ฅ์ ํ๋ง์ด๋? ์ปจ๋ฅ์ ํ๋ง์ ๋ฏธ๋ฆฌ ์ ํด์ง ๊ฐ์๋งํผ์ DB์ปค๋ฅ์ ํ(pool)์ ์ค๋นํด๋๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฒญํ ..
2021.11.11 -
Spring 3๊ฐ์ง ๊ณ์ธต ๊ตฌ์กฐ (ํ๋ฆฌ์ ํ ์ด์ ๊ณ์ธต, ์๋น์ค ๊ณ์ธต, ๋ฐ์ดํฐ์ก์ธ์ค ๊ณ์ธต)
1. Spring ๊ธฐ๋ณธ 3๊ฐ์ง ๊ณ์ธต ๋๋ถ๋ถ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ํ๊ธฐ ์ํด์ ๊ณ์ธตํํ์ฌ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. ๊ธฐ๋ณธ์ ์ธ ๊ณ์ธต์ผ๋ก๋ ํ๋ฆฌ์ ํ ์ด์ ๊ณ์ธต(Presentation Layer), ์๋น์ค ๊ณ์ธต(Service Layer), ๋ฐ์ดํฐ์ก์ธ์ค ๊ณ์ธต(Data Access Layer) 3๊ฐ์ง ๊ณ์ธต๊ณผ ๋ชจ๋ ๊ณ์ธต์์ ์ฌ์ฉ๋๋ ๋๋ฉ์ธ ๋ชจ๋ธ ํด๋์ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค, ๊ฐ๊ฐ์ ๊ณ์ธต์ ๊ณ์ธต๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ผํ๊ณ , ๊ฐ ๊ณ์ธต์์ ๋ด๋นํด์ผํ ๊ธฐ๋ฅ๋ค์ด ์๋ค. ์์ ์ธ๊ฐ์ง ๊ณ์ธต๋ค์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ถ๋ฆฌํ ์ ์๋๋ก ๊ตฌํํด์ผํ๊ณ , ์ผ๋ฐ์ ์ผ๋ก ๊ฐ ๊ณ์ธต ์ฌ์ด์๋ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ์ฌ ํต์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. 1๏ธโฃ ํ๋ฆฌ์ ํ ์ด์ ๊ณ์ธต (Presentation Layer) ํ๋ฆฌ์ ํ ์ด์ ๊ณ์ธต์ ๋ธ๋ผ์ฐ์ ์์ ์น ํด๋ผ์ด์ธํธ..
2021.11.10 -
Spring javax.annotation.resource ์ค๋ฅ (@Resource ์์ฑ ์๋ฌ)
์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ Bean ์ค์ ์ ํ๊ณ ์๋๋ฐ @Resource ์ด๋ ธํ ์ด์ ์ด ์์ฑ์ด ์๋๋ ์๋ฌ๊ฐ ์์๋ค. ๊ฒฐ๋ก ์ javax.annotation ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api ์ด ๋งํฌ ๊ทธ๋๋ก ๋ค์ด๊ฐ์ pom.xml ์ ์ถ๊ฐํ๊ณ maven update ํด์คฌ๋๋ @Resource๊ฐ ์ ์์ฑ๋๋ค ใ ใ
2021.11.09