[칼럼]엔지니어의 생존전략..."전문성 넓혀라"

전문가 칼럼입력 :2011/12/19 10:17

권희웅
권희웅

필자는 네트워크 장비를 개발하고 있다. 장비의 주요 기능은 쉽게 설명하자면 웹 서버를 위한 부하분산이다. 최근 몇 년 사이 엔지니어들이 전해오는 현장 분위기를 종합해 보면 요즘 세상은 더 이상 한 가지 재주로 자신의 전문성을 인정받기 힘들어 지는 듯 하다. 그 이유가 무엇일까 곰곰히 생각해 봤다. 필자가 개발하는 스위칭 플랫폼 시장만 보더라도, 시장의 요구가 한가지 기능이 아닌 주변의 것들을 융합할 수 있는 기술의 형태로 변해가고 있다는 것이다.

부하분산을 예로 들어보자. 이 기능은 서버 영역과 네트워크 영역에 걸쳐져 있다(물론 국내에서는 L4/L7 스위치를 통한 부하분산이 네트워크 영역으로 인식이 굳어진 경향이 있지만 말이다). 하지만 엄밀히 말해 부하분산은 서버와 네트워크 경계 그 언저리에서 역할 하는 기능임이 분명하다. 문제는 부하분산 외에 장비 상에 보안, ADC(Application Delivery Controller) 등의 기능이 더해지면서 서버의 동작과 그에 따른 애플리케이션들과의 동작에 밀접하게 연결된 기능들이 늘어나고 있다. 따라서 서버와 애플리케이션에 대해 잘 모를 경우 네트워크 장비 구성과 설정이 점점더 어려워 질 수 있다는 것이다.

L4/L7 스위치로 IP 주소와 포트 기반 부하분산을 하는 구성은 상대적으로 간단하다. 여기서 조금 더 나아가 HTTP 콘텐츠 기반의 부하분산을 한다면, 이 역시 약간의 배경 지식만 있다면 평소 익숙히 다루어 오던 CLI(Command Line Interface) 상에서 간단히 설정할 수 있다. 사실 여기까지가 우리의 머리 속에 있는 네트워크 전문가의 업무 영역이다.

하지만 이러한 장비를 통해 웹 서버의 성능문제를 해결하려 한다거나 웹 서버의 보안 문제를 해결하고자 한다면 이 순간부터는 이야기가 달라진다. 서버 전문가 또는 웹 프로그래머에게 조언을 구하지 않고, 네트워크 전문가 혼자 최적의 구성을 이끌어 내기 힘들어 진다. 기술과 제품 자체가 융화된 특성을 가지기 때문에 전방위적인 이해가 없다면 수많은 시행착오를 겪을 수 밖에 없다는 소리다.

장비 기능의 복합화 추이 속에서 네트워크 엔지니어가 경쟁력을 가지려면 어떻게 해야 할까. 어떨 수 없이 서버의 작동 원리, 웹사이트의 구성이나 웹 프로그래밍 차이로 인해 발생하는 성능 및 보안 이슈 등에 대한 지식을 어느 정도 갖추고 있어야 한다. 눈치빠른 독자는 알아차렸겠지만 네트워크 엔지니어나 서버 엔지니어, 웹 개발자는 사실 서로 알아야 할 것들이 비슷해진다. 즉 과거에 철저히 구분돼 있던 전문가 영역의 의미가 희미해지고 있는 것이다.

관련기사

사실 이는 오래 전부터 이야기돼왔던 내용이기도 하다. 개발자들 사이에 널리 읽혀지고 있는 ‘조엘온 소프트웨어’의 내용을 빌리자면 “웹 프로그래머라면 웹 프로그래밍만 알면 되는가?”라는 질문에 대해서 “그렇지 않다!”고 나와 있다. 다른 말로 해석하면 스크립트로 코드를 작성하는 웹 프로그래머라도 C 언어를 능숙하게 구현할 줄 알아야 한다는 것이며, 이는 C 언어를 사용할 줄 아느냐는 문제가 아니라 관련된 시스템의 작동 원리에 대해서 충분히 이해하고 있어야 함을 의미한다. 결론적으로 특정 분야의 전문가라도 주변의 것들을 잘 알고 있어야 한다는 것이다.

이런 현실을 어떻게 바라볼 것인가? 이미 클라우드 서비스 운영 조직의 경우 서버, 네트워크 유지보수 전담을 구분하지 않고 종합적이고 복합적인 역할을 하는 인력들로 구성된다고 한다. 요즘 클라우드 관련 분위기로 볼 때 전문가 영역 파괴는 앞으로도 속도를 낼 분위기다. 엔지니어건 개발자이건 이제 자신의 영역만 고집할 것이 아니라 융화된 제품과 서비스 시대 발 맞추어 자신의 전문성을 넓혀 가야 할 때가 아닐까?

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.

권희웅 IT컬럼니스트

리눅스 커널을 들여다 보고 개발을 해온지 어언 십수년, 현재 네트워크 장비를 개발하고 있습니다. 효율적이고 생산적인 개발을 고민하고 있으며, 리눅스 및 커널 네트워킹과 시스템의 작동 원리 등에 관심이 많습니다.