Theory/Unclassified

기반 기술을 어디까지 알아야 할까?

"기반 기술"을 알아야 좋은 개발자이다. 대략 맞는 말이지만 알아야 하는 기반 기술의 깊이를 논의할 필요가 있다. 개발자의 시간 자원이 유한하기 때문이다.


전산학이나 소프트웨어 엔지니어링의 진보는, 다른 분야와 마찮가지로, 이전 세대가 완성했던 토대 위에 새로운 것을 더하는 과정이다.[각주:1] 어떤 기술이 기반 기술이 될 정도로 널리 인정받으면 그 위에 그것을 이용하는 다음 계층의 기술이 놓인다. 이렇게 기술은 블럭처럼 하나씩 쌓여나간다.


각 계층은 추상화로 구분한다. 새로이 추가된 층위는 하위 단계를 추상화한다. 만약, 하부 영역의 세부 구현에 의존한다면-즉, 추상화를 하지 않았다면- 아래 부분을 확장한 것이지 새로운 계층을 추가한 것이 아니다.


하위 영역를 추상화하면 문제의 범위가 현저하게 낮아진다. HTTP 프로토콜을 논할 때 TCP/IP의 구현 방법까지 끌어들이지 않는다.[각주:2] 시스템콜이나 기계어를 몰라도 자바 프로그래밍을 할 수 있다.


경험적으로, 기반 기술은 하위 계층의 배경 지식과 인터페이스에 대한 명세/사용 방법을 잘 숙지하는 정도가 가장 효율이 좋다. 바꾸어 말하면, 하위 단계의 세부 구현이나 두 단계 이상 낮은 계층의 인터페이스를 굳이 알 필요는 없다. 이것이 선배/동료들이 만들어놓은 추상화라는 산물을 잘 이용하는 것이다.


  1. 가끔 그 토대 자체가 무너지는 혁명도 있긴 하다. 기반 기술을 말하는 지금은 논지를 흐트러뜨린다. [본문으로]
  2. 최근에는 HTTP가 기반 기술이 되어서 새로운 기술을 얻고 있다. <a class="tx-link" target="_blank" href="http://unipro.tistory.com/102">HTTP 기반 어댑티브 스트리밍</a>이 대표적인 예이다. [본문으로]
저작자 표시 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today : 78
Yesterday : 122
Total : 164,454

티스토리 툴바