우리는 앞서서, 액션, 계산, 계층화, 추상화 등등을 살펴 보았다.
근데 그것만으로 코딩이 완벽해지고, 내 계획대로 작동하는 것은 아니라는것은 모두가 알 것이다.
나머지 하나는, 타임라인을 관리하는 것이다. 요즘은 비동기적 처리를 어떻게 핸들링하느냐가 프로그램이 문제없이 돌아가느냐, 문제없이 돌아가는것 처럼만 보이냐 등등의 핵심 요소라고 생각한다.
이 책에서는 타임라인을 관리하기 위해서, 기존의 코드의 타임라인을 작성하는 방법과 작성된 타임라인을 이용해서 에러를 예측하는 것에대해서 얘기하고있다.
많은 문제가 발생하는 부분은 공유되고 있는 resource가 비동기적인 타임라인에 의해서 호출될때인거 같다. 분명 순서대로만 실행된다면 a가 쓰고 b가 쓰고 문제가 없을 것이라고 생각했지만, 실제 프로그래밍은 처리되는데 걸리는 시간이 다르고 그에 따라서 순서가 역전될 수 도 있고, 생각하지못한 순서대로 실행 될 수 있다.
그렇기에, 이 책에서는 queue를 이용하여서 서로간의 실행 순서를 조율하고, 끝나는 시간을 조율하라고 얘기하고있다. 다행히도 golang에서는 고루틴과 channel을 통해서 비동기적 프로세스간의 실행 순서를 조율하는 강력한 기능을 제공하고 있다.
'프로그래밍 > golang' 카테고리의 다른 글
golang style guide (0) | 2022.11.20 |
---|---|
aws api signature 구현 (0) | 2022.11.07 |
함수형 코딩3 - 일급함수, 고차함수 (0) | 2022.09.22 |
함수형 코딩2 - 계층화, 추상화 (0) | 2022.09.22 |
함수형 코딩1 - 부수효과, 액션, 계산, 데이터 (0) | 2022.09.22 |