야 형이 아침에 복습 몇개 해봤더니 그런 것 중요하게 생각하는 종자들이 있더구나.
프로그래밍은 어찌보면 미술이랑 유사하다. 니가 구체적 틀에서 못 벗어서나면 거기서 걍 끝나는 거여. 니가 소켓 유저로 만족하면 소켓과 같은 '기계장치'의 사용법만 알게 되는 거지 그런 기계장치를 만드는 능력은 영원히 없게 된다.
니가 새로운 프레임워크이 있네 했을 때, 그걸 설치해서 바로 한계점으로 밀어부치는 방법들을 생각할 수 있어야 하고 그런 능력을 갖어야 하는 거긔. 그렇게 되면 어떤 것을 택해야 할지, 또 너라면 어떤 식으로 프레임워크를 만들어야할 지 알게 된다.
멀티 쓰레드는 프로그래밍 아주 잘하는 쉐퀴덜도 어려워 한다. 왜냐하면 그 '기계장치' 모델 자체가 인간이 따라가기에 너무 복잡한 것이거든. 결국 안전빵으로 프로그래밍 하다보면 쓰레드 속도가 저하된다. 그래서 최근 경향은 얼랭, 하스켈, 클로져, 스칼라, 이런 함수형 언어 혹은 그와 유사한 모델 - 하둡 같은 맵-리듀스 모델을 쓰는 거여.
IDE도 마찬가지다. 매직이 많을 수록 인간은 편하지. 하지만 개발자라면 그 매직을 만들어 낼 줄 알아야지 남이 만들어 놓은 매직을 사용하면서 정신승리 하면 좆밥되는 거다. IDE에서 해주는 일들을 니가 보통 에디터에서 할 수 있으면 그게 더 낫다 (예를들면 너만의 코드 제네레이션 스크립트). 언젠가 실력되면 IDE를 만들어내는 발판이 되는 거긔.
물론, 80% 이상되는 대부분의 좆밥들은 여기까지 가지 못하겠지만, 아뭏든 너무 구체화 된것에 빠지면 안된다. 구체화 된 것을 보고 니가 추상화 시켜서 그 모델을 빨리 습득하고 더 낫게 구현하는 능력이 프로그래밍의 핵심이여.
고생해라.
전 나중에 윈도우3.1을 만들어보려구요
사실 멀티스레드 프로그래밍은 객체지향에 맞지 않다. 억지로 끼워맞추기 위해 여러가지 동기화 기법이 나온거고,
사실 실세계와 가장 가까운게 멀티스레딩임. 따라서 얼랭같은 메시지 패싱 기반이 생긴거고...
진정한 객체지향은 각 객체가 스스로 독립적으로 연산할 수 있는 능력이 있어야함?
컴퓨터는 명령어를 일렬로 처리하지만, 실세계의 모든 객체들은 매시간마다 따로 움직인다는 거지.
컴포넌트 기반과 메시지패싱을 잘 이용하면 효율적인 멀티스레딩이 가능한데, 내가 그걸몰라 ㅠㅠ..
임베디드가 이상적인 객체지향 모델이라고 할 수 있음?
!