2024. 8. 17. 22:17ㆍ내일배움캠프
※ 참고 : 특정 용어의 개념을 정리하고 이해한 게시글이 아니다. '네트워크' 를 예시를 통해 쉽게 이해해 전반적인 이해를 도와주는 것이 목적인 게시글이다.
1. 네트워크에 대해 알아야 하는 이유
'네트워크' 뿐만 아니라 개발에 있어서 어떠한 '흐름' 을 머릿속으로 그리고 파악할 수 있는 능력을 기르는 것은 필수적인 것 같다. 단순하게 "그냥 코드작성해서 잘 작동하면 문제없지 않나?" 라고 생각할 수도 있겠지만, 누구나 개발을 하면서 한 번 쯤은 이해하지 못하는 문제에 직면한다고 하는데, 이때 검색이나 주변의 도움으로 문제를 해결하는 것도 한 방법이겠지만 개발한 결과물이 작동하는 흐름을 잘 알고 있어 어떤 부분에서 문제 원인이 발생하는지 예상하고 파악할 수 있다면 이는 전자와 능력의 질이 달라지는 결과를 가져온다 생각한다.
네트워크에 대한 지식을 알아야하는 이유도 위와 같다고 생각한다. 웹 개발자로서 웹이 어떻게 동작되는지 전반적인 흐름을 파악하고있는 것이 실무에 분명 도움이 될 것이고, 같은 맥락에서 네트워크를 알고 있다면 서버를 공부하고 다루는데 있어 도움이 될 것이기 때문이다.
2. 네트워크란?
2-1. 현재의 네트워크가 되기까지
현재의 네트워크는 한 번에 설명하기도 이해하기도 어려우니 시간을 되돌려 네트워크 개발 전으로 가서 생각해보자. 컴퓨터는 있는데 정말 달랑 컴퓨터만 있다고 생각해보자. 내가 아무리 컴퓨터를 통해 문서를 기깔나게 만들었어도 누군가에게 보여주려면 보여주는 대상을 내 모니터 앞으로 모시거나 출력을 통해 종이로 문서를 전달했을 것이다. 하지만 단순 문서가 아닌 프로그래밍 코드 같은 경우 다른 컴퓨터에서 작성한 코드를 사용해야 한다면? 문서로 전달하는 것은 그냥 타이핑을 다시 하는 번거로움의 시작이 아니었을까?
이러한 불편함 때문에 아마 필요에 의해 컴퓨터를 연결하기 시작했을 것이다. 처음엔 2대를 직접 연결하고 데이터를 주고 받지 않았을까? 이 때, 서로 문서를 작성하는 방법이 달라 생기는 문제를 해결하기 위해 서로 특정한 형식을 정하게 되고 이게 오늘날 '프로토콜(Protocal)' 이 된다.
이렇게 프로토콜도 만들었지만 연결해야 하는 컴퓨터의 개수가 늘어가며 각각의 컴퓨터를 연결하기에는 물리적 한계에 부딪히게 된다. 그래서 컴퓨터의 직접 연결은 그만 두고 하나의 장치에 연결이 필요한 컴퓨터들을 연결하게 되었다. 이 장치가 바로 오늘 날 '허브' 가 된다. 하지만 허브는 단순하게 입력받은 데이터를 연결된 모든 컴퓨터에 전달하기에 문제가 됬다. 그래서 '허브' 에 데이터의 방향 전환이 가능하게 장치를 향상 시킬 필요가 있었고, 이것이 오늘 날 '스위치' 가 탄생하게 된다.
이렇게 연결망의 범위를 늘려가다 보니 다른 나라에도 네트워크가 있다는 것을 알게 되었다. 사람들은 이 네트워크를 지역별 네트워크라 지칭하며, 'LAN(Local Area Network)' 라 부르기 시작했다. 하지만 네트워크를 가진 나라들이 점점 많아지니 이전에 컴퓨터끼리 직접 연결할 때와 같은 문제가 발생한다. 나라별 네트워크에 스위치가 많아지면 이전과 같이 복잡한 상황이 생기게 된 것이다. 그래서 나라의 네트워크를 표시하며 다른 나라 네트워크와 연결할 목적으로 오늘 날의 '라우터' 란 장치가 발명 되었다. 더불어 다른 나라와의 통신을 위해서 프로토콜의 개선 또한 이루어졌다.
2-2. 후기
최근 개발에 대한 지식이 부족하다 느낀 부분이 많아 관련 공부를 차근차근 진행하고 있는데, 항상 공식문서를 봐도 다른 사람이 정리한 글을 봐도 '데이터가 어쩌고, 아키텍처가...' 딱딱하고 명확하게 이해되지 않는 설명의 향연이었는데, 이렇게 알기 쉽게 정리된 아티클을 알 수 있어 좋았다.
단순이 네트워크의 구성요소가 어떻고 하는 설명이 아닌 예시를 통한 설명이 이해를 쉽게 도와줬고 딱딱한 내용이나 표현이 없는 것 또한 도움이 되었다. 나의 경우에는 최근 프로토콜 개념은 이해를 했는데 머리로 안 그려져 고민이 었는데 현재는 "아! 어떻게 보면 메일을 작성할 때 상대 주소와 내 주소, 메일 제목과 내용을 적는 것 또한 프로토콜이 아닐까?" 라는 생각을 할 수 있게 되었다.
물론 해당 아티클을 읽고 이해하는 것으로 끝나진 않을 것이다. 하지만 네트워크가 무엇인지 잘 모르거나 감이 안 잡힐 때, 기본적인 내용을 쉽게 접근하고 싶을 때 읽어보면 좋은 아티클이라 추천할 수 있다.
참고 문서
'내일배움캠프' 카테고리의 다른 글
[사전캠프] 날짜별 획득 포인트 조회하기 (0) | 2024.08.18 |
---|---|
[사전캠프] TIL 작성 - 24.08.17(토) (0) | 2024.08.17 |
[사전캠프] Java, Spring 톺아보기 (0) | 2024.08.17 |
[사전캠프] 데이터 속 김서방 찾기 (0) | 2024.08.17 |
[사전캠프] TIL 작성 - 24.08.16(금) (0) | 2024.08.16 |