๋ฌธ์ ์
ํ์ฌ @PerformanceTracker ๋ฅผ ๋ถ์ด๋ฉด ๋น์ผ๋ก ๋ฑ๋ก๋๋ ํด๋์ค๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
ํ์ํ์ง ์์๋ฐ๋, ๋ชจ๋ @Component ๋ฅผ ๋ถ์ฌ์ ๋น์ผ๋ก ๋ฑ๋ก์ด ๋๋ค.
โ ์ด๋ฅผ @Conditional ๊ณผ properties ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ํด๋ณด๊ณ ์ ํ๋ค.
๊ฐ์ ๋ฐฉ์
1.
accumulator, result mapper, object mapper ๋ performance tracker ๊ธฐ๋ฅ์ ๊ฐ์ฅ ๊ทผ๊ฐ์ด ๋๋ ํด๋์ค๋ก ์ธ์ ๋ ๋ฑ๋ก์ด ๋๋๋ก ํ๋ค.
2.
web, query, rest ๋ ๋งค๋ฒ ๋น์ผ๋ก ๋ฑ๋ก๋ ํ์๊ฐ ์๋ค.
a.
data jpa test ๋ฅผ ํ๋ค๋ฉด interceptor ์ ์ ๊ทผํ์ง ์์ ์ธก์ ์ ์์ ํ์ง ์์ง๋ง web ๊ณผ rest ๊ด๋ จ ๋น๋ค์ด ๋ฑ๋ก๋๋ค.
b.
์ด์ ๋ฐ๋ผ ํ์ฌ ํจํค์ง๊ฐ web, query, rest ๋ก ๋๋ ์ ธ์๊ธฐ๋๋ฌธ์ @Conditional ๊ณผ @ComponentScan ์ ์ด์ฉํ์ฌ ๋น์ผ๋ก ๋ฑ๋ก๋ ์ ์๋๋ก ํ๋ค.
3.
descriptor ๊ด๋ จ ๋น์ @ConfigurationProperties, @ConditionalOnProperty, properties ๋ฅผ ํตํด logging ๋๋ json ์ผ๋ก ์ ํ์ ์ผ๋ก ๋น ๋ฑ๋ก์ด ๋๋ค.
4.
context manager
a.
๊ธฐ์กด์๋ context manager ๋ฅผ ๋ชจ๋ ๋น์ผ๋ก ๋ฑ๋กํ๊ณ @PerformanceTracker ์ ์ต์
์ผ๋ก ์ฌ์ฉ์๊ฐ context ๋ฅผ ์ ํํ ์ ์๋๋ก ํ์๋ค.
b.
๋ชจ๋ ๋ฑ๋กํ ํ์๊ฐ ์๊ธฐ๋ ํ๊ณ class ๋ง๋ค context ๋ฅผ ๋ฐ๊ฟ ์๊ตฌ๋ ๋๋ฌผ๋ค๊ณ ํ๋จํ์ฌ context manager ๋ํ properties ๋ก ์ ํํ ์ ์๋๋ก ํ๋ค.
c.
Condition ์ ๊ตฌํํ์ฌ ์ปค์คํ
์ด๋
ธํ
์ด์
์ ๋ง๋ค์ด ์ ํ์ ์ผ๋ก ๋น ๋ฑ๋กํ ์ ์๋๋ก ํ๋ค.
d.
๋์ฑ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง