paint-brush
시스템 설계 치트 시트: 네트워크by@gavr
9,583
9,583

시스템 설계 치트 시트: 네트워크

복잡한 토폴로지부터 기본 프로토콜의 미묘한 차이까지 네트워킹의 기본 사항을 파악하는 것은 단순히 학술적인 연습이 아니라 강력하고 효율적인 시스템을 만드는 데 중요합니다. 네트워크 원칙에 대한 확고한 기반은 시스템이 원활하게 통신하고 탄력적으로 적응하며 효율적으로 확장되도록 보장합니다.

People Mentioned

Mention Thumbnail
featured image - 시스템 설계 치트 시트: 네트워크
Aleksandr Gavrilenko HackerNoon profile picture

이것은 시스템 아키텍처 설계의 특정 주제의 주요 요점을 간략하게 다루는 일련의 기사의 연속입니다. 첫 번째 기사는 여기에서 읽을 수 있습니다.


모든 복잡한 시스템은 각각 특정 기능을 가진 수많은 구성 요소의 모자이크입니다. 이러한 구성 요소는 독립적으로 작동하지 않습니다. 그들은 네트워크를 통해 지속적으로 상호 작용하며 데이터와 명령을 교환합니다. 이러한 상호 작용의 기본 사항을 이해하는 것이 중요합니다.


시스템의 전반적인 성능과 복원력을 제대로 이해하려면 구성 요소가 네트워크를 통해 어떻게 통신하는지 이해해야 합니다.

유형

네트워크는 크기, 아키텍처, 범위 및 기능에 따라 네 가지 유형으로 나눌 수 있습니다.


  • 개인 영역 네트워크(PAN) : 일반적으로 사람의 범위 내에서 개인적인 용도로 설계되었습니다. 컴퓨터, 스마트폰, 스마트워치와 같은 장치(주로 Bluetooth)를 연결할 수 있습니다.


  • LAN(Local Area Network ): 집, 사무실, 학교 등 제한된 지역 내의 장치를 연결합니다. 일반적으로 컴퓨터를 연결하고 제한된 지리적 영역 내에서 프린터나 인터넷 연결과 같은 리소스를 공유하는 데 사용됩니다.


  • MAN(Metropolitan Area Network): LAN보다 넓은 영역을 커버하지만 WAN보다 작으며 일반적으로 도시나 대규모 캠퍼스에 걸쳐 있습니다. 지역 서비스 제공업체는 종종 이를 사용하여 마을의 기업 및 가정에 연결을 제공합니다.


  • 광역 네트워크(WAN) : 더 넓은 지리적 영역에 걸쳐 있으며 종종 여러 LAN을 연결합니다. 인터넷은 전 세계의 컴퓨터와 네트워크를 연결하는 WAN의 가장 대표적인 예입니다.

구성요소


특수 하드웨어 장치 없이는 네트워크 구축 및 유지가 불가능합니다.


  • 케이블 및 무선 액세스 포인트 : 이더넷과 같은 물리적 케이블은 장치 간 유선 연결을 제공하는 반면, 무선 액세스 포인트는 Wi-Fi 또는 기타 무선 기술을 사용하여 물리적 케이블 없이 장치를 네트워크에 연결할 수 있게 해줍니다.


  • 네트워크 인터페이스 카드(NIC) : 하드웨어 구성 요소로, 컴퓨터나 기타 장치에 삽입되어 네트워크에 연결할 수 있는 카드인 경우가 많습니다.


  • 리피터(Repeater) : 신호를 증폭하거나 재생성하여 신호 품질 저하 없이 더 먼 거리를 이동할 수 있게 해주는 네트워크 장치입니다. 주로 유선 및 무선 네트워크에서 통신 범위를 확장하고 장거리에서 데이터 무결성을 보장하는 데 사용됩니다.


  • 브리지: 브리지는 데이터 링크 계층에서 작동합니다. 브리지는 소스와 대상의 MAC 주소를 읽어 콘텐츠를 필터링하는 기능을 추가하는 리피터입니다. 또한 동일한 프로토콜에서 작동하는 두 개의 LAN을 상호 연결하는 데에도 사용됩니다.


  • 허브 : 이러한 기본 네트워킹 장치는 LAN의 여러 장치를 연결하여 단일 네트워크 세그먼트 역할을 합니다. 허브는 데이터를 필터링할 수 없으므로 데이터 패킷이 연결된 모든 장치로 전송됩니다.


  • 스위치 : 다른 장치를 연결하는 네트워크의 장치입니다. 모든 장치에 동일한 데이터를 브로드캐스팅하는 허브와 달리 스위치는 더 지능적이어서 데이터가 필요한 장치에만 데이터를 보냅니다.


  • 라우터 : 컴퓨터 네트워크 간에 데이터 패킷을 전달하는 장치입니다. 데이터 전송에 가장 적합한 경로를 결정합니다. 라우터는 일반적으로 LAN과 WAN을 연결하고 데이터 패킷 라우팅에 대한 결정을 내리는 기반으로 동적으로 업데이트되는 라우팅 테이블을 갖습니다.

토폴로지

네트워크 토폴로지는 다양한 네트워크 장치 및 구성 요소가 연결되는 방식과 데이터가 전송되는 방식을 지정하는 구조적 레이아웃입니다. 토폴로지 선택은 네트워크의 성능, 확장성 및 내결함성에 큰 영향을 미칩니다. 이는 두 가지 주요 유형으로 분류됩니다.


  • 물리적 : 장치, 케이블 및 기타 네트워크 구성 요소의 물리적 레이아웃을 설명합니다. 네트워크 장치가 물리적으로 연결되는 방식을 나타냅니다.


  • 논리적 : 물리적 설계에 관계없이 네트워크 내의 데이터 흐름을 설명합니다. 네트워크 장치 간에 데이터가 전송되는 방식을 나타냅니다.


다음 유형의 토폴로지가 구별됩니다.


지점 간

두 노드 또는 끝점 간의 직접 연결입니다. 이는 가장 간단한 형태의 네트워크 토폴로지입니다.



장점 :

  • 직접 및 전용 링크는 고속 데이터 전송을 보장합니다.

  • 간단한 구성 및 설정.

  • 노드가 두 개뿐이므로 안정적인 통신이 가능합니다.


단점 :

  • 모든 장치 쌍에 대해 전용 회선이 필요하므로 대규모 네트워크에서는 확장할 수 없습니다.
  • 개별 링크가 필요하기 때문에 여러 연결이 필요한 시나리오에서는 비용이 더 많이 들 수 있습니다.


버스

모든 장치는 단일 통신 회선을 공유합니다. 장치에서 전송된 데이터는 다른 모든 장치에서 사용할 수 있지만 의도된 수신자만 해당 데이터를 수락하고 처리합니다.





장점 :

  • 소규모 네트워크에 구현하기 쉽습니다.

  • 최소한의 케이블 연결로 인해 비용 효율적입니다.


단점 :

  • 더 많은 장치를 추가하거나 네트워크 트래픽이 증가하면 성능이 저하됩니다.
  • 단일 케이블 오류로 인해 전체 네트워크가 중단될 수 있습니다.


반지


각 장치는 두 개의 다른 장치에 연결되어 링을 형성합니다. 데이터는 한 방향 또는 때로는 두 방향으로 이동합니다.






장점 :

  • 버스 토폴로지보다 더 큰 데이터 로드를 처리할 수 있습니다.


단점 :

  • 하나의 케이블이나 장치에 장애가 발생하면 전체 네트워크가 중단될 수 있습니다.
  • 설치 및 재구성이 더 어렵습니다.




모든 장치는 중앙 장치(예: 스위치 또는 허브)에 연결됩니다.







장점 :

  • 설치 및 관리가 쉽습니다.
  • 한 케이블에 장애가 발생해도 다른 장치에는 영향을 미치지 않습니다.


단점 :

  • 중앙 장치에 장애가 발생하면 전체 네트워크가 작동하지 않습니다.
  • 버스 토폴로지보다 더 많은 케이블이 필요합니다.

나무



스타 토폴로지와 버스 토폴로지의 특성을 결합한 하이브리드 토폴로지입니다. 스타 구성 네트워크 그룹은 선형 버스 백본에 연결됩니다.






장점 :

  • 계층적이며 확장 가능합니다.

  • 장치를 그룹화하면 관리가 쉬워집니다.


단점 :

  • 백본에 장애가 발생하면 네트워크 분할이 발생합니다.
  • 다른 토폴로지보다 더 많은 케이블 연결이 필요합니다.

망사


장치는 서로 연결되어 있습니다. 모든 장치는 다른 모든 장치에 연결됩니다.







장점 :

  • 높은 중복성과 신뢰성을 제공합니다.

  • 여러 장치에서 동시에 데이터를 전송할 수 있습니다.


단점 :

  • 더 많은 케이블이 필요하므로 비용이 많이 듭니다.
  • 설치 및 구성이 복잡합니다.

잡종



두 개 이상의 토폴로지 조합.








장점 :

  • 구성 요소 토폴로지의 장점을 그대로 유지하므로 유연하고 안정적입니다.

  • 확장 가능.


단점 :

  • 복잡한 디자인.
  • 여러 구성으로 인해 비용이 더 많이 들 수 있습니다.

프로토콜

네트워크 프로토콜은 네트워크를 통해 데이터가 전송되고 수신되는 방식을 정의하는 규칙 또는 표준입니다. 이러한 프로토콜은 네트워크(또는 여러 네트워크)의 장치가 표준화된 방식으로 서로 통신할 수 있도록 보장합니다.

공통 프로토콜

  • TCP/IP : 인터넷을 구동하는 기본 프로토콜 모음입니다. TCP는 데이터가 올바르게 전송되도록 보장하고, IP는 데이터가 올바른 위치로 전송되도록 보장합니다.
  • UDP : TCP와 달리 데이터를 전송하기 전에 연결을 설정하지 않으며 데이터 패킷의 순서를 보장하지 않는 비연결 프로토콜입니다.
  • HTTP, HTTPS: 인터넷에서 웹페이지를 전송하는 데 사용되는 프로토콜입니다. HTTPS에는 데이터를 암호화하는 보안 조치가 포함되어 있습니다.
  • FTP : 네트워크를 통해 파일을 전송하도록 설계된 프로토콜입니다.
  • SMTP : 이메일 전송에 사용됩니다.
  • IMAP : 메일 서버에서 이메일을 검색하고 저장하는 데 사용됩니다.
  • POP3 : 메일 서버에서 이메일을 검색하는 데 사용됩니다.
  • ICMP : IP 처리와 관련된 오류 보고 및 진단에 사용됩니다.
  • DNS : 도메인 이름을 IP 주소로 변환하여 사용자가 사람이 읽을 수 있는 이름을 사용하여 웹 사이트에 액세스할 수 있도록 합니다.
  • DHCP : 네트워크의 장치에 IP 주소를 동적으로 할당합니다.
  • SSL/TLS : 암호화 프로토콜은 컴퓨터 네트워크를 통한 보안 통신을 제공하도록 설계되었습니다.
  • PPP : PPP(Point-to-Point Protocol)는 기본적으로 프레이밍 없이 다양한 연결이나 링크를 위한 비대칭 프로토콜 제품군입니다.
  • 이더넷 : LAN(근거리 통신망)의 장치가 통신하는 방법을 정의합니다. OSI 모델의 물리 계층과 데이터 링크 계층 모두에서 작동합니다.

OSI 및 TCP/IP 모델

OSI와 TCP/IP는 네트워크를 통한 데이터 통신과 관련된 프로세스를 설명하는 지침 프레임워크 역할을 하는 두 가지 기본 모델입니다.


OSI 모델

규약

데이터 형식

TCP/IP 모델

7

애플리케이션

HTTP, DNS, SMTP, FTP

데이터

애플리케이션

6

프레젠테이션

TLS, SSL

데이터

애플리케이션

5

세션

소켓

데이터

애플리케이션

4

수송

TCP, UDP

세그먼트, 패킷

수송

회로망

IP, ICMP, IPsec

IP 데이터그램

인터넷

2

데이터링크

PPP, 이더넷

액자

네트워크 인터페이스

1

물리적

섬유, 무선

조금

네트워크 인터페이스


OSI (Open Systems Interconnection) 모델은 7개 계층의 네트워크 상호 작용을 이해하기 위한 개념적 프레임워크입니다. 각 레이어는 특정 기능을 제공합니다.


  1. 물리적 : 장치 간의 물리적 연결을 처리합니다. 케이블, 스위치, NIC와 같은 하드웨어 요소를 정의합니다.


  2. 데이터 링크 : 직접 연결된 두 노드 사이에 안정적인 링크 생성, 오류 처리 및 데이터 흐름 조절을 담당합니다.


  3. 네트워크 : 네트워크를 통해 소스에서 대상으로 데이터를 전송하는 최적의 경로를 결정합니다.


  4. 전송 : 엔드투엔드 통신, 데이터 흐름 제어, 오류 수정을 보장합니다.


  5. 세션 : 양쪽 끝에서 애플리케이션 연결을 설정, 유지 및 종료합니다.


  6. 프레젠테이션 : 애플리케이션과 전송 계층 간에 데이터를 변환하여 데이터를 읽을 수 있도록 보장합니다.


  7. 애플리케이션 : 최종 사용자 애플리케이션과 직접 상호 작용하여 소프트웨어와 OSI 모델의 하위 계층 간의 효과적인 통신을 보장합니다.


TCP/IP는 현대 인터넷에서 주로 사용되는 보다 간결한 모델로, OSI 계층을 네 가지 범주로 단순화합니다.


  1. 네트워크 인터페이스 : OSI의 물리적 계층과 데이터 링크 계층의 기능을 결합하여 네트워크 매체에서 데이터를 보내고 받는 방법에 중점을 둡니다.


  2. 인터넷 : OSI의 네트워크 계층에 해당하며 데이터 라우팅, IP 주소 지정 및 패킷 전달을 처리합니다.


  3. 전송 : OSI의 전송 계층과 유사하며 데이터가 올바른 애플리케이션에 도달하고 안정적으로(TCP) 또는 빠르게(UDP) 전송되도록 보장합니다.


  4. 애플리케이션 : OSI의 세션, 프리젠테이션 및 애플리케이션 계층의 기능을 병합하여 최종 사용자 애플리케이션 프로세스를 처리합니다.

보안

시스템 설계에서는 민감한 데이터를 보호하고 사용자와 이해관계자의 신뢰를 유지하며 비즈니스 연속성을 보장하고 규제 요구 사항을 충족하기 위해 강력한 네트워크 보안을 보장하는 것이 가장 중요합니다.

일반적인 위협 및 취약점

  1. DDoS 공격 : 인터넷 트래픽의 홍수로 인해 대상 서버, 서비스 또는 네트워크의 정상적인 트래픽을 방해하려는 악의적인 시도입니다.


  2. 악성 코드(Malware) : 컴퓨터 시스템을 방해하거나 손상시키거나 무단으로 액세스하도록 설계된 소프트웨어입니다. 여기에는 바이러스, 웜, 스파이웨어, 랜섬웨어가 포함됩니다.


  3. 중간자 공격(Man-in-the-Middle Attacks) : 공격자가 비밀리에 두 당사자 간의 통신을 가로채서 중계합니다. 그들은 당사자 중 한 사람을 도청하거나 사칭하여 다른 사람을 속일 수 있습니다.


  4. 내부자 위협 : 직원, 전직 직원, 보안 관행과 관련된 내부 정보가 있는 파트너 등 조직 내부에서 발생하는 위협입니다.


  5. 소프트웨어 결함 : 소프트웨어의 버그나 약점을 악용하여 무단 액세스를 얻거나 서비스를 중단시킬 수 있습니다. 예로는 버퍼 오버플로 및 처리되지 않은 예외가 있습니다.


  6. 하드웨어 약점 : 물리적 구성 요소에는 변조될 수 있는 펌웨어나 제조업체가 설치한 백도어와 같은 취약점이 있을 수 있습니다.


  7. 잘못 구성된 네트워크 장치 : 올바르게 구성되지 않은 라우터, 스위치, 방화벽과 같은 장치는 네트워크를 다양한 위협에 노출시킬 수 있습니다.


  8. 약한 인증 및 권한 부여 : 불충분한 비밀번호 정책, 다단계 인증 부족 또는 느슨한 액세스 제어로 인해 무단 액세스가 허용될 수 있습니다.


  9. 암호화되지 않은 데이터 : 암호화되지 않은 데이터는 네트워크를 통해 이동하면서 쉽게 가로채서 읽을 수 있습니다.


  10. 오래된 시스템 : 더 이상 지원되지 않거나 업데이트되지 않은 시스템에는 악용하기 쉬운 알려진 취약점이 있을 수 있습니다.


  11. 물리적 취약성 : 공격자가 네트워크에 연결하거나 서버에 직접 액세스할 수 있는 물리적 액세스 지점을 나타냅니다.

네트워크 보안 보장을 위한 모범 사례

  1. 방화벽 : 보안 정책에 따라 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하기 위해 하드웨어 및 소프트웨어 방화벽을 배포합니다.


  2. 암호화 : 특히 전송 중(예: 웹 트래픽의 SSL/TLS) 및 저장 중(예: 데이터베이스 암호화)의 민감한 데이터에 암호화 프로토콜을 사용합니다.


  3. 정기 업데이트 : 취약점을 패치하기 위해 모든 시스템, 소프트웨어 및 애플리케이션을 업데이트된 상태로 유지합니다.


  4. MFA(Multi-Factor Authentication) : MFA를 구현하여 보안 계층을 추가하고 사용자가 액세스 권한을 얻기 위해 두 개 이상의 확인 요소를 제공하도록 보장합니다.


  5. 네트워크 모니터링 : 네트워크 모니터링 도구를 사용하여 네트워크에서 비정상적인 활동이나 무단 액세스를 지속적으로 모니터링합니다.


  6. 보안 인식 교육 : 직원과 사용자에게 보안의 중요성과 잠재적인 위협을 인식하는 방법을 교육합니다.


  7. 네트워크 분할 : 네트워크 내 위협 확산을 제한하고 데이터 액세스에 대한 더 나은 제어 기능을 제공합니다.


  8. 백업 및 재해 복구 : 침해 또는 장애 발생 시 데이터 가용성과 비즈니스 연속성을 보장합니다.


  9. 물리적 보안 : 네트워크 장치에 물리적으로 접근하면 침해가 발생할 수 있습니다.

결론

복잡한 토폴로지부터 기본 프로토콜의 미묘한 차이까지 네트워킹의 기본 사항을 파악하는 것은 단순히 학술적인 연습이 아니라 강력하고 효율적인 시스템을 만드는 데 중요합니다.


네트워크 원칙에 대한 확고한 기반은 시스템이 원활하게 통신하고 탄력적으로 적응하며 효율적으로 확장되도록 보장합니다.