컴퓨터 시스템의 기초 및 네트워킹

진정·2025년 4월 20일

컴퓨터 시스템 구조 : 하드웨어와 소프트웨어 🧩

컴퓨터의 기본 구성요소 🖥


CPU는 메모리에서 데이터를 읽고, 해당 연산을 수행하며, 그 결과를 다시 메모리에 기록하는 방식으로 작동 -> 이 모든 과정을 통제하는 것이 바로 운영체제(Operating System)

운영체제의 핵심 역할 🧠

운영체제는 단순한 UI 제공 도구가 아닌, 하드웨어와 소프트웨어 사이를 중재하고 자원을 효율적으로 분배하는 핵심 소프트웨어

주요 기능

  • 프로세스 관리: 실행 중인 프로그램을 독립된 단위로 관리
  • 스레드 관리: 하나의 프로세스 내에서 동시 실행 가능한 최소 작업 단위
  • 메모리 관리: 어떤 프로세스에 얼마만큼의 메모리를 줄 것인지 결정
  • 파일 시스템 관리: 디스크의 파일들을 저장, 검색, 삭제
  • 입출력 장치 제어: 키보드, 마우스, 네트워크 등 외부 장치 제어

프로세스 vs 스레드 🧵

# Python의 멀티스레딩 예시
import threading

def worker():
    print("스레드 작업 중...")

thread = threading.Thread(target=worker)
thread.start()
thread.join()

리눅스(Linux) 기초 프로그래밍과 명령어

리눅스는 이미 유명하지만 정리하자면 개발자 친화적이고, 성능이 뛰어난 오픈소스 운영체제로, 백엔드, 서버, 클라우드, AI 환경에서 널리 사용됨

기본 명령어 요약

실행 권한 관리🔐

chmod +x script.sh   # 실행 권한 추가
./script.sh          # 스크립트 실행

리눅스의 디렉토리 구조 예시📁

  • /bin: 기본 명령어 저장
  • /etc: 설정 파일
  • /home: 사용자 디렉토리
  • /proc: 실행 중인 프로세스 정보
  • /var: 로그 파일 저장소

네트워크 기초 : 인터넷의 동작 원리 이해하기🌐

네트워크 계층 구조 (OSI 7계층 요약)📦

IP, 포트, 프로토콜 핵심 개념📡

# Python의 간단한 TCP 클라이언트 예제
import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('example.com', 80))
client.sendall(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')
response = client.recv(4096)
print(response.decode())

이번 주 학습 내용 >> To-Do

이러한 하위 시스템을 이해하면:프로그램이 어떻게 실행되고 종료되는지,시스템 자원이 어떻게 배분되는지,코드가 어떻게 서버와 통신하는지 등 기초적인 원리를 바탕으로 더욱 견고한 개발이 가능해지니 개발자로서 "문제가 생겼을 때 어디를 의심해야 하는가?"를 판단할 수 있는 눈을 갖춰어야 될것 같음(지금보다 조금 더 전문적인 지식을 함유해야 될것 같음)

  • 앞으로는 이 개념들을 실제 Python 프로그램, Docker 환경, 서버 구축 등에 적용해보면서, 이론을 실전 감각으로 개인 프로젝트에 적용 시도 예정

0개의 댓글