# cps
[kotlin] coroutine 동작 과정
이전 포스팅에서 코루틴 동작 원리의 기본이 되는 CPS에 대해 알아보았다. 이번 포스팅에서는 코루틴의 동작 원리에 대해 알아보자. Direct Style vs CPS 이전 포스팅에서 작성한 Direct Sylte과 CPS에 대해 다시 한번 보고가자. Direct Style > 무언가 결과를 얻기 위해 잠시 기다리고, 후행 작업을 수행 위 예시에서는 processPost(post)를 수행하기 위해 createPost(token, item) 를 기다리고, createPost(token, item)을 수행하기 위해 requestToken() 을 기다린다. CPS (Continuation-Passing-Style) > 후행 작업 (Continuation)을 전달하는 기법 위 예시에서는 `createPo
[kotlin] coroutine 동작 과정 - CPS
Coroutine 일반적으로 코루틴을 사용해본 사람이라면, 보통은 Kotlin 과 함께 사용했을 것이다. 그런데, 코루틴은 Co+routine 의 조합으로 Kotlin만의 기능이 아니다. 실제로 코루틴은 아래 사진과 같이, 여러 언어에서 지원하고 있다. 보통 Kotlin에서 Coroutine을 사용할 때는 suspend 키워드를 사용하고, 람다를 통해 마법같이 뚝딱! 만들어내지만, 99.9% 호환되는 Java에서도 suspend와 같은 키워드는 지원되지 않는다. Coroutine은 어떻게 동작되길래 Java로 변환된 코드에서도 정상적으로 동작되는지 그 원리를 확인해보자. CPS (Continuation Pa

스마트 팩토리 (Smart Factory)
출처 스마트 팩토리란? 스마트팩토리란 공장 내 설비와 기계에 센서(IoT)가 설치되어 데이터가 실시간으로 수집, 분석되어 공장 내 모든 상황들이 일목요연하게 보여지고(Observability)고, 이를 분석해 목적된 바에 따라 스스로 제어(Controllability)되는 공장을 말합니다. 과거에는 숙련된 작업자가 원료의 색깔을 보고, 혹은 설비의 소리만 들어도 경험적으로 무엇이 문제인지 알고 손쉽게 문제를 해결했습니다. 하지만 고령화에 따라 숙련공들은 점점 줄어들어 문제가 발생할 때 제대로 대응하기가 점점 어려워 지고 있는 실정이죠! 또한 제품의 라이프 사이클이 단축되고 있고, 맞춤형

CPS (가상물리시스템)
출처, 출처2 CPS는 다양한 분야에 적용되어 안정성, 효율성, 신뢰성, 보안성에 혁신적인 변화를 가져와 새로운 부가가치를 창출합니다. 핵심적인 응용 분야로 스마트 팩토리, 스마트 교통 시스템, 스마트 그리드, 스마트 헬스케어 시스템, 스마트 홈/빌딩 시스
callback, cps, call/cc 그리고 monad
call/cc 너무 어렵다. 😩 JavaScript와 비동기 JavaScript에서 비동기를 다루는 방법중 하나는 callback을 사용한 방식이다. 어떤 함수가 와 같은 시그니쳐를 가지고 있을때, 비동기 함수 f는 자신의 작업이 완료되면 인자로 전달받은 cb함수를 호출하게 된다. cb함수를 보통 callback이라고 부르기도 하지만 continuation이라고도 부른다. 이에 대한 자세한 의미는 '더 읽어보기'를 참고하자. continuation을 전달하는 형태의 프로그래밍을 continuation-passing style(cps)이라고 부르며, 이것은 비동기에서 뿐만 아니라 분기, 예외, 성공과 실패등 프로그램의 흐름을 제어하는 전반적인 부분에 사용할 수 있다. cps의 일반적인 의미 위에서 설명한 f함수의 cb인자를 "나중에 호출되는 함수(callback)"라고 설명 할 수도 있지만 "반환값을 전달 받는 함수"라고 설명하면 이해하기가 더 쉽다고 생각한다. 이