๊ทธ๋์ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ log๋ฅผ ์ฐ์ ๋ System.out.println()์ ์ฌ์ฉํ๋ค.
ํ์ฌ์์ ์ฒ์์ผ๋ก ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋๋ log๋ฅผ ์ฐ๊ธฐ ์ํด System.out.println()์ ์ฌ์ฉํ๋๋ฐ, ์ฝ๋๋ฆฌ๋ทฐ์์ ๋ฐ๋ก ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์์๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ์ log๋ฅผ ์ฐ๊ธฐ ์ํด System.out.println()์ ์ง์๋์ด์ผ ํ ๊น๋ฅผ ์ฃผ์ ๋ก ์ ๊ธฐ๋ก ํ๋ค.
์ ํธํ๊ฒ ํ์ค์ถ๋ ฅ์ด ๊ฐ๋ฅํ System.out.println() ๋ฉ์๋๋ฅผ ๋๊ณ ๋ก๊น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น?
๊ทธ๋ฆฌ๊ณ ์ System.out.println()์ ์ง์ํด์ผํ๋ ๊ฒ์ผ๊น?
System.out.println()์ ์ฌ์ฉํ ๋์ ๋ฌธ์ ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ํ๋ฐ๋๋ค.
2. ์๋ฌ ๋ฐ์ ์ ์ถ์ ํ ์ ์๋ ์ต์ํ์ ์ ๋ณด๊ฐ ๋จ์ง ์๋๋ค.
3. ๋ก๊ทธ ์ถ๋ ฅ ๋ ๋ฒจ์ ์ฌ์ฉํ ์ ์๋ค.
4. ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ ์ ์๋ค.
1. ํ๋ฐ๋๋ค.
System.out.println()์ ๋ก๊ทธ๊ฐ ํ์ค ์ถ๋ ฅ์ผ๋ก ์ถ๋ ฅ๋๋ค. ์ฆ, ํ์ผ๋ก ์ ์ฅ๋์ง ์๊ณ ํ๋ฐ๋๋ค.
=> ๋ก๊ทธ๋ ์๋ฌ๊ฐ ๋ฐ์ํ ์ํฉ์ ๊ธฐ๋กํ๊ณ , ์ถํ ํ์ธํ์ฌ ๋ฌธ์ ๋ฅผ ์ง๋จํ์ฌ ๊ณ ์น๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
๋๋ฌธ์ ํ์ค ์ถ๋ ฅ์ผ๋ก ํ ๋ฒ ์ถ๋ ฅ๋๊ณ ์ด๋์๋ ์ ์ฅ๋์ง ์์ผ๋ฉด ๋ก๊ทธ์ ์ ์ญํ ์ ํ ์ ์๋ค.
"๋ก๊ทธ๋ ๋ฐ์ดํฐ๋ ์ค์ ๋ก ๊ธฐ๋ก๋์ด์ผ ํ์ง๋ง, System.out.println()์ ๊ธฐ๋ก๋์ง ์๊ณ ํ๋ฐ๋๋ค."
2. ์๋ฌ ๋ฐ์ ์ ์ถ์ ํ ์ ์๋ ์ต์ํ์ ์ ๋ณด๊ฐ ๋จ์ง ์๋๋ค.
System.out.println()์ ์ธ์๋ก ์ ๋ฌํ ๋ฌธ์์ด๋ง์ ์ถ๋ ฅํ๋ค.
๋๋ฌธ์ ํ์ํ ์ต์ํ์ ์ ๋ณด์ธ ๋ฌธ์ ๋ฐ์์ผ, ์๊ฐ, ์์ค, ๋ฐ์์์น์ ๋ํด์๋ ๊ธฐ๋ก๋์ง ์๋๋ค.
=> ๋ฌผ๋ก ์ด๋ฐ ์ ๋ณด๋ ์ธ์๋ก ์ ๋ฌํ ์ ์๋ค. ํ์ง๋ง ๋งค๋ฒ ๊ทธ๋ฐ ์ ๋ณด๋ฅผ ์ผ์ผ์ด ๋จ๊ธฐ๊ธฐ์๋ ๋ฒ๊ฑฐ๋กญ๋ค.
3. ๋ก๊ทธ ์ถ๋ ฅ ๋ ๋ฒจ์ ์ฌ์ฉํ ์ ์๋ค.
๋ก์ปฌ์์ ๊ฐ๋ฐํ ๋์๋ ๋๋ฒ๊น ์ ์ํ ์์ธํ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋์ด ํ์ธํ ์ ์์ด์ผ ํ๋ค.
ํ์ง๋ง ์์ฉ์์ ๋์ํ๋ ์ฝ๋๋ ์๋ฌ๊ฐ ๋ฐ์ํ ๋ ๋ฌธ์ ๋ฅผ ์ง๋จํ ์ ์๋ ์ ๋ณด๋ง์ ๋จ๊ฒจ์ผ ํ๋ค.
๊ฐ๋ฐ ์์๋ง ์ฌ์ฉ๋๋ ์ ๋ณด์ ๋ฌธ์ ์ํฉ์ ๋ํ ์ ๋ณด๊ฐ ํจ๊ป ๋ก๊น ๋๋ค๋ฉด,
๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ ์ ์ค์ํ ์ ๋ณด๋ฅผ ์ป๊ธฐ ํ๋ค ๋ฟ๋๋ฌ,
๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ก๊ทธ๋ก ๋จ๊ธธ ์๋ ์๋ค.
๋ํ ์๋ฏธ ์๋ ๋ก๊ทธ๊ฐ ์์ฌ ์๋ฒ ์ฉ๋์ ์ฐจ์งํ ์๋ ์๋ค.
๋ฐ๋ผ์ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๊ฒฝ์ ๋ง๊ฒ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋ ์ ์๋๋ก ๋ก๊ทธ ์ถ๋ ฅ ๋ ๋ฒจ์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ง์ด ์ฌ์ฉ๋๋ Logback์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ TRACE, DEBUG, INFO, WARN, ERROR, FATAL์ ์ ๊ณตํ๋ค.
ํ์ง๋ง System.out.println()์ ์ ๊ณตํ์ง ์๋๋ค. ์ด๋ค ํ๊ฒฝ์์๋ ๋์ผํ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋๋ค.
ํ๋ก๋์ ์์ ์ด๋ฐ ๋ก๊ทธ๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด ์ผ์ผ์ด ์ ๊ฑฐ, ์ฃผ์, ๋ณ๋ ์กฐ๊ฑด๋ฌธ ๋ฑ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ ํด์ผํ๋ค.
4. ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ ์ ์๋ค.
System.out.println()์ ๊ตฌํ์ ์ดํด๋ณด๋ฉด,
synchronized๊ฐ ๋ถ์ด์๋ค. => ๋๊ธฐ์ด๋ฉฐ ์์ฐจ์ ์ผ๋ก ์งํ๋๋ ๋ฐฉ์(์ง๋ ฌ)์ด๋ค.
์ด ๋ newLine() ๋ฉ์๋๋ ์๊ณ์์ญ(critical section)์ด ๋๋ค.
๋ฉํฐ ์ฐ๋ ๋ ํ๊ฒฝ์์ A์ฐ๋ ๋๊ฐ newLine() ๋ฉ์๋๋ฅผ ์คํํ๋ฉด, ๋ฉ์๋๋ ์ ๊ธฐ๊ฒ ๋๋ค.
๋ค๋ฅธ ์ฐ๋ ๋๋ A์ฐ๋ ๋๊ฐ ๋ชจ๋ ์ฌ์ฉํ๊ณ ์ ๊ธ์ ํ์ด์ค ๋ค์์์ผ newLine()๋ฉ์๋๋ฅผ ์คํํ ์ ์๋ค.
์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
(์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ ๋, ์ฌ์ฉํ ์ ์๋ System.out.println()์ด 1๊ฐ ๋ฐ์ ์๋ ๊ฒ์.)
Spring์ ์คํํ๋ Tomcat์ ๋ฉํฐ์ฐ๋ ๋๋ก ๋์ํ๋ค.
์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ฐ๋ ๋ ํ์์ ์ฐ๋ ๋๋ฅผ ํ๋ ๊ฐ์ ธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
System.out.println()์ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ์ฌ์ฉํ๋ฉด ๊ทธ๋งํผ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๊ณ ์ฒ๋ฆฌ๊ฐ ๋๋ ค์ง๋ค.
๋ฐ๋ผ์ ์ค์ ์์ฉ์์ ์๋ํ๋ ์ฝ๋์์๋ System.out.println()์ ์ ๋ ์ฌ์ฉํด์๋ ์๋๋ค.
'Web > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Batch] 1. ์คํ๋ง ๋ฐฐ์น(Spring Batch)๋? (0) | 2023.11.26 |
---|---|
[SpringBoot] Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.2 ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2023.08.20 |
[Spring] Mybatis๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ๊ตฌํํ๊ธฐ (0) | 2022.10.23 |
[Spring] Mybatis ์ฐ๋ํ๊ธฐ (0) | 2022.10.23 |
[Spring] SpringFramework ๊ฐ๋ ์ ๋ฆฌ - 2 (0) | 2022.10.19 |