Logging
๋ก๊น ์ด๋ ํ๋ก๊ทธ๋จ ์คํ ์ค์ ๋ฐ์ํ๋ ์ค๋ฅ์ ๋ํด ๋๋ฒ๊น ํ๊ฑฐ๋ ์ด์ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ํฐ๋ง ํ๊ธฐ ์ํด ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๋ ๊ฒ. ์ฝ์์ ์ถ๋ ฅํ๊ฑฐ๋ ํ์ผ ๋ฑ์ ์ ๋ฌํ์ฌ ์ ์ฅํ๋ ํ์
SLF4J
ํ ๋ค์์ Simple Logging Facade for Java (SLF4J) ๋ผ๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ๋ก๊น ์ ๋ํ ์ถ์ํ(์ธํฐํ์ด์ค) ์ญํ ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด๋ฆ์์๋ถํฐ Facade๊ฐ ๋ค์ด๊ฐ์๋ค. ์ฆ, Facade๋ฅผ ํตํด์ ํด๋ผ์ด์ธํธ ์ฝ๋์์๋ ์ค์ ๊ตฌํ์ ๋ชจ๋ฅด๊ณ ๋ก๊น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
Facade Pattern
Facade๋ ๊ฑด์ถ์์ ๊ฑด๋ฌผ ์ธ๊ด์ด๋ผ๋ ๋ป์ผ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด์ด๋ค. ์ด์๊ฐ์ด ๋ด๋ถ์ ์ผ๋ก ๋ณต์กํ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ฃผ๋ ์์ ์์ค์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ ๊ฐ์ฒด๊ฐ ์๋ ํจํด์ด๋ค.
์ด์ ๊ฐ์ด ์ฝ๋ ์์์๋ ๋ณต์กํ ์๋ธ์์คํ ์ ์ธ๋ถ์์ ๊ฐ์ธ๊ณ ์๋ ๋๋์ด๋ค. ๊ณ์ข๋ฅผ ๋ถ์ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋, ๋ฐ๋ก ๊ธฐ๋ฅ์ ๊ตฌํํ์ง ์๊ณ , anylze()๋ผ๋ ๋ฉ์๋๋ฅผ ํตํด์ ์คํ์ ์์ผฐ์๋ค. ์ด๋ analyze๊ฐ ์ ๋ฉด์์ ์ธํฐํ์ด์ค ์ญํ ์ ํด์ฃผ์๋ค. ์ค์ analyze() ๋ด๋ถ ๋ก์ง์์ ํ์๊ฐ ์คํ๋๊ณ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฑ์ ํ๋ ๋ก์ง์ด ๋์๊ฐ๊ฒ ๋์๋ค.
์ด ํจํด์ ํตํด ๋ณต์ก์ฑ์ ์ค์ด๊ณ ์์กด์ฑ์ ๋ฎ์ถ ์ ์๋ค.
SLF4J์์ ์ฌ์ฉ๋๋ Facade Pattern
SLF4J์์ facade์ญํ ์ ํ๋ ์ธํฐํ์ด์ค๋ ๋ฌด์์ผ๊น? ๋ฐ๋ก logger ๊ฐ์ฒด์ด๋ค. ๊ทธ๋์ ๊ตฌํ๋ถ์ ์๊ด์์ด logging ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ์ค์ ๋ก SLF4J๋ logback ๋ฑ ํจํค์ง ์์ ๋ค๋ฅธ ๋ชจ๋์ ํฌํจํ๊ณ ์๋ค.

Client ํด๋์ค๋ Subsystem์ธ ํ์ ๊ฐ์ฒด์ ์ง์ ์ ๊ทผํ์ง ์๊ณ Facade ๊ฐ์ฒด์๋ง ์ ๊ทผํ๋ค. Client๋ Facade ์ธํฐํ์ด์ค์๋ง ์์กดํ๊ณ ๋ณต์กํ ํ์ ์์คํ ๊ณผ๋ ๋ ๋ฆฝ์ ์ด๋ค.

์ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ํตํด์ ๋ฐํ์์ Client ์ Facade์ ์ํธ์์ฉ์ ๋ณผ ์ ์๋ค.
SLF4J ๋์๊ณผ์
- SLF4J API๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊น ์ฝ๋๋ฅผ ์์ฑํ๋ค
- ๋ฐฐํฌํ ๋, ๋ฐ์ธ๋ฉ ๋ ๋ก๊น ํ๋ ์์ํฌ๊ฐ ์ค์ ๋ก๊น ์ฝ๋๋ฅผ ์ํํ๋ค.
์ฐธ๊ณ ์๋ฃ
Facade pattern - Wikipedia
From Wikipedia, the free encyclopedia Software design pattern The facade pattern (also spelled faรงade) is a software-design pattern commonly used in object-oriented programming. Analogous to a facade in architecture, a facade is an object that serves as a
en.wikipedia.org
SLF4J - Wikipedia
From Wikipedia, the free encyclopedia Simple Logging Facade for Java (SLF4J) provides a Java logging API by means of a simple facade pattern. The underlying logging backend is determined at runtime by adding the desired binding to the classpath and may be
en.wikipedia.org
'๐งProgramming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Servlet (0) | 2024.01.19 |
---|---|
Java๊ฐ ํ์ผ์ ์ฝ๋๋ก ํ๋ ๋ฒ (0) | 2024.01.14 |
React | export์ export default์ ์ฐจ์ด (0) | 2023.08.12 |
OCP (0) | 2022.02.21 |
Recoil | Selector (0) | 2021.12.01 |