[NET-012][실무] 작은 웹서비스의 통신 지도 만들기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[NET-012][실무] 작은 웹서비스의 통신 지도 만들기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 78회 작성일 26-09-06 12:33

본문

[이번 수업]

사용자부터 공개 입구, 애플리케이션, 데이터베이스, 외부 API까지 이어지는 통신 지도를 만듭니다. 연결 방향·프로토콜·포트·신뢰 경계를 한눈에 설명하는 종합 실습입니다.

[선수지식]

NET-002의 주소, NET-004의 TCP와 포트, NET-005의 HTTPS, NET-008의 리버스 프록시, NET-009의 방화벽을 알면 좋습니다.

[학습목표]

1. 공개 구간과 사설 구간을 나눠 그린다.
2. 각 연결에 방향·프로토콜·포트·목적을 적는다.
3. 장애 지점과 꼭 필요한 통신만 확인한다.

[핵심개념]

네트워크 구성도는 장식이 아니라 운영 약속입니다. 상자는 구성요소, 화살표는 시작점과 도착점, 선의 글자는 프로토콜과 포트를 뜻합니다. 신뢰 경계는 같은 수준으로 믿지 않는 구간의 경계입니다. 인터넷, 공개 입구, 사설 애플리케이션 구간을 나누면 어디에 접근 제어가 필요한지 보입니다.

예제에서는 인터넷에서 리버스 프록시의 HTTPS 443만 받습니다. 프록시는 사설 애플리케이션의 8000번으로 전달하고, 애플리케이션만 데이터베이스 5432번에 연결합니다. 외부 API 호출은 애플리케이션에서 나가는 HTTPS만 허용합니다. 포트 번호는 예시이므로 실제 설계에서는 사용하는 제품 설정과 일치시켜야 합니다.

[따라하기]

network.md에 아래 Mermaid 블록을 저장하세요. Mermaid는 글로 다이어그램을 표현하는 문법입니다. 지원하는 미리보기 도구에서 열면 흐름도로 보입니다.
```mermaid
flowchart LR
  subgraph INTERNET[인터넷]
    U[사용자]
    X[외부 API]
  end
  subgraph EDGE[공개 구간]
    P[리버스 프록시]
  end
  subgraph PRIVATE[사설 구간]
    A[애플리케이션]
    D[(데이터베이스)]
  end
  U -->|HTTPS TCP 443| P
  P -->|HTTP TCP 8000| A
  A -->|DB TCP 5432| D
  A -->|HTTPS TCP 443| X
```

그림 아래에는 연결표도 적습니다.
```text
출발            도착              통신              허용 이유
사용자          리버스 프록시    HTTPS/TCP 443    웹 요청
리버스 프록시    애플리케이션      HTTP/TCP 8000    내부 전달
애플리케이션    데이터베이스      DB/TCP 5432      데이터 조회·저장
애플리케이션    외부 API          HTTPS/TCP 443    필요한 외부 조회
```

한 연결을 로컬에서 확인해 봅시다. macOS·Linux는 `python3 -m http.server 8000 --bind 127.0.0.1`, Windows는 `py -m http.server 8000 --bind 127.0.0.1`을 실행합니다. 다른 터미널에서 `curl -I --max-time 3 http://127.0.0.1:8000`을 실행하세요. Windows PowerShell에서는 `curl.exe`를 사용하면 같은 옵션이 적용됩니다. 예상 결과는 200 상태와 Server·Date 같은 응답 헤더입니다. 이는 전체 구조가 아니라 애플리케이션 8000번 연결 한 개만 격리해 확인한 것입니다. 서버는 Ctrl+C로 끝냅니다.

그림을 읽으며 프록시가 멈추면 외부 요청이 어디서 끊기는지, 데이터베이스가 멈추면 어느 기능이 실패하는지 적어 보세요. 구성도와 연결표의 포트가 다르면 배포 전에 수정합니다.

[흔한 실수]

화살표 방향과 포트를 생략하거나 인터넷과 사설망을 한 상자에 섞지 마세요. 데이터베이스를 사용자와 직접 연결하거나, 실제 설정과 다른 그림을 방치하면 점검 자료로 쓸 수 없습니다.

[보안 주의]

구성도에는 실제 공인 IP, 내부 호스트명, 계정, 토큰을 넣지 않습니다. 꼭 필요한 경로만 허용하고 나머지는 기본 차단으로 설계하세요. 관리 통신은 사용자 경로와 분리하며, 실제 시스템을 스캔하지 말고 본인 소유 로컬·격리 환경에서만 확인합니다. 구성도 자체도 접근 권한을 관리합니다.

[직접 해볼 과제]

상태 확인 경로와 관리자의 접속 경로를 다른 색 또는 점선으로 추가하세요. 각 경로의 시작점, 인증 여부, 허용 대상을 연결표에 적습니다.

[확인문제]

1. 신뢰 경계를 구성도에 표시하면 무엇이 좋아지나요?
2. 데이터베이스를 공개 입구에 직접 연결하지 않는 이유는 무엇인가요?
3. 구성도와 실제 포트 설정을 함께 점검해야 하는 이유는 무엇인가요?

[다음 학습]

CLOUD-012에서 이 구성을 여러 가용영역을 고려한 3계층 서비스로 확장합니다.

[공식 참고 자료]

https://www.rfc-editor.org/rfc/rfc9110.html
https://www.rfc-editor.org/rfc/rfc8446.html
https://www.rfc-editor.org/rfc/rfc1918.html
https://mermaid.js.org/syntax/flowchart.html
https://csrc.nist.gov/pubs/sp/800/207/final

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
1,809
어제
5,103
최대
16,772
전체
772,863
Copyright © 소유하신 도메인. All rights reserved.