요즘와서 드는 생각인데.. C 를 위시한 legacy 개발환경이 은근 외면받고 있는듯한 느낌이다(아니 현실이 이미 그렇지만)
내가 소속된 개발팀은 그럼에도 불구하고 꽤나 고전적인 방법들을 선호하는(이라고 쓰고 강요당하는) 편인데, 사실 이건 기본 또는 기초에 대한 문제기도 하다.
1. 대다수의 php 를 필두로한 스크립트 개발자들은 socket 프로그래밍에 대해 이해하지 못한다. 때문에 조금만 고민해도 훨씬 효율적인 시스템을 구성할 수 있음에도 불구하고 그걸 자기가 알고있는 일반적인 지식에서만 구현하려하는 습성을 가져가기 때문에 결과적으로는... 직관적이지 못한 시스템으로 갈 가능성이 많은편이다
2. 아는가? 우리들이 쓰는 그 스크립트 언어들의 인터프리터등은 지금도 C 또는 C++ 등으로 개발되고 있다는걸? 아 물론 자바스크립트로 웹브라우저에서 동작하는 에뮬레이터를 만드시는 분들도 있다는것 인정. 하지만 그분들은 이미 legacy development 를 꿰고 있는 사람들이라는것도 염두에 두어야 하지 않을까?
3. 요 근래 mysql 에 대해서 외부 및 내부에서 미묘한 사례가 나왔다. database 및 구조와 효율에 대해서 전~혀 고민하지 않고 기준없이 설계하는 경우. 물론 요즘와서야 DB 를 oracle 등으로 접하기 "시작한" 사례가 그리 많지 않으리라는 현실은 이해가 간다만... 적어도 개발자라면 그런 사례를 일일히 설명해 주기 전에 고민에 대한 컨셉으로 나머지를 예상해 낼 수 있어야 한다. 개인적으로는 이게 legacy development 가 주는 이점이라고 생각.
4. 물론 web 서비스 외에 뭐가 더 필요하냐고 할 수 있다. 그리고 대부분의 경우는 그게 맞을 수도 있다. 물론 facebook 도 php 를 쓰고, 나 역시 web project 의 경우는 php 를 최우선 순위로 삼는 편이다. 하지만 그 facebook 조차도 php "만으로" 모든 시스템이 이루어져 있지는 않다. 하다못해 IDC 며 서버 하드웨어를 설계하는 기술이 php 만으로 다 된다고 착각하는 사람은 없곘지. 물론 이건 C 언어를 안다는 수준을 한참전에 벗어난 경우겠지만, 적어도 우리가 사용하는 OS 의 근간은 컴파일러 언어라는 사실은 잊지 말아야 겠다.
5. 이런저런 잡설을 집어 치우고라도 간단한 예를 들어보자. 적어도 C 또는 컴파일러 언어에서 thread 프로그래밍을 "직접" 해본 사람은 효율에 대한 이해의 레벨이 다르다. 또한 C 에서 포인터를 직접 짜본 사람 역시 메모리 소모에 대한 고민의 정도가 다르다. 절대적 이라는건 아니지만 상당히 높은 확률로.
6. 사실 개인적으로는 개발자들이 이러한 old legacy development 에 관심을 가지지 않는게 이익이다. 왜냐하면 그럼으로서 나, 또는 내가 속한 개발팀의 가치는 올라갈 테니까. 그럼에도 불구하고 발끝을 아직 담그고 있는 사람으로서는 안타깝기도 하다.
7. 이 내용은 지극히 어그로로 발전할 수 있는 가능성을 지니고 있다. 하지만 오해는 하지 많아주셨으면! 지금의 기술이 나쁘거나 저렴하다는 의미가 아니다. 속칭 "원천기술" 을 가지고 지금의 것을 구현하는 것과, 신기술을 follow 하기에 바쁜건 분명 틀리다. 그 점은 엔지니어고 불리고 싶다면 한번정도는 고민해 봐야할 부분이 아닐까 싶다. - 라는 그냥 개인적인 생각