잘까 말까 고민중에 .. 에라 모르겠다 하고.. 이제 출근까지 세시간도 안 남았는데.. 쩝.
요즘 개발환경은 참 많은게 진화했습니다.
개발툴이나 지원도구가 짱짱하게 변경이 됐죠.
이중에서 아마 가장 강력한 도구중 하나는 SQL이 아닐까 싶네요.
현재는 NoSQL같은 검색 위주의 질의어도 나오고 있지만..
사람이 인식할 수 있는 문장형태로 데이터를 규정하고 검색, 삽입, 변경, 삭제를 한다는건 대단히 강력한 기능입니다.
더욱이 데이타의 물리적인 저장 구조를 추상화, 자동화해서 개발자가 이에 대한 정보없이 개발을 할 수 있다는게 대단한 일입니다.
아마 자료구조를 배울때 SAM이나 ISAM 구조에 대해서 배우게 될 겁니다.
실제로 코볼이나 클리퍼 같은 언어로 프로그램을 만들때는
SQL 쿼리 내용을 모두 프로그래밍을 해야 했습니다.
예를 들어 원장에 해당하는 트랜잭션 레코드를 읽어와야 된다면. (SELECT a.aaa, b.bbb from a, b where a.aaa = b.bbb)
1. 마스터 파일에서 키값 검색
2. 트랜잭션 파일 오픈
3. 트랜잭션 파일에서 마스터 키값으로 검색
위와 같은 기능을 직접 코딩해야 했습니다.
그래서 코볼로 개발되어진 메인 프레임 시스템에선 코드테이블 조인같은건 거의 없죠.
코드 값도 오퍼레이터들이 직접 타이핑 합니다.
은행 창구가면 자리에 코드테이블이 적힌 메모지가 덕지덕지 붙어있는게 그런 이유입니다.
뭐 마우스가 입력속도가 느린것도 이유긴 하죠.
현 시점에선 대용량 DB나 분산 DB를 위한 아키텍쳐가 추가로 나오고.. 관계형 DB 연산으로 답안나오는 검색을 빅데이터 솔루션으로 해결합니다.
어떤 기술이던지 갑자기 뿅하고 나타나는 것은 아니란거지요.
과거의 문제점을 해결하기 위해 여러가지 방편을 찾게되고, 그 중 살아남는게 유효한 기술이 되는겁니다.
지금 입문하는 사람에게 프로그래밍을 하기 위해서 에니악, 이니그마 더 이전 튜링머신부터 공부해야 된다고 하면 미친 소리가 맞습니다.
다만, 현재를 이해하고 미래를 예측하기 위해서 역사를 공부하듯이.
현 시점의 기술을 단순히 사용하는게 아니라, 왜 이런게 세상에 뿅하고 태어난건지 배경을 알면 이해가 더 쉽다는거죠.
지금은 개발환경은 좋아졌는데.. 개발을 하기 위해서 필요한 배경지식이 너무 많이 요구되는게 참 어렵습니다.
돌아서면 뭔가 새로운게 튀어나오네요.