개발 흉내
-
코루틴에서 java 패키지의 ReentrantLock 의 문제점개발 흉내 2024. 7. 6. 14:31
@Serviceclass ProductService { companion object { val lock = ReentrantLock() // are you sure? } suspend fun task() { lock.lock() try { // ... do task // ... do task // ... do task } finally { lock.unlock() } }}동료의 코드를 리뷰하던 중 ReentrantLock 을 사용하는 코드를 보았다. ReentrantLock 는 코루틴 작업들의 동시 접근을 제어하고 있었는데, Reentrant..
-
파이썬의 range는 게으른 연산(lazy evaluation)이다.개발 흉내 2022. 2. 21. 17:56
range 는 항상 같은 메모리를 차지한다. range 는 lazy evaluation 이기 때문에 범위가 커진다고 메모리가 커지진 않는다. >>> from sys import getsizeof >>> getsizeof(range(1_000_000_000_000_000)) 48정수값을 천조개를 미리 연산해서 갖고 있으려면 메모리가 적어도 1PB 는 있어야하지만 lazy 하게 연산하기 때문에 항상 일정한 메모리를 차지하게 된다. 1_000_000_000_000_000 in range(1_000_000_000_000_001) 는 빠르다. range 에 포함되어있는지를 계산하는 in 연산은 매우 빠르다. >>> from timeit import timeit >>> expr = """ ... 1_000_000_..
-
개수를 뜻하는 변수는 어떻게 지어야할까? count? number?개발 흉내 2021. 3. 31. 11:04
객체가 있고 그 객체를 세어서 저장해야할 때가 있다. 보통 countOfItem 을 많이 사용했는데 오늘 JPA의 응답을 보니 numberOfElements 라는 속성이 보여서 당황스러웠다. cntOfItem 이나 numOfItem 같은 보편적인 줄임말도 지양하라는 글을 어디선가 봤는데 또 다른 고민이 생겼다. 개수를 표현하는 말로써 count와 number 중에 어떤게 더 타당할까? https://stackoverflow.com/questions/6358588/how-to-name-a-variable-numitems-or-itemcount How to name a variable: numItems or itemCount? What is the right way to name a variable int ..
-
[자바스크립트] presignedUrl 다운로드개발 흉내 2021. 3. 30. 18:52
how to download s3 presignedUrl in javascript 최신 브라우저는 다음 코드로 충분하다. // download in modern browser function download (url) { const link = document.createElement('a'); link.href = url; link.click(); } a 태그를 생성하고 url를 잡아준 뒤 클릭한 것같은 효과를 낸다. 클릭에서 다운로드가 시작될 것이다. 근데 IE에서는 아무런 반응이 없다. DOM에서 로딩되지않으면 실체가 없다고 판단하는 모양이다. DOM에 추가한 뒤 바로 토끼자. // download in IE function download (url) { const link = document.cr..