2021.08.11

1947 단어 TILTIL

Facts

Findings

함수형 라이브러리 설계 (병렬연산)

  • 병렬 계산 자료형식 (Par) 정의
  • 서술과 평가의 분리 -> 1. 지연을 통해 2. 자료형식을 통해

병렬 계산 라이브러리를 구축하는 챕터를 다시 읽고 있다. (정말 다 읽으려면 올해가 다 지날듯하다. 하하) 병렬 계산을 생성한다 라고 하는 목적을 정하고, 이리저리 실험을 하며 병렬 계산이 뭔지, 생성한다는게 어떤 의미인지 구체적으로 잡아가는게 인상 깊었다.

특히 좋았던 부분은, 병렬 연산의 조합기를 설계하는 부분이었다.
다음과 같이 좌, 우의 합을 더하기로 조합하는 조합기가 있을때, map 함수를 엄격하게 유지할지, 엄격하지 않게 할지를 선택할 수 있다.

// sum 은 Par 를 반환.
Par.map(sum(left), sum(right))(_ + _) 

엄격하게 하면, 좌의 합을 먼저 평가하고, 우의 합을 평가하게 되어서, 결국 병렬이 되지 않는 문제가 있다.

이를 피해가는 두가지 방법이 있는데, 첫번째는, Par 자료형식을 단순히 계산의 서술로만 보는 것이다. 실제 평가는 Par.get 과 같은 방법으로 하게 하면, get 이 호출되는 시점까지는 평가를 지연시킬 수 있다. 단, 이런식의 지연을 활용하면, 중첩적인 구조에서는 서술의 크기가 너무 커질 수 있다.

두번째는, 엄격하지 않은 함수를 활용하는 것이다. 엄격하지 않은 인수들을 받아서, 좌의합과 우의합을 서로 다른 스레드에 분배해주면 된다.

Feelings

  • 건강
  • 메타경험 - 기록
  • 루틴 - 기록, 연습

근 두달간 이직준비를 하면서 체력이 저하되어 있었는데, 과제를 연속해서 두개 진행했더니 몸상태가 완전히 안좋아져 버렸다. 낮밤도 바뀌고 컨디션도 좋지 않다.

무언가 잘 진행되지 않으면 부담감은 커지고, 마음은 급해진다. 그런 상태로도 일이나 학습자체는 어떻게든 굴릴 수 있겠지만, 그냥 하기만 하는것은 별 의미가 없다.

어떤 경험에서 무언가 하나라도 나아지기 위해서는, 경험과 메타경험이 함께 굴러가야 한다. 메타경험을 통해서, 스스로의 행동과 행동의 목적을 다시 살펴보고 그것이 유효했는지를 평가해보는 과정이 필수적이다. 당장은 별차이가 안나보여도 그것이 누적되면 그냥 진행했을때와 비교할수 없는 차이를 만들어낸다.

지금은 습관적인 기록이나 정리가 너무 부족하다는 생각이 든다. 낮에 들었던 투두리스트 관련 이야기에서 여러가지 생각이 들었다. 무언가가 정말 필요할때, 기본부터 점검하면 이미 페이스가 늦어버리는 것이 아닌가라는. 기록에서 유의미한 것을 뽑아내는것도 습관적인 기록기반에 의해서 가능할 것 같다.

일단 부담감과 조급함을 버리고 조금씩 해봐야겠다. 아예 안하는것보다는 낫다는 생각으로.

Affirmation

  • 나는 긍정적인 사람이다.

좋은 웹페이지 즐겨찾기