고급자바

김강산·2022년 8월 16일
0

고급JAVA

목록 보기
8/15

mapper 를 사용해서 xml을 설정해놓아야
sql에서 정보를 찾을 수 있다

클래스 다이어그램

* UML(Unified Modeling Language)이란

시스템을 모델로 표현해주는 대표적인 모델링 언어

* UML 다이어그램의 종류

구조 다이어그램(Structure Diagram)
클래스 다이어그램, 객체 다이어그램, 복합체 구조 다이어그램, 배치 다이어그램, 컴포넌트 	  
다이어그램, 패키지 다이어그램
행위 다이어그램(Behavior Diagram)
활동 다이어그램, 상태 머신 다이어그램, 유즈 케이스 다이어그램, 상호작용 다이어그램

클래스 다이어그램이란

시간에 따라 변하지 않는 시스쳄의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램

  • 목적 : 시스템을 구성하는 클래스들 사이의 관계를 표현한다.

클래스

  • 클래스(Class)란
    1. 동일한 속성과 행위를 수행하는 객체의 집합
    1. 객체를 생성하는 설계도
    • 즉, 클래스는 공통의 속성과 책임을 갖는 객체들의 집합이자 실제 객체를 생성하는
      설계도이다.
  • 클래스는 "변화의 기본 단위"
    * 디자인 패턴을 제대로 이해하려면 만들어진 프로그램을 흔들어보고 어떤 것이 변화
    되는지를 잘 살펴봐야 한다.
  • UML 클래스의 표현
    * 가장 윗부분 : 클래스 이름
    • 중간 부분 : 속성(클래스의 특징)
    • 마지막 부분 : 연산(클래스가 수핸하는 책임)

      * 경우에 따라 속성 부분과 연산 부분은 생략할 수 있다.
    • 속성과 연산의 가시화를 정의
      • UML에서는 접근제어자를 사용해 나타낸다.

        • * 분석 단계와 설계 단계에서의 클래스 다이어그램

관계

  • UML에서 제공하는 클래스들 사이의 관계
    *
  1. 연관 관계

    • 한 클래스가 다른 클래스와 연관 관계를 가지면 각 클래스의 객체는 해당 연관 관계에서
      어떤 역할을 수행하게 된다.
      * 두 클래스 사이의 연관 관계가 명확한 경우에는 연관 관계 이름을 사용하지 않아도
      된다.
      • 역할 이름은 실제 프로그램을 구현할 때 클래스의 객체들이 서로를 참조할 수 있는
        속성의 이름으로 활용할 수 있다.
      • 연관 관계는 방향성을 가질 수 있따. 양방향을 실선으로, 단방향을 화살표로 표시 한다.

  2. 일반화 관계
    한 클래스가 다른 클래스를 포함하는 상위 개념일 대 두 클래스 사이에는 일반화 관계가
    존재한다.
    객체지향 개념에서는 일반화 관계를 상속 솬계("is a kind of"관계)라고 한다.


  3. 집합 관계

    • UML 연관 관계의 특별 경우로 전체와 부분의 관계를 명환하게 명시하고자할 때 사용
    1. 집약 관계(aggregation)
    2. 합성 관계(composition)
  4. 의존 관계

    • 일반적으로 한 클래스가 다른 클래스를 사용하는 경우
      1. 클래스의 속성("멤버 변수")에서 참조할 때
      1. 연산의 "인자"(참조값)로 사용된 때
      2. 메서드 내부의 "지역 객체"로 참조될 때
      • 1번 : 연관 관계 / 2,3번 : 의존 관계
    • 연관 관계와 의존 관계의 차이

  5. 인터페이스와 실체화 관계

    • 인터페이스란
      * 책임이다.
      • 어떤 객체의 책임이란 객체가 해야 하는 일 또는 객체가 할 수 있는 일
      • 즉, 객체가 외부에서 제공하는 서비스나 기능은 객체가 수행하는 책임으로 본다.
      • 어떤 공통되는 능력이 있는 것들을 대표하는 관점
    • UML에서의 인터페이스 표현
      인터페이스 : 클래스에 사용하는 사각형을 그대로 사용하고 인터페이스 이름 위에
      스테레오 타입으로 interface 표시
      인터페이스 관계 : 빈 삼각형과 점선을 사용
      *
    • 객체지향 개념에서는 실체화 관계를 "can do this" 관계라고 한다.
      * 일반화 관계(상속 관계) : "is a kind of" 관계

static 변수로 바꾸고 싶을땐

ownerScope를 CLASSIFIER로 바꿔준다

Log4J

정의
Log4J는 JAVA를 위한 신뢰할만한 빠르고 유연한 로깅 프레임워크

WHY Logging?
로그메시지를 소스코드안에 삽입하는 것은 디버깅을 위한 가장 단순 무식한 로깅 방법이다
별도의 디버깅툴이 제공되지 않는다면 이방법이 최선의 방법일 수도 있다

WHY Log4J?
Log4J를 이용하면, 프로그램 실행시, 실행코드의 수정없이 설정파일을 통해서 로깅작업을
컨트롤 할 수 있다. Log4J의 특별한 기능중 하나는 로거의 상속 개념의 사용이다.
Logger 계층구조를 이용하면 어떤 로그문을 출력할지 상세하게 컨트롤하기가 무척 쉬워진다.

Log4J 주요 구성 요소

  • Loggers : 로깅 정보를 캡처
  • appenders : 다양한 목적지로 로깅정보를 출력
    ConsoleAppender, FileAppender, JDBCAppender,
    JMSAppender, SMTPAppender, SocketAppender,
    SyslogAppender
  • Layouts : 로깅 정보를 위한 다양한 출력포맷 구성
    Lof4J 로그레벨

log4j 장점

openSource에 많으사람들이 log4j로 프로그램을 만들기 때문에 가져와서 사용할 수 있다

0개의 댓글