본문 바로가기

Programing/OpenSource

(36)
[Docker] Unable to find image 해결책 에러 메세지 $ docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube Unable to find image 'sonarqube:latest' locally docker: Error response from daemon: Get https://registry-1.docker.io/v2/library/sonarqube/manifests/latest: unauthorized: incorrect username or password. See 'docker run --help'. 시도 Docker Update 업데이트 할 때 권한에 대한 확인 창이 뜬다. 하지만 마찬가지이다. Troubleshoot 진단 성공 딱히 도움이 되지 않는다. 원인은.....
[SonarQube] 메이븐(Maven) 프로젝트에서 커버리지 표시하기 Gradle 방식 내가 개발하던 팀은 주로 그레이들(Gradle)을 사용했다. 그래서 org.sonarqube 라는 이름의 플러그인을 사용해서 SonarQube 리포팅을 했기에 특별한 설정은 프로퍼티 정도만 추가로 해주었다. 그래서 build.gradle 에 아래와 같이 플러그인 DSL 만 명시해주면 ./gradlew sonar 라는 태스크를 이용해서 리포팅이 가능했다. plugins { id "org.sonarqube" version "2.7.1" } sonarqube { properties { property "sonar.projectKey", "${artifactName}" property "sonar.projectName", "${artifactName}" property "sonar.source..
[electon] keytar electron 앱에서 아이디/비밀번호를 저장해야했다. atom 에서 관리하는 프로젝트 중에 keytar가 있었다. 운영체제마다 Valut같은 기능을 제공을 하는데, 가령 macOS의 경우는 키체인을, 윈도우의 경우는 Credential Vault 같은 것이다. 맥에서는 잘 저장/불러오기가 되는 것을 확인했는데, 윈도우에서는 npm install keytar부터 잘 안되었다. 아마 의존하고 있는 native 모듈이 있어서 윈도우의 경우 Visual Studio의 설치를 필요로 한다. 처음에 Visual Studio 2015 express를 설치했더니 C++ 11이 지원되지 않는다고 한다. 그래서 visual Studio 2019 community 를 설치했더니 아래와 같은 에러가 나왔다. 메세지를 보니 ..
[docker] oracle xe 11g on macOS 맥 운영체제에서는 오라클 설치를 지원하지 않는다. 그래서 보통 docker를 이용해서 로컬에서 개발을 하는 경우를 보았다. Docker Hub: https://hub.docker.com/r/jaspeen/oracle-xe-11g 명령 모음 $ docker pull jaspeen/oracle-xe-11g $ docker run -d --name=oracle-xe-11g -p 1521:1521 -p 18080:8080 jaspeen/oracle-xe-11g $ docker stop oracle-xe-11g $ docker rm oracle-xe-11g 위에서 부터, 이미지를 받아오는 것 컨테이너를 실행(포트 연결 포함) 컨테이너 정지 컨테이너 삭제 접속 DataGrip을 이용했다. JDBC드라이버가 지원되는..
[Util] EUC-KR to JavaScript escaped string 파일럿 성으로 만들어보았는데 결국 쓰지 않을 것 같지만 아카이브용으로 기록해둔다. public static String toJsonEucKr(String str) { if (Objects.isNull(str)) { return null; } byte[] euckr = str.getBytes(EUC_KR); StringBuilder sb = new StringBuilder(euckr.length * 5); // 1: 5B -> 6: \u005B , 2: B0E6 -> 6: \uB0E6 boolean isMultibyte = false; for (byte b : euckr) { if (isMultibyte) { sb.append(byteToHex(b)); isMultibyte = false; } else {..
[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..