목록분류 전체보기 (181)
초보개발자 긍.응.성
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. Logback Filters Logback Filters는 임의로 생성한 복잡한 필터링 정책을 조립하고 연결합니다. 이번 장에서는 logback-classis에서 사용하는 Logback filter들에 대해 알아보겠습니다. Logback Filters in logback-classic logback-classic 모듈은 regular filters와 turbo filters 두 가지 타입의 필터를 제공합니다. Regular filters logback-classic의 Regular filters는 추상 클래스 Filter를 상속하며, ILoggingEvent를 파라미터로 받아오기 위한 decide() 메서드를 구현합니다. 등록된 Filt..
기본적으로 java 파일마다 하나의 public 클래스를 생성한다. public 클래스에서 필드에 지정해야 할 접근자 타입에 대하여 알아보자. public 클래스 public 클래스는 패키지 바깥에서도 접근 가능하다. 그렇기에 public 클래스의 데이터 필드는 private 접근자를 이용하여 노출을 제한해줄 필요가 있다. public 클래스가 필드를 public으로 공개하면 클라이언트는 이를 활용하기 때문에, 접근 및 수정이 일어날 수 있다. 불변(final) 필드라면 public 으로 선언하더라도 수정이 일어나지 않겠지만, 여전히 API를 변경하지 않고는 표현 방식을 바꿀 수 없다는 단점이 존재한다. public 클래스 접근 제한 private 접근 제한자를 통해 필드를 공개하지 않도록 하고, 생성한..
정보은닉을 위해 사용하는 접근 제한자와, 접근 제한자의 사용법을 알아보자. 정보 은닉의 장점 여러 컴포넌트를 병렬로 개발하여 시스템 개발 속도를 높인다. 각 컴포넌트를 더 빨리 파악하여 디버깅 할 수 있고, 다른 컴포넌트로 교체하는 비용도 적기 때문에 시스템 관리 비용을 낮춘다. 성능 최적화에 도움을 준다. 소프트 웨어 재사용성을 높인다. 개별 컴포넌트들의 동작을 검증할 수 있기에, 큰 시스템을 제작하는 난이도를 낮춰준다. 접근 제한자 정보 은닉을 위해 자바에서는 접근 제한자를 활용한다. 기본 원칙: 모든 클래스와 멤버의 접근성을 가능한 한 좁혀야 한다 접근 제한자의 종류 private: 멤버를 선언한 톱레벨 클래스에서만 접근할 수 있다. package-private: 멤버가 소속된 패키지 안의 모든 클..
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. PatternLayout PatternLayout은 가장 유연하게 사용되는 Logback-classic 모듈의 layout입니다. PatternLayout은 이벤트를 입력한 문자열 패턴에 맞추어 변환합니다. 이때 PatternLayout에 입력한 문자열을 변환 패턴(Conversion Pattern)이라 합니다. PatternLayout의 변환 패턴은 C언어의 printf() 함수와 매우 유사합니다. 변환 패턴은 리터럴 텍스트(literal text)와 변환 지정자(conversion specifiers)로 구성됩니다. 리터럴 텍스트는 변환 패턴 문자열에 삽입되어 삽입된 문자 그대로 출력됩니다. 변환 지정자는 퍼센트 기호 '%'로 시작되..
logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. Layout이란? Layout은 들어오는 이벤트에 대해 문자열로 변환해주는 역할을 하는 logback의 component입니다. Layout 인터페이스의 format() 메서드는 이벤트를 나타내는 object를 가져가 String 형으로 반환합니다. 하지만, 막상 Layout 인터페이스에는 format 메서드가 없는데 현재 doLayout() 메서드가 이를 대체합니다. Layout 인터페이스는 아래와 같습니다. public interface Layout extends ContextAware, LifeCycle { String doLayout(E event); String getFileHeader(); String getPresentati..
Comparable 인터페이스를 이용해야 할 때와 어떻게 사용해야 하는지 알아보자. Comparable Comparable 인터페이스는 오직 단 하나의 메서드 compareTo를 가진다. 이전 장에서 살펴본 Cloneable은 clone 메서드를 Object에 가지지만, 이와 달리 Comparable의 compareTo 메서드는 Object에 속하지 않는다. compareTo 메서드는 단순 동치성 비교에 더해 순서까지 비교할 수 있으며 제네릭하다. 그러므로 Comparable을 구현했다는 것은 그 클래스의 인스턴스들에는 자연적인 순서(nature order)가 있음을 뜻한다. public interface Comparable { public int compareTo(T o); } Comparable.co..