본문 바로가기

Programing

(268)
[macOS] Trim force 명령 El Captain 이후 (Sierra, High Sierra 포함) 에는 SSD의 트림을 강제로 활성화할 수 있는 옵션이있다. 처음 SSD를 설치하면 아래와 같이 TRIM 지원이 아니요로 나온다. 터미널을 띄워서 trimforce 를 쳐보면 아래와 같이 가능한 목록이 나온다. 활성화하는 명령은 아래와 같다. sudo로 super user로 실행(do) 한다. $ sudo trimforce enable 중간에 아래와 같은 경고 문구가 나온다. 모든 책임은 너가 진다 라는 동의를 하라는 것이다. ...더보기 IMPORTANT NOTICE: This tool force-enables TRIM for all relevant attached devices, even though such devices may n..
[Spring] MockRestServiceServer를 이용한 RestTemplate 테스트 스프링에서는 이제 웹 클라이언트를 RestTemplate 대신 WebClient를 쓸 것을 이야기하고 있지만 아직 계속 쓰고 있다. 기능 테스트 코드를 작성하려고 한다. 결국은 클라이언트 코드는 RestTemplate을 주입받을 것인데, 테스트 코드에서 해당 요청을 Mocking을 할 수 있게 해주어야 한다. 스프링 프레임워크 스프링 프레임워크에서는 MockRestServiceServer 를 제공한다. 처음에 3.2.x 버전의 JavaDoc을 참고했다. 예제가 아래와 같이 되어있다. RestTemplate restTemplate = new RestTemplate() MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemp..
[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..
[Spring] RestClientException 예외 정리 RestTemplate 은 Retire되었다. WebClient가 계승할 예정이다. 하지만 아직 많은 곳에 RestTemplate를 쓰고 있어서 정리를 하게 되었다. 계층도 NestedRuntimeException: RuntimeException의 root cause를 다루기 쉽게 래핑한 예외 클래스 내부적으로는 NestedExceptionUtils 라는 유틸리티 클래스를 이용한다. RestClientException: 클라이언트 사이드의 HTTP 에러를 만났을 때 던져지는 기본 예외 클래스 RestClientResponseException: 실제 HTTP 응답 데이터를 포함하고 있는 예외클래스들의 공통 기반 클래스 int rawStatusCode String statusText byte[] respon..
[Java] JRE update 업데이트된 라이센스 조항 회사에서 사용하는 맥북프로를 켰더니 JRE 업데이트가 떴다. 업데이트를 할까 말까 망설이다 진행을 했더니 라이센스가 변경되었다가 아래와 같이 나온다. 문제는, 회사 컴퓨터는 상업용 랩톱에 해당된다. 따라서 별도의 라이센스가 필요하기 때문에 업데이트를 진행하지 않기로 하였다. Java is still free? 자바는 여전히 무료는 비상업용 기기에만 해당한다.
[macOS] JDK 삭제하기 설치는 패키지 파일을 이용하면 되는데 삭제는 언인스톨러가 없다. 지우는 방법은 /Library/Java/JavaVirtualMachines 로 우선 이동한다. ls 명령으로 목록을 보면, 3개가 보인다. (최근에 JDK 11을 설치했다.) cd /Library/Java/JavaVirtualMachines/ $ ls 1.6.0.jdk jdk-11.0.3.jdk jdk1.8.0_211.jdk 지우는 방법은 지울 대상 디렉터리를 rm 명령으로 지우면 끝. $ sudo rm -rf jdk-11.0.3.jdk sudo를 안하면 권한이 없다고 나온다. 지워지면 자동으로 java path는 이전 버전으로 바뀐다. $ java -version java version "1.8.0_211" Java(TM) SE Runti..
[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 를 설치했더니 아래와 같은 에러가 나왔다. 메세지를 보니 ..