1. 많은 함수들을 쓰다보면 서로간에 의존성이 생긴다. ( 하나가 바뀌면 다른것도 바뀌어버리는 ) 2. 그런데 바뀌지않고 독립적으로 실행해야할 때도 있다. 3. 독립성을 보장하는 방법이 Dependency injection(의존성 주입)이다. 근데 말이 좀 이상하다. 독립성을 주는 건데 '의존성'을 주입한다니. 멍청한 블로거들이 이해하지 않고 그대로 쓴다고해도 나만큼은 용어를 제대로 이해해야하므로 글을 쓴다. A가 마스터이고, B가 노예일 때, 노예는 마스터에게 의존한다. 그럴 때 노예를 Dependant 한 속성을 가졌다고 하고 마스터는 Dependency 한 속성을 가졌다고 말한다. Dependency는 'supported' 하다. '종속성'이 아닌 '종속물'이다. 그러니까 다른 많은 것들이 이 대상..
소프트웨어/언어 일반 검색 결과
최초의 프로그래머 에이다 러브레이스는 수학자이지만 아버지가 시인이었다. 아버지가 방탕한 시인이었기 때문에 그 악영향에서 벗어나기 위해 강제적으로 수학자가 되었다고 한다. 에이다 러브레이스의 어머니의 의도대로? 그 사람이 만든 프로그래밍을 하는 개발자들은 방탕한 시인과는 정 반대에 있다. 조용히 집중하는 성격들을 가지고 있는 사람들이 주로 하게 되며 그렇지 않더라도 집중해야만하는 성격으로 변한다. 하지만 에이다 러브레이스는 아버지를 잊지 않았고 시적인 상상력이 수학과 다르지 않다는 것을 분명히 알고 있었다. 사교계에서도 두각을 나타냈다고하며 도박에도 심취했다고 한다. 자칫하면 단점으로만 남을 수 있었던 것을 거부하고 올바른 통합을 실현했다. 최초의 if문. 만약 이랬으면 어땠을까 하는 그 상상력은 시인의 ..
디버깅을 하다보면 '아 내가 잘못했구나!' 라는 참회를 하게 된다. 목사님이 따로 계시지 않아도 무릎을 꿇고 깊은 사죄를 하게 만든다. 세상과 인생도 마찬가지로 내가 잘못했을 가능성이 너무나도 크다. 문법을 배우지 않아서 틀린 것이 나의 잘못은 아닌 것처럼 그것이 근본적인 원죄는 아니지만, 세상의 문법을 배우고 올바르게 바라보았다면 충분히 풀 수 있는 문제들이었다. 문제와 고통이 생기는 이유는 프로그래밍을 하듯 무언가를 만들어나가는 중이기 때문이다. 너무나도 당연하게 완성했을 때 보상이 주어진다.
사고방식, 시스템, 알고리즘 이라는 단어들과 다르게 모델이라는 단어를 쓰는 이유는 뭘까? 모델은 모양이나 형태라는 뜻을 담고 있다. 형태란 부분적이고 난잡한 것이 아니라, 전체이자 꽉잡힌 종결됨을 의미한다. 원을 그리다가 끝에서 만나지 않으면 그것을 모양이라고 잘 부르진 않는다. 끝점에서 다시 만나야만 원이라는 형태라고 표현한다. 뭔가가 끝나고, 종결되고 전체적인 무언가가 되어야만 한다. 시스템 -> 뭔가가 복잡하게 하나로 이루어진 것. 사고방식, 알고리즘 -> 강의 물줄기가 흐르는 방식. 모델 -> 모양을 갖춘 무언가. 모델은 다른 것과 다르게 확고함이 있다. 강한 믿음이 있다. 시스템 혹은 제도에는 믿음이 없다. 그 힘에 따라서 흘러갈 뿐이다. 하지만 모델은 스스로 자기자신 그 자체이다. 시스템이나..
말을 대신하기 위해 자동차가 개발된 것과 완전히 똑같이 수학을 대신하기 위해 프로그래밍 혹은 공학들이 태어난 것이다. 수학이 더 고상하다, 필수적이다 라고 생각하는 것은 허접한 생각이다. 위대한 천재 수학자들은 예전에 말을 매우 잘탔던 몽고기마병사를 아직까지도 추앙하는 것과 같다. 그때 싸워야할 곳에서 싸운 사람들과 지금 현대의 사람들과 비교하는 것은 매우 매우 멍청한 짓이다. 말을 못탄다고해서 인간적으로 실력이 낮다고 판단하지 않듯이 계산기가 손안에 24시간 있는 사이보그가 된 지금 현대인에게 수학을 못한다고 해서 바보라고 판단해서는 안된다. 아직도 승마경기가 있고 승마선수가 되어야하는 사람이 있듯이 수학이나 기초과학도 앞으로도 중요할 것이고 계속해서 필요하다. 하지만 그 과거들은 문화재를 감상하는 듯..
프로그래밍 언어는 5개로 나뉘어져있다고 한다. 키워드 ( 예약어 ) : 언어를 만드신 분이 미리 지정해둔 단어들 / ex. int, Main() 식별자 : 내가 재사용하기 위해 특별히 지정해 둔 단어들 / ex. 변수명 literal (리터럴 ) : 그냥 값 연산자 : + - 등등 punctuator ( 펑추에이터 ) : 세미콜론(:), 콤마, 대괄호 {} 등 위의 4가지 문법적 요소를 사이사이 구분해주는 기능을 함. punctual 은 시간을 엄수하다 등의 뜻을 가지고 있고 어원은 'point' 에서 나온말로 점찍어서 정확히하다 라는 뜻을 가지고 있다. 리터럴을 제외하고 나머지 4개는 모두 미리 지정해둔 기능을 가지고 있다. int 는 글자그대로 int 가 아니라 뭔가 다른 것을 지정하거나 다른 쪽으로..