전체 글

Clever code is probably the worst code you could writeAnd clear, readable code is probably the hardest code to writeread.engineerscodex.comdef mininumTotal(self, t): return reduce(lambda a,b:[f+min(d,e)for d,e,f in zip(a,a[1:],b)], t[::-1])[0]위 코드는 흔히 “코드 골프”라고 불린다. 취미로는 좋을 수 있지만 “좋은 코드”와는 거리가 멀다.모두들 이것이 좋은 코드가 아니라는 것은 알고있다. 실제 업계에서는 가장 나쁜 코드 중에 하나라고 할 수 있다.반대로 생각해보면 가장 명확한 코드를 작성하는 것이 실제로 가장 어려..
`launch` : 작업 실행 후 결과를 반환하지 않음`async` : 코루틴으로부터 결괏값을 수신 → Deferred 객체 반환 async 사용해 결과값 수신하기async 사용해 Deferred 만들기fun CoroutineScope.async( context: CoroutineContext = EmptyCoroutineContext, // CoroutineDispatcher 설정 가능 start: CoroutineStart = CoroutineStart.DEFAULT, // 지연시작 설정 가능 block: suspend CoroutineScope.() -> T): DeferredDeferred코루틴을 추상화한 객체코루틴으로부터 생성된 결과값을 감싸는 기능을 가짐결과값의 타입은 제네릭 타입  a..
How not to do code reviews - Aviator BlogMany code review processes become bottleneck for the engineering teams. Instead of finding bugs, it hinders progress leading to poor developer experience.www.aviator.coHow not to do code reviews전통적으로, 코드 리뷰는 엔지니어가 동료의 코드를 오류를 찾고 가독성, 효율성, 유지보수성을 보장하기 위해 면밀히 검토하는 것을 포함했다. 이 방식은 특히 대규모 팀에서 병목 현상을 유발했다. 왜냐하면 적합한 리뷰어들이 필요할 때마다 변경을 검토할 여유가 항상 있는 것은 아니기 때문이다. C..
You probably don’t need microservicesMicroservices is a great architectural style that helps to scale the system and the organization. But probably you don’t need microservices...www.thrownewexception.com마이크로 서비스는 시스템과 구조를 확장하는데에 도움이 되는 훌륭한 방식으로 최근 굉장히 인기있는 아키텍처 스타일이다. 많은 성공한 회사들(넷플릭스, Spotify..)을 포함하여 대부분의 회사들이 이 방식을 사용하거나 사용할 계획을 가지고 있다. 하지만, 몇몇 회사들은 마이크로 서비스가 가져오는 추가 비용을 간과하고 있다.본격적으로 이야기 하기전..
· 📚 Study
코루틴 빌더 함수코루틴을 생성하는 데 사용하는 함수 ex) `launch`, `runBlocking`…코루틴을 만들고 코루틴을 추상화한 Job 객체 생성 → Job 객체로 코루틴의 상태를 추적 및 제어 Join을 사용한 코루틴 순차 처리`join()` : 먼저 처리되어야 하는 코루틴의 실행이 완료될 때까지 호출부의 코루틴을 일시 중단하는 함수💡 delay 함수 - `Thread.sleep()` 해당 함수가 실행되는 동안 스레드가 블로킹돼 사용할 수 없음 - `delay()` 해당 함수가 실행되는 동안 스레드는 다른 코루틴이 사용할 수 있음Join 함수 사용해 순차 처리하기fun main() = runBlocking { val updateTokenJob = launch(Dispatchers.IO) ..
· 📚 Study
Coroutine Dispatcher란?Coroutine을 스레드로 보내 실행시키는 역할스레드 / 스레드 풀을 가지며 코루틴을 실행 요청한 스레드에서 코루틴이 실행되도록 함동작 방식자신에게 실행 요청된 코루틴을 작업 대기열에 적재한 후, 사용할 수 있는 스레드가 생기면 스레드로 보냄`CoroutineDispatcher` 객체에 코루틴의 실행이 요청 됨[CoroutineDispatcher] 실행 요청 받은 코루틴을 작업 대기열에 적재[CoroutineDispatcher] 사용할 수 있는 스레드가 있는지 확인있다면, 코루틴을 해당 스레드로 보냄없다면(모든 스레드가 코루틴을 실행중이라면), 작업 대기열에서 대기하도록 둠스레드 중 하나가 자유로워 졌을 때, 대기열에 있던 코루틴을 스레드로 보냄역할코루틴의 실행을..
점이
DOTELOPER