분류 전체보기 (886) 썸네일형 리스트형 ThreadLocalRandom and Random ThreadLocalRandom 자바7에서 추가된 기능중에 ThreadLocalRandom 가 있다. 스레드 별로 난수 생성을 고립시키는 랜덤 클래스이다. java.lang.Math#random 처럼 ThreadLocalRandom 역시 내부에 고정된 holder를 통해 난수를 생성한다. 문제는 멀티스레드에서 이 메서드를 사용할 경우 적절하게 동기화를 시켜야하는데, 많은 수의 스레드가 난수를 생성하려고 할 경우 각자의 랜덤 생성기를 가지게 하는 방법을 통해 서로간의 경합으로 인해 성능이 떨어지는 것을 방지하라고 주석에 적혀있다. ThreadLocalRandom 의 경우 current() 라는 정적 메서드를 통해 객체를 얻도록 되어 있다. public static ThreadLocalRandom curre.. [테스트] 테스트 코드의 회의 어제 버전 18이 배포를 나갔다가 3시간 만에 롤백이 되었다. 이번에 새로 추가된 버전은 심지어 테스트 커버리지가 100%였다. 그런데 배포를 하고 나서 로컬에 새로운 기능 추가를 하는데 이상하게 동작하는 현상이 확인되었다. history성 row가 추가되는데 마지막 row가 아닌 이전 row가 업데이트되는 문제였다. 원인은 기존의 엔티티에서 새로운 엔티티를 만들어서 값을 저장(insert)하고 업데이트(update)를 하는데, 예외가 발생하면 기존의 엔티티에 업데이트를 하는 버그가 있었다. 급하게 롤백을 하고 영향도를 파악하는데 다행히 production 환경에서는 예외가 없었는지 데이터가 꼬이지 않았다. 전에 N모 피처에서는 테스트 코드가 버그를 피하는데 도움을 주었는데 이번에는 해당 로직에 대한 체.. [Apple] 슬림 iMac 의 단점? 소리가... 8년동안 쓴 iMac mid 2011이 두 차례 문제(디스플레이, 전원 모듈)이 있어서 새 아이맥을 장만하였습니다.새 모델은 imac early 2019입니다. 4세대 부터 슈퍼드라이브가 빠지면서 옆 면이 이전 모델에 비해 얇아졌습니다.예전에 "2012년 iMac :: 두께는 마케팅 수단?"라는 글을 쓴 적이 있는데 막상 구입해서 사용을 하다보니 불편은 다른 곳에 있었습니다. 바로 소리가 예전 2011의 것 보다 떨어진다는 것이지요.스피커 모듈을 아래 그림처럼 좌측과 우측으로 구성되어 있습니다. 실제 사진은 아래와 같습니다. (큰 차이는 없습니다만 참고용으로) 왼쪽 스피커 쪽에서 아래로 보면 아래와 같은 틈이 있습니다. 하지만 슬림 iMac이 되면서 이 틈은 약 23mm 에서 약 2mm 로 1/10 수준.. [macOS] APFS인 SSD를 HFS+로 바꾸기 요약 디스크 유틸리티 명령들 diskutil list diskutil apfs deleteContainer /dev/disk5 diskutil erasedisk jhfs+ "rt-ac68u" disk4 내용 외장 SSD인데 언제인가부터 APFS(Apple File System)으로 바뀌어 있다. 지우기를 해도 포맷에는 APFS 들 밖에 없다. HFS+ 저널링으로 바꾸려면 diskutil 명령을 이용해야 한다. 1. 터미널을 연다. 2.대상 확인 diskutil list 3. APFS 컨테이너를 지운다. diskutil apfs deleteContainer /dev/disk5 지우고 나면 디스크 유틸리티에는 아래와 같이 Untitled 이라는 이름으로 바뀐다. 이제 Mac OS 확장(저널링)으로 포맷이 가.. [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.. [iMac] Mid 2011 - Disk 속도 비교 CTO 옵션으로 HDD 1TB, SSD 256GB로 구매했다. 보드는 SATA3 를 지원하는데 나중에 분해해서 확인해보니 장치 둘다 SATA2 규격이었다. 벤치마킹을 해보면 40~50MB/s 언저리밖에 안나온다. 썬더볼트1 도킹 스테이션으로 SSD (SATA 방식)에 연결해보면 아래와 같이 나온다. CTO로 들어있던 SSD: Toshiba 256GB 2018년에 추가로 구입한 SSD: SanDisk 3D 2TB SATA3 로 SanDisk 3d 2TB를 Trim 을 적용해서 테스트를 해보니... 오히려 쓰기 성능이 떨어졌다. 쓰기 성능이 반토박보다 적어졌다!!! Timforce를 끄고 다시해보니.. 초반에는 위와 비슷하게 나오다가 몇 번 반복하고 나서는 아래와 같이 다시 늘었다. Trim을 하면 더 성능.. [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 진단 성공 딱히 도움이 되지 않는다. 원인은..... 이전 1 ··· 31 32 33 34 35 36 37 ··· 111 다음