log4j, 유스케이스 다이어그램/명세서

dev_hnbm·2023년 11월 28일
0

대덕인재개발원

목록 보기
21/30

🍇 Log4J

자바 기반 로깅 유틸리티로, 애플리케이션에서 로그문을 다양한 방법으로 출력할 수 있게 해준다. 출력 대상에는 콘솔, 파일, 원격 서버 등이 있으며 로깅 레벨이나 출력 형식 등을 유연하게 구성하게 하는 인프라를 제공한다.
대부분의 로깅 라이브러리들은 Log4J를 기반으로 되어있기 때문에 이 라이브러리 사용 방법을 알면 다른 라이브러리도 쉽게 이해할 수 있다.

주요 구성 요소

  1. Logger
    로깅 정보를 캡처함으로 가장 중요한 역할 담당이다. 로그 레벨을 관리하고 있어서 출력 여부, 범위 등을 결정할 수 있고 캡처한 정보를 Appender에게 전달한다.
  2. Appender
    Logger에게 받은 정보를 다양한 목적지로 출력한다. 클래스명이 ConsoleAppender, FileAppender, JDBCAppender 등으로 되어 있어서 출력 위치를 예상할 수 있다.
  3. Logger Level
    로그 메시지를 다양한 레벨로 분류하여 각 레벨의 심각도를 나타내며, 설정된 로그 레벨보다 심각도가 낮은 메시지는 출력되지 않는다.
    TRACE: 모두 출력
    DEBUG: 디버그 용도
    INFO: 로그인, 상태 변경 등 정보성 메시지를 출력하며 많이 사용함
    WARN: 경고 메시지
    ERROR: 에러 메시지
    FATAL: 힘각한 에러

설정 방법

라이브러리(jar) 설치 → 설정 파일(log4.properties)를 클래스 패스 위치에 생성 → 설정 파일의 설정 항목을 통해 레벨 및 처리 정보 설정
MyBatis의 로그는 내부적으로 Commons Logging, SLF4J, Log4j 등 로깅 시스템을 지원하기 때문에 라이브러리만 추가해 주면 자동으로 확인할 수 있다.

설정 파일

# Root logger option

# 1. 로그 출력 Level은 INFO부터 할것임.
# 2. rootLogger 에 사용할 로깅 Appender로 stdout이라는것과 
#    logfile이라는 것 두가지를 사용하겠다
#log4j.rootLogger=debug, stdout, logfile
log4j.rootLogger=trace, stdout

# Direct log messages to stdout
# ConversionPattern은 로그가 어떠한 형식으로 출력될것인지 
# 그 포맷을 정의하는 것.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p (%C{2}:%L) - %m%n

# Direct log message to log file
# logfile이라는 appender는 로그를 파일로 출력해주는 놈인데, 
# 파일path를 정의 할 수 있다.
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.File=D:/application.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %5p (%C{2} - %M:%L) - %m%n
log4j.appender.logfile.Append=true




🍎 유스케이스 다이어그램

기능이 여러개 있을 때 서로 연관된 상황을 글로 표현하는 대신 직관적으로 볼 수 있게 해주는 도구이다.
usecase: 시스템이 제공하는 기능, 게시글 구현시 추가, 삭제 등 기능 하나하나가 유스케이스
actor: 유스케이스를 사용하는 주체이며 보통 사람이거나 외부 시스템
association: 유스케이스와 액터 간 관계 선
directed association: 종속, 포함 등 관계

예제

인터넷 쇼핑몰 시스템
인터넷을 통해 물품을 판매하는 시스템을 구축하고자 한다.
고객은 회원 등록을 통해 본인 정보를 등록하고, ID와 PW를 입력함으로 시스템에 접속할 수 있으며 물품을 구입할 수 있다.
고객이 로그인 및 물품 구입시에는 별도 암호화된 모듈을 통해 본인 확인 절차를 거쳐야 한다.
물품을 구매하여 결제할 때에는 일반 결제와 신용카드 결제가 가능하다.
신용카드를 통해 결제하고자 하는 경우, 협약을 맺은 카드 승인 회사에게 카드 승인을 요청한다.
고객은 구매한 물품의 배송상황을 조회할 수 있으며, 직원도 고객 물품에 대해 배송 추적할 수 있다.





🍑 유스케이스 명세서

유스 케이스 내부에 대한 내용을 기술한다.

예시

유스케이스명: 회원 등록
액터명: 고객 (비회원)
유스케이스 개요 및 설명: 고객이 인터넷 쇼핑몰 시스템을 사용하기 위해 회원가입을 하는 유스케이스
사전 조건: 회원 가입이 되어 있지 않은 상태여야 한다.
[이벤트 흐름]
정상 흐름
1. 회원 등록을 요청한다. (액터)
2. 회원 약관을 보여준다. (시스템)
3. 회원 약관에 동의한다. (액터)
4. 회원 정보 입력 항목들을 보여준다. (시스템)
5. 입력 항목 중 ID를 입력받아 중복 여부 확인을 요청한다. (액터)
6. 기존의 가입 회원인지 ID를 검색하여 확인한다. (시스템)
7. 나머지 입력 항목 (이름, 비밀번호, 전화번호, 주소, 이메일 등..) 을 입력하고 등록 요청을 한다. (액터)
8. 입력된 정보를 확인한다. (시스템)
9. 회원 정보를 저장하고 등록을 완료한다. (시스템)
선택 흐름
3-1. 회원 약관에 동의하지 않으면 회원 가입이 불가하다는 메시지를 출력하고 약관에 동의를 재요청한다.
6-1. 기존에 가입어 있는 회원인 경우 “이미 가입된 회원입니다.” 메시지를 출력한다.
8-1. 회원 정보 중 입력하지 않은 항목이 있는 경우 오류 메시지를 출력하고 재입력을 요청한다.
8-2. 비밀번호는 4-8자리에 해당되지 않으면 오류 메시지를 출력하고 재입력을 요청한다.

0개의 댓글