[CORE-012][실무] 내 컴퓨터와 인터넷 연결 지도로 정리하기 > IT 기술 공유

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

IT 기술 공유

[CORE-012][실무] 내 컴퓨터와 인터넷 연결 지도로 정리하기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 84회 작성일 26-09-06 03:34

본문

[이번 수업]

내 컴퓨터의 운영체제·CPU·저장 공간·네트워크 주소 종류를 확인하고 한 장의 구조도로 설명하는 미니 프로젝트입니다. 하드웨어, 운영체제, 프로그램, 네트워크가 어떻게 이어지는지 자신의 말로 정리합니다.

[선수지식]

CORE-003의 저장장치, CORE-007의 운영체제 경계, CORE-009의 웹 연결 흐름을 알면 좋습니다. Python 파일을 실행할 수 있으면 됩니다.

[학습목표]

1. 내 컴퓨터의 기본 구성을 안전하게 수집한다.
2. 논리 CPU와 저장 공간 수치의 범위를 설명한다.
3. 앱에서 인터넷 서버까지의 지도를 그린다.

[핵심개념]

CPU·메모리·저장장치·네트워크 어댑터 같은 하드웨어를 운영체제가 관리하고, 그 위에서 프로그램이 프로세스로 실행됩니다. 프로그램은 파일시스템으로 저장하고 소켓이라는 통로로 통신합니다.

논리 CPU 수는 운영체제가 보는 실행 단위 수라서 물리 코어 수와 다를 수 있습니다. 홈 폴더의 디스크 사용량은 그 경로가 속한 저장 영역의 값이지 모든 디스크의 합이 아닙니다. 아키텍처 표기도 환경에 따라 AMD64, x86_64, arm64처럼 다릅니다.

네트워크는 ‘프로그램 → 운영체제 소켓 → 유선·무선 어댑터 → 공유기·게이트웨이 → 인터넷 → 서버’로 흐릅니다. DNS는 이름을 통신 주소로 찾습니다. 사설 IPv4 주소는 내부에서 재사용하며 인터넷 전체에서 고유한 공인 주소와 역할이 다릅니다. 한 컴퓨터에도 루프백, 사설 IPv4, IPv6가 함께 있을 수 있습니다.

[따라하기]

computer_map.py를 만들고 붙여 넣으세요. 호스트 이름과 정확한 IP는 숨기고 주소 종류만 표시합니다.

```python
import ipaddress
import json
import os
import platform
import shutil
import socket
from pathlib import Path

def gib(value):
    return round(value / (1024 ** 3), 1)

def address_kind(text):
    ip = ipaddress.ip_address(text.split("%", 1)[0])
    if ip.is_loopback:
        return "loopback"
    if ip.is_link_local:
        return "link-local"
    if ip.is_private:
        return "private"
    return "public"

disk = shutil.disk_usage(Path.home())
try:
    addresses = {
        item[4][0]
        for item in socket.getaddrinfo(socket.gethostname(), None)
    }
except socket.gaierror:
    addresses = set()

report = {
    "os": platform.system() or "unknown",
    "architecture": platform.machine() or "unknown",
    "logical_cpu": os.cpu_count(),
    "home_disk_total_gib": gib(disk.total),
    "home_disk_free_gib": gib(disk.free),
    "local_address_types": sorted({address_kind(x) for x in addresses}) or ["unknown"],
}
print(json.dumps(report, ensure_ascii=False, indent=2))
```

macOS·Linux에서는 `python3 computer_map.py`, Windows에서는 `py computer_map.py`를 실행합니다. 환경에 따라 `python`도 됩니다. 예상 결과는 운영체제, 아키텍처, 논리 CPU 수, 홈 저장 영역의 전체·여유 GiB, 주소 종류가 JSON으로 표시되는 것입니다. 값은 컴퓨터마다 다릅니다.

결과 아래에 두 지도를 그리세요.
`[프로그램] → [운영체제·파일] → [CPU·메모리·저장장치]`
`[프로그램] → [소켓] → [어댑터] → [공유기/게이트웨이] → [인터넷 서버]`

[흔한 실수]

논리 CPU를 물리 CPU 개수로 단정하거나 디스크 여유 공간을 메모리로 부르지 마세요. 사설 주소가 보여도 인터넷에 직접 공개됐다는 뜻은 아닙니다. unknown은 추측하지 말고 운영체제 설정에서 다시 확인하세요.

[보안 주의]

호스트·사용자 이름, 정확한 IP·MAC 주소, 장치 일련번호는 공개하지 마세요. 타인 장비를 조사할 필요도 없습니다. 본인 소유 컴퓨터에서만 실행하고 결과 공유 시 운영체제와 숫자 범위만 남기세요.

[직접 해볼 과제]

실행 결과와 지도를 문서에 옮기고 각 요소의 역할을 한 문장씩 적으세요. 파일을 읽을 때와 웹페이지를 열 때 데이터가 지나는 순서도 각각 화살표로 설명하세요.

[확인문제]

1. 논리 CPU 수와 물리 코어 수가 다를 수 있는 이유는 무엇인가요?
2. 홈 폴더 디스크 사용량이 모든 저장장치의 합이 아닌 이유는 무엇인가요?
3. 사설 IP와 공인 IP의 역할은 어떻게 다른가요?

[다음 학습]

CS-012에서 작은 문제를 나누고 설계·구현·검증하는 종합 실습을 진행합니다.

[공식 참고 자료]

https://docs.python.org/3/library/platform.html
https://docs.python.org/3/library/os.html#os.cpu_count
https://docs.python.org/3/library/shutil.html#shutil.disk_usage
https://docs.python.org/3/library/socket.html#socket.getaddrinfo
https://docs.python.org/3/library/ipaddress.html
https://www.rfc-editor.org/info/rfc1918/

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

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

접속자집계

오늘
2,023
어제
5,103
최대
16,772
전체
773,077
Copyright © 소유하신 도메인. All rights reserved.