리팩토링: Avoid return statement with value if you can.

영어로 제목을 쓰려던 것은 아니었으나, “Catch me if you can”을 의식하다보니, 이런 제목이 되었습니다. 사실 영어는 종종 의도를 드러내는데 유리하기도 하구요. 🙂 프로그래밍 언어에서 return문은 아주 중요한 역할을 합니다. 프로그래밍을 수학적 모델로 표현하는데 있어서, 함수라는 개념은 핵심적인 역할을 하고 있으며,

집착하고 있는 것: 흐름

몇몇 지인들은 알고있는 사실이지만, 최근 3년간 집착하고 있는 것은 ‘흐름’이다. 다분히, 들뢰즈적인데, 2004년에 처음 만나서, 가장 많은 영향을 준 사람이니 당연하다면, 당연한 사실이다. 이렇게 쓰면서도 이것이 들뢰즈적이라고 부를 수 있는 것인지 의문스럽다. 공부는 안하면서, 단초만 잡아서 공상만하고 있는 것도 사실이므로.

OOP: revisited #4

연결강도 OOP revisited: #3를 통해 패러디와 디자인 패턴, 설계사이에 어떤 관계를 설정할 수 있을지 생각해보았다. 헌데, 패러디는 다른 각도에서 또다른 접점을 갖는다. 바로 연결강도다. 패러디는 원작을 알고있어야 그 결과물을 이해할 수 있다. 만약 원작에 대해 모른다면, 아무리 잘 만든 패러디라고

OOP: revisited #3

패러디의 작동원리 지금까지 OOP: revisited #1과 OOP: revisited #2를 통해 철학과 미학의 개념을 빌려와서 객체지향 프로그래밍을 되밟아보았다. 이번에는 패러디를 빌려와서 객체지향 프로그래밍을 되밟아보기로 한다. 다음 커뮤니케이션즈에서 제공하는 백과 서비스를 이용해 찾은 패러디에 대한 정의는 다음과 같다. 문학에서 특정 작가의 약점이나

OOP: revisited #2

OOP: revisited #1를 통해서 이야기했던 내용을 정리하면 다음과 같다. 객체지향의 핵심은 ‘추상화’ 문제는 이 추상화라는 것이 자연스러운 것이긴 한데, 쉬운 것은 아니라는 점이다. 그리고, 문제가 복잡해지기 시작하면 실제 세계를 모델링해서 나온 객체 이외에 다른 종류의 객체들이 필요해진다. 인간이 실제 세계를

OOP: revisited #1

프로그래밍이란 무엇일까? 이 질문에 답하는 것은 당황스러운 일이지만, 답은 매우 간단하다. 소프트웨어를 작성하는 것. 그렇다면, 소프트웨어를 작성하는 것은 무엇을 의미하는 것일까? 이 질문에 답하는 것은 어려운 일이지만, 내가 내린 답은 다음과 같다. 실세계에 존재하는 시스템을 모방하여 이를 컴퓨터 시스템위에서 구동시키는