highJAVA

log4J, 유즈케이스다이어그램

unemo 2020. 12. 3. 17:15
반응형

ibatis를 활용하면 jdbc코딩이 쉬워진다

 

 

 

 

Log4j

로그는 기록이다

필요한 정보들을 로깅을 남겨줄떄 사용할 프레임워크

로거 : 로깅하는넘.. 로그를 열심히 출력하는넘

어펜더 : syso으로 남겻던 로그보다 장점인넘.. 어펜더에 콘솔어펜더를 붙이면 콘솔에 로그를ㅇ 열심히써줌

근데 메일에다가도 로그를 남기고싶어 smtp어펜더를, DB에 정리해놓고싶으면 JDBC어펜더를 쓰면 됨

동시에 여러개를 쓸수도잇음

레이아웃 : 전체적인 구성

발생한 시간, 클래스이름, 메서드 줄번호 등 포맷을 정해서 찍을수잇음

 

로그레벨

로그를 남길때 레벨이라는 개념을 넣었따.

로그를 남겨주는 로거들에 각각 레벨을 세팅해놓고

 

 

왜 이렇게 관리?

레벨적용해서 로그찍어놓으면

나중에 info레벨까지만 로그보고싶을때  debug레벨은 안보고 info이상의 로그만 볼수있음

얘도 프레임워크니까 jar파일이 먼저임

 

 

 

 

 

설정파일

 

 

두개 다 같은거임 두형ㅅ식 모두지원하므로 하나만 넣으면 된다

 

 

 

 

 

 

rootLogger : 모든 로거의 부모

로거를 계층형개념으로 관리함. 왜 계층형으로 관리할까?  내가 어떤 로거를 에러라는 로그레벨로 하고싶음

그러면 그 로거는 에러보다 낮은 로거는 안보겠다는 거임 그럼 그 로거 아래계층놈들도 다 그 설정을 물려받는거임

root로거 (맨위엣놈)을 에러레벨로 했지만 그 아래아래 놈하나만 디버그로 해놓으면 그 아래아랫놈 밑의애들은 이버그가됨

stdout는 어펜더의 이름을 준거임

log4j.appender의 이름을 stdout은 어떤걸쓸지 org.!~~~console어펜더 쓸거야

결국 syso처럼 콘솔에다가 찍겠따는 의미

stout의 타겟이 어디냐? system..out

레이아웃의 종류

레이아웃을 통해서 화면에 찍는 로그모양을 결정해줄수잇음 레이아웃이 사용하는 클래스는

parrterLayout

pattern값에 포맷을 %5어쩌구 만들어주면됨 p : 우선순위 를 5글자 찍는다는 뜻

.%M < 메서드 %L : line %m:로그메세지 %n다음줄

 

 

 

만만한 인서트구문을 건드려보자

 

 

 

실행해도 콘솔창에 안나옴

 

 

아까 여기에 error수준만 본다고 해놨기떄문에 안보이는거임

debug로 바꿔보자

 

 

 

 

 

이 포맷대로 나온거임

워닝이었던 리절트만 보고싶으면

 

 

 

로그레벨이 warn보다 심각한 애들만 나옴 (debug애들은 무시해보림)


루트로그하면 기본 디폴트값 설정이되는데

디폴트는 그거지만 그 로그만큼은 이 레벨로 별도로 지정하고싶다 이거할거임

 

 

 

 

 

 

 

 

 

debug, warn 나왔음

 

우리가 개발할때 오픈소스를 쓰게되는데

걔들이 로깅프레임을 이용해서 쓰고잇음

아이바티스도 내부적으로  log4j를 통해서 log를 남기고있음

 

아이바티스 프로젝트도 바꿔보자

jar랑 설정파일 넣고

 

 

 

 

 

이렇게 하구 실행하면

 

 

 

 

 

 

 

 

아이바티스는 그냥 로그4j 깔아서 쓰기


클래스다이어그램 및 유즈케이스다이어그램

유즈케이스

중프에 들어가면 산출물이 20여개...

그중에 유즈케이스 명세서, 유즈케이스 다이어그램도 작성해야함

만들 프로그램에 대해서 분석을 해야함 뭘만들어야할지.. 분석전에

고객이 원하는 기능을 먼저 정의를 하고 해야함 내가 어디까지만들어주면되는지

그때 그런 분석같은걸 해서 어던식으로 구현할지 얘기하는데..

내가 만들라고하는 시스템에 대한 사용방식, 사용예가 유즈케이스

내가만들 시스템을 사용작 ㅏ어던식으로 사용하게될지 사용하는 방식,예, 시나리오

사용에대한 예를 정리해놓은...

중요한 문서는 아님 당장뭘만들어야하는데 만들어줘야할 기능에대한..회의를 통해서 분석,정리해놓은것 > 유즈케이스명세서

유즈케이스와 상호작용을 하는 액터(어떤 행위를 하는 주체) 를 기술한다

유즈케이스 명세서는 유즈케이스에 관한걸 명세해서 정리해놓은것

유즈케이스 다이어그램은 유즈케이스들을 보기쉽게 볼수잇게 그림(다이어그램)으로 그려놓은것

사람모양이 액터임 사람사이의 동그라미가 유즈케이스

 

 

 

 

 

액터와 유즈케이스 사이의 화살표는 관계를 의미한다.

 

 

 

액터가 사람모양이라고 해서 다 사람은 아님 외부시스템도 액터가 될수있음 기능을 제공해주는애들은 다 액터가될수있음

 

유즈케이스에서 좀 엉려운 부분 : 포함,확장관계

포함관계는 말그대로 include

시스템에서 입금, 출금, 카드판독, 암호확인이라는 유즈케이스잇을때

입금위해서는 반드시 암호확인, 카드판독을 해야한다.

뭘 하기위해서는 뭐랑뭐유즈케이스를 포함해야한다! 단독으론 쓴수없다는 말

즉 카드판독이나 암호확인없이는 입금을 할 수 없다.

 

 

얘랑 대응되는 확장관계 (extend)

결제라는 기능을 쓸때 실시간계좌이체로 해도되고 신용카드 지불로 할수도있음

꼭 정해진 결제방법이있는게아님

유즈케이스명세서의 대안흐름이 있던것처럼

 

 

 

인클루드는 포함하는쪽으로 화살표가 나갔고, 확장은 화살표가 들어옴

<<>> 꺽쇠두개는 스테레오타입이라고 함 이런 문법을...

 

유즈케이스간에는 어쏘시에이션 (관계)를 정의할수없다.

 

 

유즈케이스와 유즈케이스간에 쭉 그어버리면 안됨

포함과 확장관계에서는 유즈케이스ㄱ와 유즈케이스 사이에 선 그을수잇따.

 

 

 

 

 

 

 

 

유즈케이슨느 내가만들 시스템을 기준으로 .. 근디 위에는 관리자가 db나 서버관리하는거을 그렸음

 우리는 이런기능까지는 관심없음 우리는우리가만들 앱의 기능을 명시하면되는거임

 

엑터는 사람일수도 있고 외부시스템일수도잇찌만

개발될 시스템 자체는 액터가 아님

 


 

프로그램을 깔아서 그려보자

 

 

 

 

 

 

 

기본디폴트가 클래스다이어그램임
우측

 

메인더블클릭

 

 

 

 

 

 

 

일반화관계가 만들어졌다

 

어쏘시에이션은 그냥 관계 다이렉트어쏘시에시ㅕㄴ은 더 방향성이 확실한 관계

 

 

 

내일은 클래스다이어그램,배우고 그릴거임

 

 

반응형

'highJAVA' 카테고리의 다른 글

JAVA IO  (0) 2020.12.04
클래스다이어그램  (0) 2020.12.04
Ibatis  (1) 2020.12.02
mvc, singleton  (0) 2020.12.01
Properties ,MVC 패턴  (0) 2020.11.30