TIL

[2022.10.18] 자바 공부 19일차

인생은단짠단짠 2022. 10. 18. 21:48

 

오늘 공부한 것

  • 로깅(logging)
    • 시스템 운영에 대해 기록
    • 로그 파일에 기록하는 코드를 추가하여 필요한 정보를 남을 수 있게 함
    • 목적
      • 오류가 발생했을 때 오류에 대한 기록을 남겨 디버깅 하기 위함
      • 디버깅/ 시스템 에러 추적/ 성능/ 이슈 상황을 위해 사용
    • 특징
      • 너무 많은 로그를 남기면 빈번한 파일 IO 발생 (성능 저하)
      • 너무 적은 로그를 남기면 정확한 시스템 상황이나 문제 파악 어려움
      • 보통 log level 중 INFO부터 남김
    • log API 종류
    • java.util.logging API 구조
    • JUL Log Level
      • SEVERE (highest value) - 중대한 문제
      • WARNING - 잠재적인 문제 (경고)
      • INFO - 서버 정보
      • CONFIG - 정적 구성 메시지
      • FINE - 추적 정보
      • FINER - 상당히 상세한 추적 정보
      • FINEST (lowest value) - 매우 상세한 추적 정보
    • JUL Log 출력
      • logger 객체를 생성하여 log를 출력할 수 있다.
    • JUL Log level 설정
    • Customer Logger 정의
  • 단위 테스트
    • 테스트 종류
      • 통합 테스트
      • 단위 테스트
    • 단위테스트란?
      • 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차
      • 모든 함수와 메소드에 대한 테스트 케이스가 통과하는 지 확인하는 절차
      • 해당 부분만 독립적으로 테스트하기 때문에 어떤 코드를 리팩토링하여도 빠르게 문제 여부를 확인
      • 실무에서는 단위 테스트 선호함
      • 요즘 많이 사용되는 TDD (Test-Driven Development, 테스트 주도 개발)에서 사용
    • given - when - then 패턴
      • 1개의 단위 테스트를 3가지 단계로 나누어 처리하는 패턴으로 각각의 단계는 다음을 의미
        • given (준비): 어떠한 데이터가 준비되었을 때
        • when (실행): 어떠한 함수를 실행하면
        • then (검증): 어떠한 결과가 나와야 한다.
    • Junits
      • 자바 단위 테스트를 위한 테스팅 프레임워크
      • 보통 AssertJ랑 같이 사용

느낀점

로깅 파일 남기고 테스트 작성 하는 법에 대해 배웠다. 함수마다 시나리오를 생각하여 예외나 검사사항들을 모두 테스트 하는게 정말 깔끔하고 처음에는 시간이 걸리더라도 나중에는 훨씬 효율적으로 프로젝트 할 수 있는 것 같다.

'TIL' 카테고리의 다른 글

[2022.10.21] jsp - servlet 공부 2일차  (0) 2022.10.21
[2022.10.19] jsp-servlet 공부 1일차  (0) 2022.10.19
[2022.10.18] 자바 공부 18일차  (0) 2022.10.18
[2022.10.14] 자바 공부 17일차  (0) 2022.10.14
[2022.10.13] 자바 공부 16일차  (0) 2022.10.13