leetekwoo

@leetekwoo@hackers.pub · 62 following · 25 followers

mail@leetekwoo.com 엔지니어링에 관심이 많습니다.

leetekwoo.com
leetekwoo.com

leetekwoo replied to the below article:

How to pass the invisible

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

This post explores the enduring challenge in software programming of how to pass invisible contextual information, such as loggers or request contexts, through applications without cumbersome explicit parameter passing. It examines various approaches throughout history, including dynamic scoping, aspect-oriented programming (AOP), context variables, monads, and effect systems. Each method offers a unique solution, from the simplicity of dynamic scoping in early Lisp to the modularity of AOP and the type-safe encoding of effects in modern functional programming. The post highlights the trade-offs of each approach, such as the unpredictability of dynamic scoping or the complexity of monad transformers. It also touches on how context variables are used in modern asynchronous and parallel programming, as well as in UI frameworks like React. The author concludes by noting that the art of passing the invisible is an eternal theme in software programming, and this post provides valuable insights into the evolution and future directions of this critical aspect of software architecture.

Read more →
11
1
0
1
4

부끄러움을 무릅쓰고 작성합니다.

  • 순수 예술을 전공했습니다.
  • 학부 시절엔 주로 사진을 찍었습니다. 가끔 목공, 철공도 했습니다.
  • 결혼한 지 만 2년을 앞두고 있습니다.
  • 서울에 거주 중입니다.
  • 구직 중입니다.
  • 프로그래밍은 오랫동안 할 것 같습니다.
  • 무엇이든 제 손으로 하는 것을 좋아합니다.

잘 부탁드립니다!

10
2

해킹뿐만 아니라 온라인에서의 사생활 침해 가능성에도 주의를 기울이고 있습니다. 구체적인 문제가 있는 것은 아니지만, 때때로 누군가의 시선을 느끼는 듯한 불편함이 있습니다. 그저 과한 우려이길 바라고 있습니다. 저는 타인의 사생활을 존중하고, 알지 않아도 될 일에 대해 함부로 개입하지 않으려 합니다.

0
2
1

@hollo @leetekwoo 제가 알고 있기로도 아직은 x86계열이 OS들의 지원이 가장 잘 되고, arm계열도 많이 지원하지만, 많은 부분의 하드웨어가 독점적이기도 한 애플 실리콘 맥(M시리즈)은 문제가 있습니다. 애플 실리콘 맥미니는 기본 가격이 애플답게 높은 편임에도 성능, 전력 소모면에서 장점이 크지만, 앞서 말한 부분의 제약을 감수 해야 합니다. 그래서 그냥 macOS를 그대로 쓰는 편이 많은걸로 압니다. 인텔 맥은 성능도 가격에 비해 별로 추천 할 만하지 못 하다고 생각하구요. 이야기 하신 목적을 주로 생각하면, 아직은 x86계열 CPU가 장착된 장비가 쉽고 저렴한 선택일 것이라고 생각합니다. 불과 몇년 전만 해도 rpi4(arm64)도 리눅스에서 제대로 지원이 안되어서, beta버전 배포판에 하드웨어 제어 SW도 누락되어서 직접 빌드하고 그랬거든요.

@perlmint @hollo 사실 가격도 중요한 요소이지요. 저렴한 서버용 컴퓨터들을 사서 직접 모든 과정을 한다면.. 과연 제가 할 수 있을까 싶습니다. 말씀해주신 실리콘 맥 미니 실용성이 인상 깊습니다. 상세히 알려주셔서 감사합니다 ☺️

3

주의: 프로그래머에게도 수학도에게도 쓸모 있지 않은 그저 생각 놀이로, 어제 모임에서 제가 떠들었던 잡담입니다.

튜링 완전한 프로그램은 따로 메모리를 두어 관리하며 돌아가는데, 람다 산법은 이런 메모리가 없는데도 불구하고, 튜링 완전이 할 수 있는 일은 모두 할 수 있다고 합니다. 왜 그럴 수 있는지, 시작 아이디어가 뭘까 생각해 봤습니다. (슬쩍 보기엔, 학문적으로 긴 여정이 있는데, 그 걸 모두 따라가기엔 벅찬 일이라, 절대 따라가고 싶진 않고, 그저 아이디어 정도만 알고 싶습니다.)

함수형에선, 정보를 "기억memory"하는 역할도 역시 함수가 담당합니다. 기억이 필요할 땐 함수 구조를 주어, 기억 공간을 만든다고 볼 수 있습니다. 함수 합성에서 다음 함수의 인자로 새로 바인딩하며 기억의 역할을 합니다. 애초 메모리 모델이 없는 게 아니라, 다른 구조로 메모리 모델을 구현했다고 볼 수 있는 것 아닌가 싶습니다. (이렇게 말하는 곳은 없습니다.)

람다 함수는, "따로 호출할 일이 없어 이름 없는 함수로 정의한다" 쯤으로 넘어가기엔, 숨어 있는 의미가 너무 큽니다. 분명, 이렇게 넘어갈 일이 아닌데, 역시나 친절히 설명해주는 자료를 아직은 못봤습니다. (많이 찾아 보 거나, 깊게 공부한 건 아니라서, 어딘가에는 있지 않을까 싶어요)

람다 함수로 만들어,

  • 실행 시점 제어
  • 함수 합성 체인 참여
  • 필요한 정보들을 모아 두는 단위
  • 외부와 소통하는 길을 만들어 둘 수 있고, ...

여기에 기억이라는 중요한 역할도 담당하게 합니다.

람다 산법은 매개 변수, 함수 몸체, 적용, 이렇게 3가지 요소만으로 모든 걸 해결합니다. 알론조 처치 아저씨는 어찌 이런 구조를 떠올렸을까 싶습니다. 애초에 위와 같은 식으로 볼 수 있는 함수 통찰의 눈이 먼저 있었던 상태에서 만든 거겠지요?

2
1
1
0
0
2
3
4
0
5
1