개발자는 개발만 잘 하면 되는가?

저도 어느새 개발 짬밥을 10년 가까이 먹었습니다.

군대로 치면 꺾인 상병 5호봉 같은 느낌으로, 적당히 기합이 빠져서 회사를 설렁설렁 다니고 있습니다.

Java 개발자로 시작했지만, 지금은 Node.js 플랫폼에서 주로 개발하고 있고요. (나중에는 또 다른 거 할지도 모릅니다)

타이틀은 백엔드 개발자이지만 대충 온갖 일들을 도맡아하고 있습니다.

코드만 가지고 시스템이 돌아가는 것이 아니니,

누군가는 설계도 하고, 인프라도 깔고, 테스트도 하고, 배포도 하고, 모니터링도 하고, 비용 관리도 하고, 시스템에 관해 설명도 하고 그래야 되겠지요.

개발자에게 프로그래밍 능력이 기본이겠지만,

아무래도 컴퓨터가 어떻게 돌아가는지는 좀 알고 개발을 하는 게 좋습니다.


[펌] 생각하는 글

(출처: 링크드인)

image


개발자와 컴퓨터 네트워크

저는 대학에서 컴퓨터 공학을 전공했는데요.

무엇을 배웠냐하면, 주로 정보처리기사 시험에 나오는 과목들을 커버했습니다.

즉 자료구조, 알고리즘, 운영체제(특히, 리눅스), 데이터베이스, 네트워크, 보안, 프로그래밍 언어 그리고 소프트웨어 공학 같은 것들입니다.

얼핏 일반인들이 생각하기에는 프로그래밍 언어만 가지고 프로그램을 만들어내는 것 같지만, 사실 무언가를 개발하려면 위에서 배운 것 중에 어느 것 하나 거를 타선이 없습니다.

그중에서 컴퓨터 네트워크도 배웠지요.

무스마에서 IoT 솔루션을 개발하는 만큼, 시스템이 데이터 통신과 컴퓨터 네트워크와 밀접한 관계를 갖고 있는데요.

무스마의 고객 사례 중에 온-프레미스 서버와 기업 네트워크 환경에서 시스템을 구축해야 하는 경우도 있어서

리눅스 관리는 기본이고, 라우팅 규칙과 방화벽 설정 같은 것도 잘 알아야 합니다.

또 클라우드 환경에서도 AWS VPC를 이해하려면 네트워크 구성에 필요한 요소들이 무엇이 있는지 알아야 하고요,

쿠버네티스(Kubernetes)를 사용하면서는 오버레이 네트워크, VXLAN 같은 고급 네트워킹 기법도 그런게 있구나 정도 알 필요가 있습니다.

시스템에서 중요한 한 부분이 바로 보안이고, 그중에서 네트워크 보안은 특히 중요한데,

잘 알아야 보안을 달성할 수 있겠지요?


네트워크 보안 관련 자격증

자격 제도가 있는 기술 지식은 학습 체계가 잘 갖춰져있습니다.

자격 시험 커리큘럼을 따라서 공부해 보는 것도 좋은 방법입니다.

일단 리눅스는 기본이구요. 저도 아직 자격증은 없지만, 앞으로 이왕 공부하는 김에 리눅스마스터를 따보면 어떨까요?

그리고 저도 필기만 합격하고 수년째 재수하고 있는 정보보안기사 자격도 있습니다. (장수생 ㅠㅠ)

정보보안기사 시험 과목에는 뭐 좀 아는 개발자가 되기 위한 피가 되고 살이 되는 내용들이 많습니다.

자격증이 곧 실력을 증명해주진 않습니다만, 수검자가 어떤 태도를 갖고 공부해서 시험을 준비하고 자격증을 취득하느냐에 따라 그 의미가 달라집니다. 그렇다고 따는 게 마냥 쉽진 않을텐데…


네트워크 장비 실습의 어려움

네트워크 관련 자격 시험에는 이론 문제 뿐만 아니라 실무형 문제(주로 콘솔에 접속해서 커맨드 입력, 설정 변경 등)도 출제됩니다.

서버 호스트의 네트워크, 보안 설정은 윈도우든 리눅스든 가상 환경에서 커맨드를 쳐보면서 실습을 할 수 있지만,

간혹 특정 벤더(주로 시스코)의 네트워크 장비(스위치, 라우터)의 설정을 건드리는 방법을 물어보는 문제는 장비가 없으면 실습을 해볼 수가 없습니다.

그런 장비들을 다양하게 갖추고 있는 환경이더라도, 내가 마음대로 건드려 볼 수 있는 것이 아니기 떄문에 실습해보기 어려울 수도 있습니다.

다행스럽게도, 시스코에서는 실습 환경이 필요한 수검자들을 위해서 Cisco Packet Tracer라는 가상 네트워크 환경 시뮬레이터를 제공합니다.

시뮬레이터를 통해 해당 장비들을 직접 만져보면 네트워크 시스템을 이해하는데 도움이 될 것입니다.


Cisco Packet Tracer 설치

그러면 Cisco Packet Tracer를 설치해보겠습니다.

아쉽지만, brew install packet-tracer 같은 건 없습니다. (…)

먼저, Cisco Networking Academy에 가입을 해야 합니다.

Cisco Networking Academy 가입

회원가입을 누르면 Cisco 통합 회원으로 가입하게 됩니다.

image


Cisco Packet Tracer 다운로드

일단 가입은 했는데, 웬일인지 다운로드 링크가 잘 안 보이는 곳에 꽁꽁 숨겨져 있습니다.

여러분의 시간을 아껴드리기 위해 아래 링크를 달아드립니다.

가서 여러분의 운영체제에 맞는 설치 패키지를 다운로드 하시면 됩니다.

Download Cisco Packet Tracer


설치 & 실행

설치는 어렵지 않으니 생략합니다.

Cisco Packet Tracer를 실행하면 처음에는 먼저 로그인을 해야 합니다.

자~ 장비가 모두 공짜니 마음껏 깔아보세요!


이렇게 라우터 관리 콘솔에 접속해서 CLI를 사용할 수 있습니다.

시스코 라우터, 스위치 관리 명령어를 직접 쳐보면서 물리적인 장비 수준의 네트워크 설정을 체험해보시기 바랍니다.

image


학습 자료

무스마 SW개발팀 책꽂이에 “후니의 쉽게 쓴 시스코 네트워킹” 책이 있습니다. (개정판이 나왔습니다 사주세요)

일독을 권합니다.

image


남기는 말

요즘에 클라우드 기반 환경이 대세가 되면서 물리적인 수준의 네트워크를 직접 다룰 일이 거의 없어졌지요. (사실 원래도 개발자 보다는 시스템 엔지니어 영역) 하지만 비록 클라우드 기반 VPC나 논리적 가상 네트워크에서 작업을 하더라도, 깜깜하게 아무 것도 모르는 것과 뭔가 좀 알고 있는 것이 많이 다릅니다.

특히 무스마는 클라우드 기반 환경 뿐만아니라 개별 기업의 네트워크에서 작업을 할 때도 있고, IoT라는 네트워크 기술을 주로 다루는 회사이기 때문에,

무스마 개발자라면 컴퓨터 네트워크 부분에도 일가견이 있어야 되겠습니다.

요즘 스마트건설팀 배경열 주임님이 이쪽에 수고가 많지요. 계속 수고해주세요 (…)

앞으로 열심히 공부해서 AWS SAP도 따고, CKA도 따고, 정보보안기사도 따고 회사가 좀 보태주면 좋겠습니다 엔지니어로 승승장구 하시길 바랍니다.

감사합니다.