UI개발자가 네트워크에 대해 알아야 하는 이유
요즘 읽고 있는, 읽으려고하는 네트워크 관련 서적 4권, 학교다니면서 데이터 통신개론 수업은 들었으나 회사에서 업무로 하지도 않고 알아야 될 필요도 여유도 없었다. (수업은 시험을 위한 수업이었을 뿐 머리에 남은게 없다…)
그러다 최근에 급 관심이 생겨 5개월간 한권 두권 보고싶은 책들을 사두었다. UI개발이 업무이지만 경험상 UI개발자가 서버쪽 코드를 보고 로직을 이해하거나 쿼리, 네트워크에 대한 이해가 있으면 일을 하기가 훨씬 편해지고 커뮤니케이션 비용을 많이 줄일 수 있다는 걸 알았다. 다시 말하면 커뮤니케이션 비용이 줄어 일을 하기가 편해지는 것 같다. 예를 들어 로컬서버를 띄우고 API를 호출하여 UI개발 중이데 API가 503이 뜨면 에러로그를 보고 원인을 파악하거나 내가 호출한 API가 이슈인지 다른 API문제인지 어느정도 판단하여 담당자를 찾아 빠르게 대응할 수 있다. 이건 회사마다 요구되는 역량이나 업무에 따라 다르겠지만 지금은 알아야 좀 더 효율적인 업무를 할 수 있다. 그리고 앞서 언급한 이유를 떠나서 개인적인 측면에서 학습 동기는 네트워크를 알고 개발하면 UI개발에 더 재미를 느낄 수 있기 때문이다. (네트워크에만 국한되지는 않는다.) 서비스 사용자가 어떤 이벤트를 발생시키고 내 코드가 데이터를 서버로 보내고 보낼 때 프로토콜은 뭐가 사용됫는지, 헤더,바디에는 어떤 정보가 담겨 가는지, 보안 이슈는 없는지, 요청 데이터가 어떻게 패킷으로 쪼개져 ip, port, mac 어드레스 등의 정보를 가지고 라우터, 스위치, 방화벽을 통해 어떻게 서버 애플리케이션에 도착하고 응답데이터가 어떻게 다시 오는지 그리고 그렇게 도착한 데이터로 UI를 그리고 그려진 UI가 사용자에게 좋은 UX를 제공하여 이를 통한 매출이 발생한다는 것을 알고 UI개발을 하면 개발이 훨씬 더 재미가 있다.
이전에는 스스로 비전공자이고(지금은 졸업 후 컴공과로 편입 하였다.) UI개발자라 내가 하는 업무에만 포커스를 맞추자는 생각이 강했다. 대부분의 업무가 DOM컨틀이었고 UI개발만해도 학습할게 너무 많았기에 마음에 여유가 없었다. 지금도 UI로직을 잘 짜거나 퍼포먼스가 높은 주니어 개발자라고 생각하진 않지만 이전 보다는 여유가 조금 생겼고 업무상 API를 호출할 일이 많다보니 자연스럽게 API개발자와 커뮤니케이션이 잦아지고, 모르는 부분에서 답답함을 많이 느끼게 되었다. 그래서 책을 보기 시작했는데 역시 쉬운건 없다.. 4권중 2권으 읽었는데 보고보니 두권이 다 그림으로 배우는 책들이다. 학습은 최대한 쉽게쉽게가는게 맞는 것 같다ㅋ 남은 책들 중 HTTP완변 가이드는 읽을 엄두가 안나고 인프라의 기본은 어느정도 네트워크를 아는 상태에서 지금 다니는 회사 인프라와 비교하면서 읽으면 재밋지 않을까싶다.
네트워크에 관심이 있는 일반인이나 주니어 개발자에게 “TCP/IP 쉽게, 더 쉽게” 책을 추천한다. 내용 정리가 너무 잘 되어 있고 그림이 많아 이해하기 편하다.(학습하는 입장에서 누군가가 좋은 책을 추천해주면 너무 고마웠어서 추천합니다. 책과는 아무런 관련없는 사람입니다.)
앞서 읽은 두권을 다시 봐야할 것 같아서 남은 2권을 언제즘 읽어볼 수 있을지는 모르겠다…ㅋ