어쩌다보니 빠지게된 보컬로이드.
어쩌다보니 알게된 하츠네미쿠 게이밍기어 패키지 예판 소식.
어쩌다보니 10년 넘게 사용하다 고장난 키보드.

모든 상황이 이건 반드시 질러야한다고 알리는 듯 했습니다.

3차 예판 시작. 얼릉 산다고 했는데 마우스패드가 포함된 4종 세트는 품절... 어쩔 수 없이 3종 세트로 구매하였습니다.

012
패키지 외관


주소를 잘못 입력해 회사로 도착한 패키지. 회사에서 덕밍아웃하면서 언박싱.
패키지는 디자인은 모두 비슷비슷하지만 팬들을 자극하는 디자인 입니다.

01234
패키지 언박싱


패키지가 이쁘다고 내용물이 부실하지는 않습니다. 패키지 디자인과 맞쳐 구성품 디자인도 모두 미쿠 색상!
헤드셋 헤드, 마우스 그립 부분에는 미쿠 심볼이 LED를 받아 반짝이는게 보기만 해도 흐믓해 집니다.
키보드의 경우 주요 키캡 주요 부분을 분위기 있게 잘 꾸며 났으며, 보이지 않는 부분. 키보드 다리 부분의 색상도 신경써서 빨강색으로 교체되어 있습니다.

헤드셋, 마우스, 키보드 모두 가격에 맞는 성능을 보여 줍니다.
헤드셋, 키보드의 경우 무선 제품 지원이 안되는 유선 제품으로 원래도 유선 제품을 사용했던 저로선 크게 신경 쓸 사항은 아니였습니다.

키보드의 한영, 한자 전환은 OS 환경에 따라 설정 값을 조정해 줘야 했는데 알트키가 한 개 뿐이라 시프트+스페이스 전환 옵션 밖에 선택지가 없다는게 아쉬운 점 이였습니다.

PS 1. 3차 예판은 마우스 재고 빨리 떨어졌는데 4차는 이렇게 많다니!
PS 2. 4차 예판만 등신대 주고! 나는 매장에서 집까지 가져갈 수도 있는데!!

Posted by 달바래기
,

totalSizeCap 속성은 maxHistory 속성에 종속되어 있다.

  • totalSizeCap 속성은 maxHistory 속성 설정 시에만 동작한다.

정상 (totalSizeCap 기능 동작 O)

<appender name="TEST-html"
	class="ch.qos.logback.core.rolling.RollingFileAppender">
	<file>${LOG_PATH}${TEST_LOG_HTML}</file>
	<rollingPolicy
		class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
		<fileNamePattern>${LOG_PATH}${TEST_ARCHIVE_LOG_HTML}</fileNamePattern>
		<!-- each archived file, size max 10MB -->
		<maxFileSize>10MB</maxFileSize>
		<!-- (아카이브 삭제 조건 1 : maxHistory) -->
		<!-- 60 days to keep -->
		<maxHistory>60</maxHistory>
		<!-- (아카이브 삭제 조건 2 : totalSizeCap, maxHistory 속성 설정 시에만 동작한다.) -->
		<!-- total size of all archive files, if total size > 20GB, it will delete
			old archived file -->
		<totalSizeCap>20GB</totalSizeCap>
		<!-- Application 기동 시 기존 아카이브 파일 삭제 -->
		<cleanHistoryOnStart>true</cleanHistoryOnStart>
	</rollingPolicy>

	<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
		<layout class="ch.qos.logback.classic.html.HTMLLayout">
			<pattern>%relative%thread%mdc%level%logger%msg</pattern>
		</layout>
	</encoder>
</appender>

비정상 (totalSizeCap 기능 동작 X)

<appender name="TEST-html"
	class="ch.qos.logback.core.rolling.RollingFileAppender">
	<file>${LOG_PATH}${TEST_LOG_HTML}</file>
	<rollingPolicy
		class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
		<fileNamePattern>${LOG_PATH}${TEST_ARCHIVE_LOG_HTML}</fileNamePattern>
		<!-- each archived file, size max 10MB -->
		<maxFileSize>10MB</maxFileSize>
		<!-- (아카이브 삭제 조건 1 : maxHistory) -->
		<!-- 60 days to keep -->
		<!-- <maxHistory>60</maxHistory> -->
		<!-- (아카이브 삭제 조건 2 : totalSizeCap, maxHistory 속성 설정 시에만 동작한다.) -->
		<!-- total size of all archive files, if total size > 20GB, it will delete
			old archived file -->
		<totalSizeCap>20GB</totalSizeCap>
		<!-- Application 기동 시 기존 아카이브 파일 삭제 -->
		<cleanHistoryOnStart>true</cleanHistoryOnStart>
	</rollingPolicy>

	<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
		<layout class="ch.qos.logback.classic.html.HTMLLayout">
			<pattern>%relative%thread%mdc%level%logger%msg</pattern>
		</layout>
	</encoder>
</appender>

속성 명세표

옵션명 입력 포맷 비고
maxFileSize KB, MB, GB
ex) 10MB
개별 로그파일 최대 용량
maxHistory 1, ..., n
ex) 7
아카이브(백업) 전체 허용 개수
 - fileNamePattern 설정값에 따라 rollover 주기가 결정됨.
ex1) %d{yyyy-MM-dd}
 - 직전 7일까지 저장 허용
ex2) %d{yyyy-MM-dd_HH-mm}
 - 직전 7분까지 저장 허용
totalSizeCap KB, MB, GB
ex) 20GB
아카이브(백업) 전체 용량, maxHistory 속성 설정 시에만 동작한다.
cleanHistoryOnStart true, false (default : false)
ex) true
Application 시작 시 아카이브(백업)된 로그 파일 삭제

 

참조

 

Logback - 4. Appenders (2). RollingFileAppender

logback 홈페이지의 매뉴얼을 읽으며 내용들을 정리한 글입니다. RollingFileAppender RollingFileAppender는 FileAppender를 상속하여 로그 파일을 rollover 합니다. 여기서 rollover는 타깃 파일을 바꾸는 것..

ckddn9496.tistory.com

 

Posted by 달바래기
,

1. build.gradle 플러그인 추가

// Gradle 종속성 트리 리포트를 위한 플러그인 설치
apply plugin: 'project-report'

※ Eclipse 사용 시 build.gradle 편집 후 프로젝트 갱신 처리 (Gradle▶Refresh Gradle Project)

 

2. 리포트 생성

  • gradlew 실행 및 리포트 출력 명령어 입력
    gradlew htmlDependencyReport​
     gradlew 경로 : gradle 프로젝트 최상단에 위치
    ※ 리포트 생성 경로 : {프로젝트Root}\build\reports\project\dependencies\index.html

3. 리포트 확인

  • 결과값 (샘플)
    프로젝트 종속성 트리 리포트 (샘플)
  • build.gradle : compile 속성 사용 시
    • 체크 속성 : compile, compileClasspath, default, runtime, runtimeClasspath

compile.zip
0.65MB

  • build.gradle : implementation 속성 사용 시
    • 체크 속성 : compileClasspath, default, implementation, runtimeClasspath

implimentation.zip
0.65MB


참조

 

Gradle implementation vs. compile dependencies

Gradle version 6 supports both the implementation and compile dependency configurations. Why are they both there and which one should you use? Let's find out with the two simple rules described in this article. Quick answer: use the implementation configur

tomgregory.com

 

Using gradle to find dependency tree

Is it possible to use gradle to produce a tree of what depends on what? I have a project and would like to find out all the dependencies so I may be able to prune it a little with forward declarat...

stackoverflow.com

Posted by 달바래기
,