• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

2022.06.17

17 Jun 2022

๋กœ๊ทธ์˜ ์ค‘์š”์„ฑ

์‹ค๋ฌด์—์„œ๋Š” ๋กœ๊ทธ ๊ด€๋ฆฌ์— ๊ต‰์žฅํžˆ ๋งŽ์€ ๋…ธ๋ ฅ์„ ์Ÿ๋Š”๋‹ค. ๋ฐฐํฌ ํ›„์— ๋ฐœ์ƒํ•˜๋Š” ์žฅ์• ๋ฅผ ๋ฐ”๋กœ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ๋Š” ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š” ์—๋Ÿฌ๋ฅผ ์‹ค๋ฌด ๊ฐœ๋ฐœ์ž๋“ค์ด ํ™•์ธ ํ›„ ์กฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๋กœ๊น…

๋กœ๊ทธ ํŒŒ์ผ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•ด์„œ Logback ์„ ์‚ฌ์šฉํ•˜๊ณค ํ•˜๋Š”๋ฐ, ์šฐ์„  @Slf4j ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํด๋ž˜์Šค์— ๋‹ค์งœ๊ณ ์งœ ๋ถ™์ด๋Š” ๊ฑด ๊ธฐ๋ณธ logger๋ฅผ ๋ฐ›์•„์˜ค๊ณ , ๊ทธ logger์— ์„ธํŒ…๋œ ์„ค์ •์œผ๋กœ๋งŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํ•˜๊ฒŒ Logger ๋ฅผ ๋‚˜๋ˆ„์–ด ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•œ ๋“ฏ ์‹ถ๋‹ค.

https://cofs.tistory.com/354 ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด๋ฉด, RollingFileAppender ๋ผ๋Š” ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์„ค๋ช…์ด ๊ฐ„๋žตํ•˜๊ฒŒ ๋‚˜์™€์žˆ๋‹ค. ์ด๋Š” ๋กœ๊ทธ ํŒŒ์ผ์ด ๊ฝ‰ ์ฐจ๋ฉด ๊ทœ์น™์— ๋”ฐ๋ผ ๋‹ค์Œ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํด๋ž˜์Šค์ธ๋ฐ, ์ง€๋‚˜๊ฐ€๋ฒ„๋ฆฐ ๋กœ๊ทธ๋ฅผ ์ง€์›Œ๋ฒ„๋ฆด ์ˆ˜๋Š” ์—†๋Š” ๋…ธ๋ฆ‡์ด๊ธฐ์— ์ด ํด๋ž˜์Šค์— ํŒŒ์ผ ์ด๋ฆ„ ๊ทœ์น™ ๋“ฑ์„ ๋„ฃ๋Š” ์‹์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. (ํŒŒ์ผ ํŠธ๋ฆฌ๋ฅผ ๋ณด๋ฉด ๋‚˜์˜ค๋Š” spring-logback.xml ์ฐธ๊ณ , ์—†๋Š” ๊ฒฝ์šฐ ๊ฒ€์ƒ‰ํ•ด์„œ ๋ณด์ž.)

์ถ”๊ฐ€๋กœ ๋กœ๊น…์— ์žˆ์–ด์„œ ์‚ฌ์ˆ˜์—๊ฒŒ ๋“ค์—ˆ๋˜ ์กฐ์–ธ๋„ ๊ธฐ์–ต๋‚œ๋‹ค. log.debug(โ€œxxxโ€) ์œผ๋กœ ๋ƒ…๋‹ค ๋‚จ๊ฒจ๋ฒ„๋ฆฌ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ,

  1. if(log.isDebugEnabled()) { ๋กœ ๊ทธ ๋‚จ ๊ธฐ ๊ธฐ } ์ฒ˜๋Ÿผ ํ•ด๋‹น ๋กœ๊ทธ ๋ ˆ๋ฒจ์ด enable ๋˜์–ด์žˆ๋Š” ์ง€๋ฅผ ์ฒดํฌ ํ›„ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ฒจ์ค€๋‹ค. ์ด์œ ๋Š” ๋กœ๊ทธ level ์ด ํ˜„์žฌ enable ๋˜์–ด์žˆ์ง€ ์•Š๋”๋ผ๋„, JVM ์ž…์žฅ์—์„œ๋Š” ํ•ด๋‹น ๋กœ๊ทธ๋ฅผ ์ฐ๋Š” ๋ฐ์— ์ด๋ฏธ ์—๋„ˆ์ง€๋ฅผ ์Ÿ๋Š”๋‹ค. (์—๋„ˆ์ง€๋ฅผ ์Ÿ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผโ€ฆ ๋ญ๋”๋ผโ€ฆ ๊ธ‰ ๋‹จ์–ด๊ฐ€ ๊ธฐ์–ต์ด ์•ˆ๋‚จ. ๋ถ€ํ•˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค? ์—ฐ์‚ฐ์„ ๋‚ญ๋น„ํ•œ๋‹ค?) ๊ทธ๋ž˜์„œ Enable ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ  ๋กœ๊น…ํ•ด์ฃผ๋Š” ๊ฒŒ ๋„ˆ๋ฌด๋„ˆ๋ฌด ์ค‘์š”ํ•จ. (ํŠนํžˆ TB์—์„œ๋Š” debug ๋‹จ๊ณ„๊นŒ์ง€ ๋‹ค ์ฐ๋Š”๋ฐ, ์ƒ์šฉ์—์„œ debug๊นŒ์ง€ ๋‹ค ์ฐ์œผ๋ฉด ๋ถ€ํ•˜๋กœ ์ธํ•ด ์—ฐ์‚ฐ์ด ๋А๋ ค์ง€๊ธฐ ๋•Œ๋ฌธ์— debug๋Š” skipํ•˜๊ณ  warn ์ฒ˜๋Ÿผ ๊ฐ•๋ ฅํ•˜๊ณ  ๋ฌด์„œ์šด ๋†ˆ๋“ค๋งŒ ์ฐ์–ด์ค€๋‹ค.)
  2. log.warn("๋ฉ”์„ธ์ง€", e) ์ด๋ ‡๊ฒŒ ๋์— exception ์„ ๋‚จ๊ฒจ์ฃผ์–ด ๋„ํ†ต ๋ฌด์Šจ ์ต์…‰์…˜์ด ์žกํžŒ ๊ฑด์ง€๋ฅผ ๋‚จ๊ฒจ์ฃผ์–ด์•ผ ์–ด๋””์—์„œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๊ฑด์ง€ ์›์ธ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๊ผญ ๋งจ ๋์— e ๋ฅผ ๋ถ™์—ฌ์„œ ๋„ฃ์–ด์ฃผ๊ธฐ!

์œ„์™€ ๊ฐ™์€ ์‹ค๋ฌด ํŒ์„ ์–ป์—ˆ๋˜ ํฌ๋ฏธํ•œ ๊ธฐ์–ต์ด ๋‚œ๋‹ค.

์–ผ๋งˆ์ „์—๋Š” ์ง์ ‘ logback ํŒŒ์ผ์„ ๋งŒ์ ธ๋ณด๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š”โ€ฆ ํ˜„์žฌ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์ผ์ข…์˜ ์ „์‚ฌ์šฉ ๋ฒ ์ด์งํ•œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ์ธ๋ฐ, ํ”„๋ ˆ์ž„์›Œํฌ์ฒ˜๋Ÿผ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์€ ๋‹ค ๊ฐ–์ถ˜ ์ƒํƒœ์—์„œ ์ปค์Šคํ…€ํ•˜๋Š” ๋ถ€๋ถ„์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌํ˜„์ฒด๋กœ ๋ฐ›์•„์™€์„œ ๋งŒ๋“ค๊ฒŒ ๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๋กœ๊น…๋œ ๋†ˆ์„ ํŠน์ • ๊ทœ๊ฒฉ์œผ๋กœ ๋ฐ”๊พธ์–ด์„œ ์ถœ๋ ฅํ•˜๋Š” LogConverter ๋ฅผ ๊ตฌํ˜„ํ•ด๋‘์–ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค. ์˜ˆ์‹œ์šฉ ๊ฒธ, ์‹ค์ œ๋กœ ์‚ฌ๋‚ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋กœ๊น… ๊ทœ๊ฒฉ์„ ๋„ฃ์–ด๋‘์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž„. ์ด ๋•Œ๋ฌธ์— logger๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ทธ logger๋ฅผ ํƒ€๋ฉด ์•„์˜ˆ ๋ณ„๋„ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๋กœ๊ทธ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๊ฒŒ ํ•ด์•ผ ํ–ˆ์Œ.
์ด์— ๋”ฐ๋ผ์„œ logback spring xml ์—์„œ ๊ทธ ๋กœ๊ฑฐ์— ๋Œ€ํ•œ RollingFileAppender ์„ค์ •์„ ๋„ฃ์–ด์ฃผ๊ณ , ํŠน์ • ๋กœ๊ทธ ํŒŒ์ผ์—์„œ๋งŒ ํ•ด๋‹น ๊ทœ๊ฒฉ์˜ ๋กœ๊ทธ๊ฐ€ ์ญ‰์ญ‰ ์ฐํžˆ๊ฒŒ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•ด๋ด„.

๋˜ ๊ธ‰ ์ƒ๊ฐ๋‚œ๊ฑฐ๋Š” ์ด๋ฒˆ์— ๋กœ๊น… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๊ฒŒ ๊ต‰์žฅํžˆ ์žฌ๋ฏธ์žˆ์—ˆ๋Š”๋ฐโ€ฆ ๊ทธ๊ฑด ๋ฐ”๋กœ Spring Filter๋ฅผ ์ฒจ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์ž„. Filter์™€ Interceptor ์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š”?
๋ฐ”๋กœ๋ฐ”๋กœ Filter๋Š” ์Šคํ”„๋ง์˜ ๊ด€๋ฆฌ ๋ฐ–, servlet ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด๊ณ  Interceptor๋Š” ์Šคํ”„๋ง์˜ ๊ด€๋ฆฌ ์•ˆ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž„. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ Filter๋ฅผ ์ผ๋Š”๊ฐ€? ์Šคํ”„๋ง ๋™์ž‘์—์„œ, url ์ด ๋“ค์–ด์˜ค๋ฉด ๊ทธ url ์„ ๊ฐ–๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋งคํ•‘ํ•ด์ค€๋‹ค. ๊ทผ๋ฐ ๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋˜ ๋กœ๊น… ๊ธฐ๋Šฅ์€ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋งคํ•‘์ด ๋˜์ง€ ์•Š๋”๋ผ๋„
์šฐ์„  e2e ๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๋‚ด๊ฐ€ ๊ทธ ๋†ˆ์„ ์žก์•„๋‹ค๊ฐ€ ๋กœ๊ทธ ์ •๋ณด๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๊ณ , ์–ด๋–ค ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋งคํ•‘์ด ๋˜์—ˆ๋Š” ์ง€๋„ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•ด์„œ Filter๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

ํ โ€ฆ ๊ธ€๊ณ  Masking ์–ด๋…ธํ…Œ์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ฐœ๋ฐœ๋„ ํ–ˆ๋Š”๋ฐ, ์ด๋†ˆ๋„ ๊ต‰์žฅํžˆ ํฅ๋ฏธ๋กœ์› ์ง€๋งŒ ์ถ”ํ›„ ์„œ์ˆ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ์•”ํŠผ ์š”์ฆ˜์€ ์ด๋Ÿฐ ์ €๋Ÿฐ ์‹ ๊ทœ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฐ์ฐจ๊ฐ€ ๋ณ‘์•„๋ฆฌ์ธ ๋‚ด๊ฐ€ ๊ณผ์—ฐ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•ด๋„ ๋˜๋Š”๊ฐ€? ์‹ถ๊ธด ํ•œ๋ฐโ€ฆ ๋ญ ์–ด์ฉ”๊ฑด์ง€? ์žฅ์• ๋‚˜์ง€ ์•Š๊ฒŒ ์ฃผ์˜๋Š” ํ•˜๋˜ ์žฅ์• ๊ฐ€ ๋‚˜๋”๋ผ๋„ ์ˆ˜์Šตํ•˜๋ฉด์„œ ์ข‹์€ ๊ฒฝํ—˜์ด ๋ ํ…Œ๋‹ˆ ์–ด๋–ป๊ฒŒ๋“  ๋˜์ง€ ์•Š์„๊นŒ?



TIL Share Tweet +1