Skip to content

๐Ÿ“— ์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ

HongJungWan edited this page Dec 5, 2025 · 1 revision

1๏ธโƒฃ ๋กœ๊ทธ ๊ธฐ๋ก

๋กœ๊ทธ ์ž‘์„ฑ

  • ์ค‘์š”๋„(TRACE, DEBUG, INFO, WARN, ERROR)๋ณ„๋กœ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
  • ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ(payload)๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์˜ˆ์™ธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • LogBuilder ํŒจํ„ด์œผ๋กœ ์œ ์—ฐํ•˜๊ฒŒ ๋กœ๊ทธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์ปจํ…์ŠคํŠธ ์ž๋™ ํฌํ•จ

  • ๋กœ๊ทธ ๋ฐœ์ƒ ์‹œ๊ฐ„(timestamp)์ด ์ž๋™์œผ๋กœ ๊ธฐ๋ก๋œ๋‹ค.
  • ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ ์ถ”์  ์ปจํ…์ŠคํŠธ ์ •๋ณด๊ฐ€ ์ž๋™์œผ๋กœ ํฌํ•จ๋œ๋‹ค.



2๏ธโƒฃ ์š”์ฒญ ์ถ”์ 

๋ถ„์‚ฐ ์ถ”์ 

  • ์š”์ฒญ๋งˆ๋‹ค ๊ณ ์œ  ์ถ”์  ID(traceId)์™€ ์ŠคํŒฌ ID(spanId)๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • W3C Trace Context ํ˜•์‹(traceparent)์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์™ธ๋ถ€ ์‹œ์Šคํ…œ์˜ traceparent ํ—ค๋”๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ์ปจํ…์ŠคํŠธ๋ฅผ ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

์ปจํ…์ŠคํŠธ ์ „ํŒŒ

  • ๋น„๋™๊ธฐ ์ž‘์—…(Runnable, Callable)์— ์ปจํ…์ŠคํŠธ๋ฅผ ์ „ํŒŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ž์‹ ์ŠคํŒฌ์„ ์ƒ์„ฑํ•˜์—ฌ ๊ณ„์ธต์  ์ถ”์ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ(userId, department, operation ๋“ฑ)์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Baggage๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ๊ฐ„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.



3๏ธโƒฃ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ

์ž๋™ ๋งˆ์Šคํ‚น

  • ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ(rrn)๊ฐ€ ์ž๋™์œผ๋กœ ๋งˆ์Šคํ‚น๋œ๋‹ค.
  • ์‹ ์šฉ์นด๋“œ๋ฒˆํ˜ธ(credit_card)๊ฐ€ ์ž๋™์œผ๋กœ ๋งˆ์Šคํ‚น๋œ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ(password)๊ฐ€ ์ž๋™์œผ๋กœ ๋งˆ์Šคํ‚น๋œ๋‹ค.
  • ์‚ฌํšŒ๋ณด์žฅ๋ฒˆํ˜ธ(ssn)๊ฐ€ ์ž๋™์œผ๋กœ ๋งˆ์Šคํ‚น๋œ๋‹ค.
  • ์„ค์ •์„ ํ†ตํ•ด ๋งˆ์Šคํ‚นํ•  ํ•„๋“œ ํŒจํ„ด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งˆ์Šคํ‚น ํ™•์žฅ

  • MaskingStrategy SPI๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ปค์Šคํ…€ ๋งˆ์Šคํ‚น ํŒจํ„ด์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.



4๏ธโƒฃ ๋กœ๊ทธ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ

์ธํ„ฐ์…‰ํ„ฐ

  • ๋กœ๊ทธ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฐ ๋‹จ๊ณ„์— ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ธํ„ฐ์…‰ํ„ฐ๋กœ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋ง(์‚ญ์ œ)ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ธํ„ฐ์…‰ํ„ฐ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ณ„(PRE_PROCESS, POST_MASK, POST_ENCRYPT ๋“ฑ) ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.



5๏ธโƒฃ ๋ณด์•ˆ (์„ค์ •์œผ๋กœ ํ™œ์„ฑํ™”)

์•”ํ˜ธํ™”

  • ์•”ํ˜ธํ™” ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • AWS KMS ํ‚ค ID์™€ ๋ฆฌ์ „์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • KMS ์žฅ์•  ์‹œ ํด๋ฐฑ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌด๊ฒฐ์„ฑ

  • ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณด์•ˆ ํ™•์žฅ

  • EncryptionProvider SPI๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ปค์Šคํ…€ KMS๋ฅผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • IntegrityProvider SPI๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ปค์Šคํ…€ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ ๋ฐฉ์‹์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.



6๏ธโƒฃ ์ „์†ก ์„ค์ •

Kafka ์„ค์ •

  • Kafka ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ† ํ”ฝ ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์žฌ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • acks, ๋ฐฐ์น˜ ํฌ๊ธฐ, ์••์ถ• ๋ฐฉ์‹ ๋“ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ฐฑ ์„ค์ •

  • ํด๋ฐฑ ์ €์žฅ์†Œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ „์†ก ํ™•์žฅ

  • TransportProvider SPI๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ปค์Šคํ…€ ์ „์†ก ๋Œ€์ƒ(Elasticsearch ๋“ฑ)์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.



7๏ธโƒฃ ์„ฑ๋Šฅ ์„ค์ •

์ค‘๋ณต ์ œ๊ฑฐ

  • ์ค‘๋ณต ์ œ๊ฑฐ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ค‘๋ณต ๊ฐ์ง€ ์‹œ๊ฐ„ ๋ฒ”์œ„(window)๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์†๋„ ์ œํ•œ

  • ์ดˆ๋‹น ์ „์†ก๋Ÿ‰ ์ œํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค

  • ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค ์‹คํŒจ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฒ„ํผ

  • ๋น„๋™๊ธฐ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.



8๏ธโƒฃ ๋™์ž‘ ๋ชจ๋“œ

๋กœ๊น… ๋ชจ๋“œ

  • SYNC: ๋™๊ธฐ ๋ชจ๋“œ (ํ˜ธ์ถœ ์Šค๋ ˆ๋“œ์—์„œ ์ฆ‰์‹œ ์ฒ˜๋ฆฌ)
  • ASYNC: ๋น„๋™๊ธฐ ๋ชจ๋“œ (Virtual Thread ์‚ฌ์šฉ, ๊ธฐ๋ณธ๊ฐ’)
  • FALLBACK: ํด๋ฐฑ ๋ชจ๋“œ (๋กœ์ปฌ ํŒŒ์ผ๋งŒ ์‚ฌ์šฉ)



9๏ธโƒฃ Spring Boot ์—ฐ๋™

์ž๋™ ์„ค์ •

  • secure-hr.logging.enabled๋กœ SDK ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • application.yml/properties๋กœ ๋ชจ๋“  ์„ค์ •์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.



๐Ÿ”Ÿ ํ…Œ์ŠคํŠธ ์ง€์›

LogAssert ์œ ํ‹ธ๋ฆฌํ‹ฐ

  • AssertJ ์Šคํƒ€์ผ๋กœ ๋กœ๊ทธ ์—”ํŠธ๋ฆฌ๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋งˆ์Šคํ‚น ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์•”ํ˜ธํ™” ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ถ”์  ID, ์ปจํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฌด๊ฒฐ์„ฑ ํ•ด์‹œ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿš› KBS (Blackbox Logging SDK)


๐Ÿƒโ€โžก๏ธ๐Ÿƒ Rules


โš™๏ธ Configuration


๐Ÿงฑ Tech Report

  • ๐Ÿ’ก ๋ฌธ์„œ

Clone this wiki locally