라이브러리
- 유저가 라이브러리를 호출하는 방식 (필요시에) ==> "땡겨온다"
- 유저가 실행 흐름 제어 가능
- Gradle은 의존 관계가 있는 라이브러리를 처음부터 함께 다운, 통합 관리 해줌
- 한 라이브러리를 땡겨올 때 연관된 라이브러리 (실행에 필요한 라이브러리들을 자동으로 땡겨옴)
- '땡겨온' 라이브러리들은 External Libraries 에서 확인 가능하다.
- 의존 관계에 있는 라이브러리들 함께 관리해주기 때문에 사용하고자 하는 라이브러리에 필요한 라이브러리들을 자동으로 땡겨온다 (따라서 상당히 많은 라이브러리 존재)
- 좌측하단에 아이콘 클릭 -> gradle 확인 가능 (창 확장/축소)
스프링 부트 라이브러리
- spring-boot-starter-web
- ...-tomcat : 톰켓 라이브러리 (웹서버 ~ 8080으로 띄웠던거)
- 원래는 톰켓 설치하고 직접 설정해야 했지만, 소스라이브러리에 웹 서버가 임베디드됨
- spring-webmvc : 스프링 웹 MVC
- ...-tomcat : 톰켓 라이브러리 (웹서버 ~ 8080으로 띄웠던거)
- spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진 (View)
- spring-boot-starter(공통) : 스프링 부트+ 스프링 코어 + 로깅
- spring-boot (-> spring-core) : 스프링 부트 라이브러리 사용시, 코어까지 다 땡겨서 스프링 관련된 것 다 세팅됨!
- spring-boot-starter-logging(-> logback,slf4j)
- system.out.println 으로 출력하는게 아닌 log를 이용해 출력해 확인해야 함!
- slf4j : 인터페이스
- logback : 실제 로그 출력하는 구현체 중 하나
- logback + slf4j 조합 사용 多
# slf4j: log를 안정성 높고 편리하게 관리하기 위한 logging framework
# logback: 그 slf4j의 구현체
- 테스트 라이브러리 [spring-boot-starter-test]
- junit: 테스트 프레임워크
- mockito : 목 라이브러리
- assertj : 테스트 코드를 좀 더 편리하게 작성하게 도와줌
- spring-test : 스프링 통합 테스트 지원 (junit 테스트시, 스프링과 통합해서 테스트 가능하게 도움)
+
Log, Logging?
Logging : 시스템 동작 시 시스템의 상태, 작동 정보를 시간 흐름에 따라 기록하는 것
⇀ 그 기록이 Log (로그)
- 로깅을 하는 이유
- 소프트웨어의 동작 상태 파악, 문제 발생 시 원인 지점 파악, 해결 가능
- 로깅 사용 방법
- System.out.println() 사용
- logging library 사용
- slf4j
- logging 관련 다양한 라이브러리 ⇀ 하나의 통일된 방식으로 사용 가능하게 함
- 로깅 Facade (구현체에 구애받지 않고 일관된 로깅코드 작성 가능, 구현체 변경시 최소한의 수정으로 교체)
- 로깅에 대한 추상 레이어 제공, 로깅 프레임워크의 인터페이스 역할
- logback
- log4j의 후속 버전 logging 라이브러리
- 빠른 implemen
- 적은 메모리 점유, 일정 기간 지나면 로그파일 자동 삭제 (maxHistory)
- Filtering 옵션 제공 : 사용자별 level 조정 가능
- XML로 logging 설정
- logback 주요 설정 요소
- Appender : 로그 어떤 방식으로 기록할지 설정, 로그 이벤트 write, 로그 메세지가 출력될 대상 결정
- 구현 Class : OutputStreamAppender
- 종류
- ConsoleAppender (콘솔에 로그 기록)
- FileAppender (파일에 로그 기록)
- RollingFileAppender (여러 개의 파일 순회하며 로그 기록)
- SMTPAppender (메일로 로그 기록)
- DBAppender (DB에 로그 기록)
- Layout (Encoder) : 로그 이벤트를 바이트 배열로 변환, 해당 바이트 배열을 OutputStream에 씀
- 사용자가 지정한 형식으로 표현될 로그 메시지 변환
- Logger : 실제 로깅을 수행하는 구성요소
- 5가지 level) TRACE < DEBUG < INFO < WARN < ERROR
- Debug, Trace 레벨의 로깅 : 개발 단계에서만 사용, 중요하지 않은 정보는 Debug이하로 설정 (용량)
- 출력할 로그 레벨 조정 가능: 설정한 레벨 이하는 기록 X
- 5가지 level) TRACE < DEBUG < INFO < WARN < ERROR
- Appender : 로그 어떤 방식으로 기록할지 설정, 로그 이벤트 write, 로그 메세지가 출력될 대상 결정
...
Logger logger = LoggerFactory.getLogger(LabApplication.class);
...
logger.info("로깅 발생");
이 경우엔 info레벨 이상, 즉 info, error, warn 레벨의 로그만 출력. 출처: https://livenow14.tistory.com/64 [경험의 연장선:티스토리]
(+) Log Pattern 옵션
'Spring > Spring boot 입문' 카테고리의 다른 글
[스프링 부트] 회원 관리 예제(1)~(3) - 스프링 입문 강의 / 인프런 (0) | 2022.07.30 |
---|---|
[스프링 부트] API - 스프링 입문 강의 / 인프런 (0) | 2022.07.27 |
[스프링 부트] 정적 컨텐츠, MVC와 템플릿 엔진 - 스프링 입문 강의 / 인프런 (0) | 2022.07.24 |
[스프링 부트] View 환경설정, 빌드 후 실행 - 스프링 입문 / 인프런 (0) | 2022.07.20 |
[스프링 부트] 프로젝트 생성 - 스프링 입문 강의 / 인프런 (0) | 2022.07.17 |