๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JAVA ์ œ๋„ค๋ฆญ(Generics) ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ JAVA ์ œ๋„ค๋ฆญ(Generics) ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ ๐Ÿ“ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ ์ œ๋„ค๋ฆญ์˜ ์ •์˜ ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค ์ œ๋„ค๋ฆญ ๋ฉ”์†Œ๋“œ ์ œ๋„ค๋ฆญ ์ œํ•œ(extends, super) ์™€์ผ๋“œ ์นด๋“œ ์ œ๋„ค๋ฆญ ์˜ˆ - Collections.sort() ์ œ๋„ค๋ฆญ(Generics) ์ด๋ž€? ์ œ๋„ค๋ฆญ์€ ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋‚˜์ค‘์— ํ™•์ •ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๋‚˜์ค‘์—๋ผ๋Š” ๋ง์€ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์„ ์–ธํ•  ๋•Œ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉํ•  ๋•Œ, ์ฆ‰ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ •ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ œ๋„ค๋ฆญ์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง•์€ ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•œ๋ฐ, ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ '๊ฐ’'๊ณผ ๊ด€๋ จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ œ๋„ค๋ฆญ์€ ๋ฐ์ดํ„ฐ์˜ 'ํƒ€์ž…'๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋‹ค์–‘ํ•œ ํƒ€์ž…์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋ฉด ๋ฐฉ๋ฒ•์€ .. 2020. 7. 11.
JAVA์˜ ๊ฐ์ฒด ์ง๋ ฌํ™”(Serialization)์™€ JSON ์ง๋ ฌํ™” JAVA์˜ ๊ฐ์ฒด ์ง๋ ฌํ™”(Serialization)์™€ JSON ์ง๋ ฌํ™” ๐Ÿ“ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™”์˜ ๊ฐœ๋… ObjectInputStream๊ณผ ObjectOutputStream Serializable transient ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™”์˜ ๊ตฌํ˜„ serialVersionUID Jackson์„ ์ด์šฉํ•œ JSON ์ง๋ ฌํ™” ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๋ž€? ์ง๋ ฌํ™” - ๊ฐ์ฒด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ I/O ์ŠคํŠธ๋ฆผ์— ์“ฐ๊ธฐ(์ถœ๋ ฅ) ์œ„ํ•ด ์—ฐ์†์ ์ธ(serial) ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ ์—ญ์ง๋ ฌํ™” - I/O ์ŠคํŠธ๋ฆผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์„œ(์ž…๋ ฅ) ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ์ž๋ฐ”์—์„œ ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™”๋Š” ๊ฐ์ฒด๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๊ฐ์ฒด๋Š” '์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ'์ด๋ฏ€๋กœ ๊ฐ์ฒด๋ฅผ ์ €์žฅ/์ „์†กํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’์„.. 2020. 7. 10.
์ž๋ฐ” Object ํด๋ž˜์Šค ์ •๋ฆฌ - toString(), equals(), hashCode(), clone() ์ž๋ฐ” Object ํด๋ž˜์Šค ์ •๋ฆฌ - toString(), equals(), hashCode(), clone() Object ํด๋ž˜์Šค - java.lang.Object - ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค Object ํด๋ž˜์Šค๋Š” ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ์ค‘์š”ํ•œ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. java.lang.Object ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค๋กœ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์ผ๋ถ€ ๋ฉ”์†Œ๋“œ๋ฅผ overrideํ•ด์„œ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋‹น์—ฐํžˆ final ๋ฉ”์†Œ๋“œ๋Š” overrideํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Object ํด๋ž˜์Šค๊ฐ€ ๋“ค์–ด์žˆ๋Š” java.lang ํŒจํ‚ค์ง€๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ import๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ java.lang ํŒจํ‚ค์ง€์— ์žˆ๋Š”.. 2020. 6. 30.
[JAVA ๋””์ž์ธ ํŒจํ„ด] ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด [JAVA ๋””์ž์ธ ํŒจํ„ด] ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด - ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜ - abstract, final ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ - final ๋ฉ”์†Œ๋“œ์™€ abstract ๋ฉ”์†Œ๋“œ๋กœ ๋กœ์ง์˜ ํ๋ฆ„๋งŒ์„ ์ •์˜ํ•˜๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์€ ํ•˜์œ„ ํด๋ž˜์Šค์— ์œ„์ž„ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์šฐ์„  ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ๋ž€ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์˜ ํ๋ฆ„(์‹œ๋‚˜๋ฆฌ์˜ค)๋ฅผ ์ •์˜ํ•œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. final ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ overrideํ•  ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•œ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด์€ abstract ํด๋ž˜์Šค์—์„œ abstract ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ „์ฒด ํ๋ฆ„์„ ์ •์˜ํ•˜๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ฐ ๋ฉ”์†Œ๋“œ์˜ ๊ตฌํ˜„์€ ํ•˜์œ„ ํด๋ž˜์Šค์— ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์œ„ํด๋ž˜์Šค ๋งˆ๋‹ค ์„ธ.. 2020. 6. 26.
[JAVA ๋””์ž์ธ ํŒจํ„ด] static์„ ์‘์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern) ๊ตฌํ˜„ [JAVA ๋””์ž์ธ ํŒจํ„ด] static์„ ์‘์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern) ๊ตฌํ˜„ ํด๋ž˜์Šค ๋‚ด์˜ ๋ณ€์ˆ˜์— static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ๊ทธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด…์‹œ๋‹ค. ์‚ฌ์šฉ์ž ํด๋ž˜์Šค User๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋งˆ๋‹ค ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—๋Š” 1001์„, ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—๋Š” 1002, ๋‹ค์Œ์€ 1003, ... ์ด๋Ÿฐ์‹์œผ๋กœ 1000๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ id๋ฅผ ๋ถ€์—ฌํ•ด์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. /* ์‚ฌ์šฉ์ž ํด๋ž˜์Šค */ public class User { private static Long serialNumber = 1000L; private Long userId; private String userName; public User(St.. 2020. 6. 18.
Spring MVC - @PropertySource ์‚ฌ์šฉ ์ค‘ FileNotFoundException: Could not open ServletContext resource ์—๋Ÿฌ Spring MVC - @PropertySource ์‚ฌ์šฉ ์ค‘ FileNotFoundException: Could not open ServletContext resource ์—๋Ÿฌ โš™๏ธ Spring Web MVC 5.2.6.RELEASE ์Šคํ”„๋ง ์›น MVC ํ”„๋กœ์ ํŠธ์—์„œ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. java.io.FileNotFoundException: Could not open ServletContext resource [/properties/data1.properties] ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ ์œ„์น˜๋Š” src/main/resources/properties/data1.properties ๋ฉ”์ด๋ธ ํ”„๋กœ์ ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œํ•˜๋ฉด resources ๋‚ด์˜ ํŒŒ์ผ๋“ค์ด classpath๋กœ ๋ณต์‚ฌ๋œ๋‹ค... 2020. 5. 6.
[IntelliJ] Spring Web MVC ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ธํŒ… - ์ž๋ฐ” ์„ค์ • ์‚ฌ์šฉ [IntelliJ] Spring Web MVC ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ธํŒ… - ์ž๋ฐ” ์„ค์ • ์‚ฌ์šฉ 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ƒˆ๋กœ์šด Maven ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. Create from archetype ์ฒดํฌ, maven-archetype-webapp์„ ์„ ํƒํ•˜๊ณ  Next ํด๋ฆญ ํ”„๋กœ์ ํŠธ ์ •๋ณด ์ž…๋ ฅํ•˜๊ณ  Next ํด๋ฆญ ์‚ฌ์šฉํ•  Maven ์„ ํƒ ํ›„ Finish ํด๋ฆญ ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” pom.xml 4.0.0 com.atoz_develop project03 1.0-SNAPSHOT war project03 Maven Webapp http://www.example.com UTF-8 1.7 1.7 junit junit 4.11 test project03 maven-clean-plugin 3.1.0 maven-resources-plugi.. 2020. 5. 1.
[IntelliJ] Spring Web MVC ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ธํŒ… - XML ์„ค์ • ์‚ฌ์šฉ [IntelliJ] Spring Web MVC ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ธํŒ… - XML ์„ค์ • ์‚ฌ์šฉ ๐Ÿ’ก ๋ฒ„์ „ : JDK8 / Spring MVC 5.2.6.RELEASE / Tomcat 9 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ƒˆ๋กœ์šด Maven ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. Create from archetype ์ฒดํฌ, maven-archetype-webapp์„ ์„ ํƒํ•˜๊ณ  Next ํด๋ฆญ ํ”„๋กœ์ ํŠธ ์ •๋ณด ์ž…๋ ฅํ•˜๊ณ  Next ํด๋ฆญ ์‚ฌ์šฉํ•  Maven ์„ ํƒ ํ›„ Finish ํด๋ฆญ ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” pom.xml 4.0.0 com.atoz_develop project03 1.0-SNAPSHOT war project03 Maven Webapp http://www.example.com UTF-8 1.7 1.7 junit junit 4.11 test proje.. 2020. 5. 1.
์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - MyBatis ์—ฐ๋™ ์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - MyBatis ์—ฐ๋™ ์ด ๊ธ€์—์„œ๋Š” Oracle DB 11g๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋‹ค๋ฅธ DB๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. MyBatis - Spring JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Mapper์˜ ์—ญํ• ์„ ํ™•์žฅํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ์„ ๋ชจ๋‘ Mapper์—์„œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค. ์˜์กด์„ฑ ์ถ”๊ฐ€ Spring JDBC, Oracle JDBC ๋“œ๋ผ์ด๋ฒ„, Apache Commons DBCP์™€ MyBatis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. org.springframework spring-jdbc 5.1.9.RELEASE com.oracle ojdbc6 11.2.0.3 org.apache.commons commons-dbcp2 2.7.0 org.mybatis mybati.. 2020. 4. 28.
์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - JdbcTemplate ์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - JdbcTemplate Spring Framework๋Š” JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด JdbcTemplate ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ JdbcTemplate ํด๋ž˜์Šค๋Š” ์†์‰ฝ๊ฒŒ DB์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Oracle DB 11g๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋‹ค๋ฅธ DB๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ์˜์กด์„ฑ ์ถ”๊ฐ€ Spring JDBC, Oracle JDBC ๋“œ๋ผ์ด๋ฒ„, Apache Commons DBCP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. org.springframework spring-jdbc 5.1.9.RELEASE com.oracle ojdbc6 11.2.0.3 org.apache.commons commons-dbcp2 2.7.0 Oracle JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ.. 2020. 4. 27.
[AspectJ Weaver] execution ์ง€์‹œ์ž ์„ค์ • ๋ฐฉ๋ฒ• ์ •๋ฆฌ [AspectJ Weaver] execution ์ง€์‹œ์ž ์„ค์ • ๋ฐฉ๋ฒ• ์ •๋ฆฌ Execution ์ง€์‹œ์ž Execution ์ง€์‹œ์ž ์„ค์ • ๋ฐฉ๋ฒ• - Pointcut์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ• - ํ˜•์‹ : execution(๋ฆฌํ„ดํƒ€์ž… ํด๋ž˜์Šค์ด๋ฆ„ ๋ฉ”์†Œ๋“œ์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜)) - ๋ฆฌํ„ดํƒ€์ž… โžก๏ธ ๋ฉ”์†Œ๋“œ์˜ ๋ฆฌํ„ด ํƒ€์ž… - ํด๋ž˜์Šค ์ด๋ฆ„ โžก๏ธ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•œ ํด๋ž˜์Šค ์ด๋ฆ„ / ํŒจํ‚ค์ง€ ์ƒ๋žต ์‹œ ๋ชจ๋“  ํŒจํ‚ค์ง€ / ํด๋ž˜์Šค ์ƒ๋žต ์‹œ ๋ชจ๋“  ํด๋ž˜์Šค - ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ โžก๏ธ ๋ฉ”์†Œ๋“œ์˜ ์ด๋ฆ„ - ๋งค๊ฐœ๋ณ€์ˆ˜ โžก๏ธ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํ˜•ํƒœ ์™€์ผ๋“œ์นด๋“œ * โžก๏ธ ํ•˜๋‚˜์˜ ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ .. โžก๏ธ ๊ฐœ์ˆ˜ ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ ์˜ˆ) execution(void com.atoz_develop.beans.TestBean1.method1()) โžก๏ธ ๋ฆฌํ„ดํƒ€์ž… void, com.atoz_d.. 2020. 4. 27.
AspectJ Weaver๋ฅผ ์‚ฌ์šฉํ•œ ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ ์Šคํ”„๋ง AOP ๊ตฌํ˜„ ๋ฐฉ๋ฒ• AspectJ Weaver๋ฅผ ์‚ฌ์šฉํ•œ ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ ์Šคํ”„๋ง AOP ๊ตฌํ˜„ ๋ฐฉ๋ฒ• AOP๋ž€? - Aspect Oriented Programming : ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - OOP ์™€ ๋ถ„๋ฆฌ๋œ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ, OOP์— ๊ธฐ์ดˆ๋ฅผ ๋‘๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ - ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€์ (ํ˜น์€ ๊ด€์‹ฌ์‚ฌ)๋ผ๋Š” ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋… - ๋กœ๊น…, ๊ฐ์‚ฌ, ์„ ์–ธ์  ํŠธ๋žœ์ ์…˜, ๋ณด์•ˆ, ์บ์‹ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. AOP ์šฉ์–ด - Joint Point : ๋ชจ๋“ˆ์ด ์‚ฝ์ž…๋˜์–ด ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š” ํŠน์ • ์œ„์น˜(๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋“ฑ) - Point Cut : ๋‹ค์–‘ํ•œ Joint Point ์ค‘์— ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ• ์ง€ ์„ ํƒ - Advice : Joint Point์— ์‚ฝ์ž…๋˜์–ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ - Weaving : Advice๋ฅผ ํ•ต์‹ฌ ๋กœ์ง ์ฝ”๋“œ.. 2020. 4. 27.