728x90
์ค๋ ๊ณต๋ถํ ๋ด์ฉ
- ์น MVC ๊ฐ์ ๋ฃ๊ธฐ(๋๊ฐ ๋ฃ๊ณ ๋๊น)
- AOP ๊ฐ์ ๋ฃ๊ธฐ(๋์ ํ๋ก์๊น์ง)
- ๋ก๊ทธ ๊ณต๋ถ(์ค์ )ํ๊ธฐ
- ์คํ๋ง ์ด๊ฒ์ ๊ฒ ์ฝ๋ ๊น๋ณด๊ธฐ..
๐ญ ๋๋ ์ & ๋ฐฐ์ด ์
- ํ๋ก์๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊น๋จน์์๋๋ฐ, ๊ฐ์๋ฅผ ๋ค์ผ๋ ์ด์ ์ ๋ฐ์ํ๋ ์ค๋ฅ๋ค(ํ๋๊ฐ Null)์ด ์ ๋ฐ์ํ๋์ง ์ ๊ฒ ๊ฐ์๋ค.
- ํ๋ฃจ์ 1/3์ ์คํ๋ง ์ฝ๋ ๊น๋ณด๋๋ฐ๋ง ์ผ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ ์ง๋ง ๊ธฐ์ต๋ ์ ์๋๊ณ , ๋ญ๊ฐ ์ฝ์งํ ๋๋.
- ์ค๋์ ๊ฑฐ์ ๋ก๊ทธ ๊ธฐ๋ฅ๋ง ๊ณต๋ถํ๋๊ฒ ๊ฐ๋ค. ์๋๋ ์ค๋ ๊ฒฐ๊ตญ ์ค์ ํด๋ฒ๋ฆฐ ๋ก๊ทธ ์ค์ ์ด๋ค.
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 60์ด๋ง๋ค ์ค์ ํ์ผ์ ๋ณ๊ฒฝ์ ํ์ธ ํ์ฌ ๋ณ๊ฒฝ์ ๊ฐฑ์ -->
<configuration scan="true" scanPeriod="60 seconds">
<!-- ํ์ผ ํจํด ์ ์ [Define File Pattern] -->
<property name="LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n"/>
<property name="FILE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID} --- [%15.15t] %-40.40logger{39}: %m%n"/>
<!-- profile ๋ณ ์ค์ -->
<springProfile name="local">
<property name="LOG_PATH" value="logs/local"/>
<property name="LOG_FILE_NAME" value="local_log"/>
<property name="ERR_LOG_FILE_NAME" value="local_error_log"/>
<property name="ERR_LOG_PATH" value="logs/local/error"/>
</springProfile>
<springProfile name="dev">
<property name="LOG_PATH" value="logs/dev"/>
<property name="LOG_FILE_NAME" value="dev_log"/>
<property name="ERR_LOG_FILE_NAME" value="dev_error_log"/>
<property name="ERR_LOG_PATH" value="logs/dev/error"/>
</springProfile>
<springProfile name="prod">
<property name="LOG_PATH" value="logs/prod"/>
<property name="LOG_FILE_NAME" value="prod_log"/>
<property name="ERR_LOG_FILE_NAME" value="prod_error_log"/>
<property name="ERR_LOG_PATH" value="logs/prod/error"/>
</springProfile>
<!-- console log ์ค์ -->
<!-- https://rutgo-letsgo.tistory.com/118 ์ฐธ๊ณ -->
<springProfile name="console-logging">
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
</springProfile>
<!-- error log ์ค์ -->
<springProfile name="error-logging">
<!-- RollingFileAppender : ํ์ผ์ ๋ถํ ํ์ฌ ์ฒ๋ฆฌ -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_PATTERN}</pattern>
</encoder>
<!-- TimeBasedRollingPolicy : ์๊ฐ(์์ผ)๋ณ๋ก ํ์ผ ๊ด๋ฆฌ -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${ERR_LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.zip</fileNamePattern>
<!-- timeBasedFileNamingAndTriggeringPolicy : ํ์ผ ์ฉ๋ ์ค์ , ์ด๊ณผํ๋ฉด ๋ค์ ํ์ผ๋ก -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
</springProfile>
<!-- file log ์ค์ -->
<springProfile name="file-logging">
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>NEUTRAL</onMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>10</maxHistory>
</rollingPolicy>
</appender>
</springProfile>
<!-- profile ๋ณ log ์ค์ -->
<root>
<springProfile name="console-logging">
<appender-ref ref="CONSOLE"/>
</springProfile>
<springProfile name="file-logging">
<appender-ref ref="FILE"/>
</springProfile>
<springProfile name="error-logging">
<appender-ref ref="ERROR"/>
</springProfile>
</root>
</configuration>
<!--https://frozenpond.tistory.com/87?category=1175501 -->
<!--https://goddaehee.tistory.com/206 -->
<!--https://luvstudy.tistory.com/133 -->
<!--https://yjh5369.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-Spring-Boot-%EB%A1%9C%EA%B7%B8-%EC%84%A4%EC%A0%95-Logback -->
<!--https://loosie.tistory.com/829 -->
<!--https://rutgo-letsgo.tistory.com/118 -->
<!-- ๋ก๊ทธ๋ณ ํ ํ์ผ์ ๋๊ณ ์ค์ https://rutgo-letsgo.tistory.com/118 ์ฐธ๊ณ -->
<!--Logback - 7. Filters https://ckddn9496.tistory.com/89 -->
<!--Logback ํํ์ด์ง https://logback.qos.ch/manual/filters.html -->
application.yml
spring:
profiles:
group:
local:
- "console-logging"
- "file-logging"
- "error-logging"
dev:
- "console-logging"
- "file-logging"
- "error-logging"
prod:
- "file-logging"
- "error-logging"
#https://theheydaze.tistory.com/512
application-local(dev, prod).yml
logging:
level:
root: info
๋ก๊ทธ ๊ด๋ จ ์ฐธ๊ณ ๋งํฌ
https://frozenpond.tistory.com/87?category=1175501
https://goddaehee.tistory.com/206
https://luvstudy.tistory.com/133
https://loosie.tistory.com/829
https://rutgo-letsgo.tistory.com/118
๋ก๊ทธ๋ณ ํ ํ์ผ์ ๋๊ณ ์ค์ https://rutgo-letsgo.tistory.com/118 ์ฐธ๊ณ
Logback - 7. Filters https://ckddn9496.tistory.com/89
Logback ํํ์ด์ง https://logback.qos.ch/manual/filters.html
์คํ๋ง ํ๊ฒฝ์ค์ ๊ด๋ จ
https://theheydaze.tistory.com/512
๐ฅ ๋ด์ผ ๊ณต๋ถํ ๋ด์ฉ
- AOP ๊ฐ์ ๋ง๋ฌด๋ฆฌ
- ๋ฐฐ์น ๊ฐ์ ๋ฃ๊ธฐ
- ํ ๋น์ ์คํ๋ง ์คํฐ๋ ์ค๋น
- ๋ฐฐ์น ๊ฐ์ 1์๊ฐ ๋ฃ๊ธฐ(์ธํ๋ฐ)
- ์ฝํ๋ฆฐ + ์นํ๋ญ์ค ๊ฐ์ 1์๊ฐ ๋ฃ๊ธฐ(ํจ์บ )
- ์คํ๋ง ๊ฐ์ 1์๊ฐ ๋ฃ๊ธฐ(ํจ์บ )
- ํธ๋์ญ์ ๊ณผ ๋ฝ, 2์ฐจ์บ์ ์ฝ๊ณ ์ ๋ฆฌํ๊ธฐ
๐ฅ ์ธ์ ๊ฐ..
- ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ณ ๊ตฌ์ถ ๊ฐ์
- ์คํ๋ง ๋ฐฐ์น ๊ฐ์ ๋ฃ๊ธฐ
- ํจ์คํธ์บ ํผ์ค - ํ ๋ฒ์ ๋๋ด๋ AWS ์ธํ๋ผ ๊ตฌ์ถ๊ณผ DevOps ์ด์ ์ด๊ฒฉ์ฐจ ํจํค์ง Online.
- ํจ์คํธ์บ ํผ์ค - 10๊ฐํ๋ก์ ํธ๋ก์์ฑํ๋๋ฐฑ์๋์น๊ฐ๋ฐ(Java/Spring) ์ด๊ฒฉ์ฐจํจํค์งOnline.
- ํจ์คํธ์บ ํผ์ค - ์ค๋ฌด ํ๋ก์ ํธ๋ก ๋ฐฐ์ฐ๋ Kotlin & Spring : ๋ฆฌํฉํ ๋ง๋ถํฐ ์๋น์ค ๊ตฌํ๊น์ง
- ๋์ปค ๊ฐ์ ๋ฃ๊ธฐ
- ๋ก๊ทธ ๊ด๋ จ ์ ๋ฆฌํ๊ธฐ
- Red-Black Tree
- ์ ๋์จ&ํ์ธ๋ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ๊ธฐ
- ์ดํํฐ๋ธ ์๋ฐ 34
- ๋น ์๋์ & ๋ฆฌํ์๋์ ์ ๋ฆฌํ๊ธฐ
- ์ฝํ๋ฆฐ ์ธ ์ก์ ์ฝ๊ธฐ
- Spring ๊ฒ์ํ ํ๋ก์ ํธ Kotiln์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ
- ์คํ๋ง ๋ถํธ ์ค์ ํ์ฉ ๋ง์คํฐ chap 4
- ํ ๋น๋ ๊ฐ์ ๋ฃ๊ธฐ
์ค๋ ๊ณต๋ถํ ๋ด์ฉ ํฌ์คํ
728x90
'๐ณ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 2022-08-02 (0) | 2022.08.03 |
---|---|
[TIL] 2022-08-01 (0) | 2022.08.01 |
[TIL] 2022-07-30 (0) | 2022.07.31 |
[TIL] 2022-07-29 (0) | 2022.07.30 |
[TIL] 2022-07-28 (0) | 2022.07.29 |