Programing/OpenSource (55) 썸네일형 리스트형 [Sonarqube] Make sure using this hardcoded IP address is safe here. 코드상에 하드코딩된 IP주소가 있을 경우 소나큐브는 아래와 같은 취약성 경고를 내놓는다. Make sure using this hardcoded IP address is safe here. 문제는 실제 의미없는 더미로 IP주소도 깨알같이 잡아낸다는 것이다. 하지만 소나큐브 코드상에 인 경우에는 대상에 포함시키지 않는 것 같은데 이상하게 잡힌다. (구버전의 소나큐브라서 그런가?) https://github.com/SonarSource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/HardcodedIpCheck.java#L71 회피책 //NOSONAR 주석을 붙여서 회피하는 방법도 있지만 뭔가 아쉽다. InetAddress.an.. [JUnit] JUnit 4 to 5 migration Unit 4에서 jupiter 라는 이름을 가지고 있는 Unit 5 로 마이그레이션을 했다. 기존에 Unit 5로 짜여 있는 코드가 에러가 발생했다. 이유는 구별을 하기 위해 애너테이션을 변경했기 때문이다. JUnit 4(vintage) JUnit 5(jupiter) setUp @Before @BeforeEach tearDown @After @AfterEach test class setUp @BeforeClass @BeforeAll test class tearDwon @AfterClass @AfterAll 테스트 무시 @Ignore @Disabled @Rule (사실상 없어졌다) @ExtendWith 이름은 동일한데 패키지만 변경된 것들이 있다. JUnit 4(vintage) JUnit 5(jupiter.. [Gradle] 3.4 부터 의존성 선언이 바뀌었다. 예전에는 Spring Initializr 에서 Gradle Project 를 만들면 다음과 같이 의존성 선언이 만들어졌다. dependencies { compile 'org.springframework.boot:spring-boot-starter' testCompile 'org.springframework.boot:spring-boot-starter-test' } 그런데 어제 해보니 다음과 같이 바뀌었음을 알 수 있다. dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' } Gradle Wrap.. [Spring Boot] 2.0.2 -> 2.1.4 업데이트 후 TC 깨짐 다행히 많은 테스트 코드가 깨지지는 않았으나 RestTemplate 로깅을 위해 추가한 인터셉터 쪽이 깨졌다. "HEADERS": "({})" => "HEADERS": "([])" org.springframework.http.HttpHeaders 의 구현 방법이 바뀐 것 같았다. 즉 맵에서 배열로 바뀐 것이다. 이전 5.0 대 스프링 버전에서는 생성자가 아래와 같았다. public HttpHeaders() { this(new LinkedCaseInsensitiveMap(8, Locale.ENGLISH), false); } 5.2.0 대 스프링 버전은 아래와 같이 바뀌었다. public static MultiValueMap toMultiValueMap(Map map) { return new MultiVal.. [Gson] List 타입 추론 방법 feat Super Type Tokens Gson deserialize 하는 코드를 보면서 항상 이상했다. gson.fromJson 호출을 할 때, 아래와 같은 이상한 형태의 객체를 두 번째 파라미터로 넘기고 있었기 때문이다. new TypeToken(){}.getType() 객체를 매번 만드는 것도 그랬고, 만든 객체가 아닌 타입을 호출하는 것도 이상해보였기 때문이다. 오늘 삽질을 하고 나서 왜 이렇게 하는 것과 해결 방법에 대해 알게 되었다. 왜 이런 방법을 할까? 자바 객체의 List 타입의 경우 JSON 형태로 serialize 하면 배열의 형태로 바뀐다. 이것은 특별한 규칙이 없어도 가능하다. 하지만 반대의 경우 어떤 객체로 바꿔야 하는지 타입을 받아야 한다. 하지만 타입만 받을 때는 문제가 없지만 List와 같이 Generic 타입을.. [Lombok] @RequiredArgsConstructor 의 득과 실? 백기선 님이 YouTube에 올린 영상 중에 @RequiredArgsConstructor 관한 것이 있다. https://youtu.be/qmI7uJapocw 장점 생성자 주입을 사용하는 경우에는 중복해서 작성해야 하는 슈가 코드를 줄일 수 있다. 역으로 리팩터링하여 주입이 더 이상 안필요할 때 세 군데를 수정해야 할 것을 하나의 수정으로 해결 할 수 있다. @Service public class NamopayService { private final NamopayUrls namopayUrls; private final StoreCache storeCache; private final NamopayApi namopayApi; private final PaymentRepository paymentRepos.. [npm] npm이 npm을 설치하다. NW.js를 설치하기 위해 npm을 사용하다가 못보던 박스가 보였다. 뭔가 살펴보니 새로운 minor 을 쓸 수 있다는 안내였다. 설치 명령어 참 재귀 스럽다. Linux 같이 말이다.npm install -g npm ╭───────────────────────────────────────────────────────────────╮ │ │ │ New minor version of npm available! 6.4.1 → 6.7.0 │ │ Changelog: https://github.com/npm/cli/releases/tag/v6.7.0 │ │ Run npm install -g npm to update! │ │ │ ╰───────────────────────────────────────────────.. [Xamarin.Mac] 데스크탑 애플리케이션 개발 처음에는 크로스 플랫폼 데스크탑 애플리케이션을 만들기 위해 'Electron'과 'NW.js'를 살펴보고 있었다.그런데 패키징까지 해보고 나니 아무것도 없는 애플리케이션도 용량이 100MB 대로 너무 컸다. 혹시 다른 대안이 없을까 알아보다가 보니 macOS에서도 닷넷이 지원되는 것이 생각났다. 1. 닷넷 콘솔 프로그램.NET Tutorial - Hello World in 10 minutes 을 따라가보았다.Visual Studio Code를 이용해서 개발을 할 수 있었다.FootPrint의 형식은 dll로 떨어진다. 용량은 7KB(7,168바이트)였다. 2. 닷넷 응용 프로그램처음에는 mono 프로젝트를 생각했고, 그 쪽도 검색이 되었지만, 이젠 microsoft에서 Xamarin라는 것을 만들었다.m.. 이전 1 2 3 4 5 6 7 다음