Ping 09/Feb/2020


책: 초난감 기업의 조건

'기계인간'님의 트윗으로 소개를 받았다. 너무 잘 소개를 해주셔서 기대가 많았다. 그리고 기대만큼 재밌는 책이다.

경영서적, 마케팅, 혹은 자기계발서처럼 무언가 교훈을 얻고 싶어서 읽지는 않는다. 그냥 다른 사람들의 처절한 실패담과 그 아둔함을 보면서 쓰게 웃고 싶을 뿐이다.

그 사람들이 얼마나 멍청했는지는 잘 모르겠다. 그리고 그걸 비웃고 싶은 것은 아니다. 오히려 사람들이 그런 멍청함을 구현해내는 분위기, 흐름, 예의를 지키느라, 혹은 눈치를 보느라 제대로된 길에 들어서지 못하는 어떤 형태의 인간 사회에 대해 그렇게 냉소하고 싶어지게 만든다.

100일의 기록


/images/2020-01jan/100days.png

어느 날이었을지, 기록과 기억이 생생하다. 왜인지는 모르겠지만, 그날 새벽부터 앞으로 100일간 시도해보고 싶은게 생겼다.

그래서 그 당장 시작했다. 그리고 별로 해낸 것도 없는 주제에 당당하게 만족스러운 기분으로 "1일"과 그날 날짜를 필기 노트에 적었다. 그리고 그 다음 날, 또 다음 날.

그렇게 100일을 채웠다. 매일 나는 행복했다. 고요함, 주변에서 일어나는 일들을 내려놓고 평화로웠다. 그리고 수 많은 것들을 다시 생각하고 무엇보다 생각을 비울 수 있었다. 덕분에 이제는 관점과 행동이 더 많이 변한 것 같다.

Covariant, Contravariant, Invariant등 Type Variances 이해하기


거의 그대로 베껴온 원본 글

계약서로서의 타입

타입을 생각할 때, <계약서>로 생각하는 것이 편하다.

왜냐하면, 전달한 값이 그 타입의 범위 안에서 전달 받은 쪽에서 취급이 제한된다는 보장이 있어야 안전한 코드를 컴파일러는 생성해줄 수 있다. (혹은 그렇게 안전한지 체크를 해준다.)

Subtype, 일반화(Generalization), 특화(Specialization)

타입을 말할 때, 나는 보통 객체지향언어에서의 클래스의 상속 관계를 떠올린다. 꼭 그렇지는 않겠지만, 이 글에서도 그렇게 설명을 해보겠다.

이 글에서는 계속 다음 3개의 타입이 있고, 다음과 같은 관계라고 가정하겠다.