본문 바로가기

전체 글

(21)
CSV 파일 기반 List 활용 (Code Analyst 코드 이야기 #3) Code Analyst는 여러 점검을 수행하고 그 결과를 제공한다. 일부 점검은 결과가 크기도 한데, 몇 천 정도가 나오기도 한다. 예를 들면 전체 소스에 중복 코드 목록이 그렇게 되는 경우가 많다. 문제는 이런 여러 결과를 메모리에 보관해야 하는 부담이다. 그래서 생각한 방식이 List 인터페이스를 갖으면서 리스트 내용이 파일로 보관하는 것이다. 오픈소스SW를 여기 저기 찾아봤지만, 그런 기능을 제공하는 것을 찾지 못했다. 그래서 직접 구현하기로 했고, 이를 Code Analyst에서 잘 사용하고 있다. 우선, 해당 코드는 github.com/RedCA-Family/code-analyst/blob/development/src/main/java/com/samsungsds/analyst/code/util/..
System.exit() 무효화 하기 (Code Analyst 코드 이야기 #2) 외부 오픈소스SW 라이브러리를 사용하다 보면, 가끔 정상적이든 비정상적이든 System.exit()로 끝나는 경우가 있다. 주로 커맨드 라인(Command Line) 방식에서 그렇게 사용된다. Code Analyst에서도 CheckStyle을 사용할 때 오류가 발생하면 강제 종료가 되는데, 이를 간단하게 무효화 할 수 있다. 2020/10/28 - [SW 개발 이야기] - Code Analyst(코드분석) 오픈소스SW 개발 이야기 package com.samsungsds.analyst.code.util; import java.security.Permission; public class SystemExitDisabler { public static class ExitTrappedException exten..
Log4j 실시간 로그 레벨 변경하기 (Code Analyst 코드 이야기 #1) 지난번에 오픈소스로 공개한 Code Analyst에 대해 잠깐 소개한 적이 있다. 2020/10/28 - [SW 개발 이야기] - Code Analyst(코드분석) 오픈소스SW 개발 이야기 그리고 특징적인 부분을 정리하기로 했는데, 첫번째로 간단하게 Log4j에 대한 로그 레벨을 실시간으로 변경할 때 사용할 수 있는 코드를 소개한다. 로깅은 보통 SLF4J(Simple Logging Facade for Java)를 앞에 두고 실제 구현체만 log4j를 많이 사용하지만, Code Analyst에는 log4j를 그대로 사용했으며, 다음과 같은 처리를 통해 쉽게 원하는 로거의 레벨을 실시간으로 변경을 할 수 있다. package com.samsungsds.analyst.code.util; import org...