GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (189)
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (29)
      • CS (15)
      • OS (13)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 자소서
  • 포트폴리오
  • 이력서

[Deep Dive] 쓰레드와 병렬 프로그래밍 - 1탄 개념 이해

정글 8주차에 웹서버를 구현하다 보니 쓰레드를 사용해서 병렬 처리를 해야 했다. 그래서 당장 구현을 할 수준으로만 이해를 한 뒤 구현을 끝낸 지금 다시 쓰레드에 대해 깊게 이해를 하려고 한다. 그래서 이번 Deep Dive에서는 프로세스가 아닌 쓰레드를 주로 다룰 생각이다.1. 프로세스 vs 쓰레드 차이프로세스(Process)정의: 실행 중인 프로그램. 운영체제로부터 독립된 주소 공간, 자원(File descriptor, Stack, Heap 등)을 부여받음.특징:각각의 프로세스는 커널에서 독립적으로 관리됨 (PID, 메모리 맵 등).프로세스 간 데이터 공유가 어렵다 (보통 IPC, Shared Memory, Pipe 등 필요).생성/문맥전환 비용이 큼 (Context switch: PCB 저장/복원 포..

  • format_list_bulleted Deep Dive/CS
  • · 2025. 5. 3.
  • textsms

컴퓨터 시스템 : CSAPP 11장 정리 - 11.6 종합설계 :소형 웹 서버 Part.2

지난 포스팅에서 11.6장 Tiny Web Server의 main()과 doit() 함수에 대해 알아봤다.2025.05.03 - [크래프톤 정글 (컴퓨터 시스템: CSAPP)/11장 네트워크 프로그래밍] - 컴퓨터 시스템 : CSAPP 11장 정리 - 11.6 종합설계 :소형 웹 서버 Part.1 컴퓨터 시스템 : CSAPP 11장 정리 - 11.6 종합설계 :소형 웹 서버 Part.111.6절 Putting It Together: The Tiny Web Server이 절에서는 지금까지 배운 내용을 종합하여 작동 가능한 소형 웹 서버 Tiny를 구현한다. 이 서버는 다음을 처리할 수 있다:정적 콘텐츠 (HTML, 이미지 등)동적www.gowoong.com이제 다음 함수들에 대해 계속 알아보도록 하겠다.1..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/11장 네트워크 프로그래밍
  • · 2025. 5. 3.
  • textsms

컴퓨터 시스템 : CSAPP 11장 정리 - 11.6 종합설계 :소형 웹 서버 Part.1

11.6절 Putting It Together: The Tiny Web Server이 절에서는 지금까지 배운 내용을 종합하여 작동 가능한 소형 웹 서버 Tiny를 구현한다. 이 서버는 다음을 처리할 수 있다:정적 콘텐츠 (HTML, 이미지 등)동적 콘텐츠 (CGI 프로그램 실행 결과)Tiny는 단 250줄 내외의 코드로 구성되어 있지만, 프로세스 제어, 소켓 인터페이스, Unix I/O, HTTP 프로토콜의 핵심 개념을 모두 포함하고 있다.1. main() 함수 (그림 11.29)전체 코드 확인하기더보기더보기/* $begin tinymain *//* * tiny.c - A simple, iterative HTTP/1.0 Web server that uses the * GET method to se..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/11장 네트워크 프로그래밍
  • · 2025. 5. 3.
  • textsms
컴퓨터 시스템 : CSAPP 11장 정리 - 11.5 웹 서버 이론편

컴퓨터 시스템 : CSAPP 11장 정리 - 11.5 웹 서버 이론편

11.5절: 웹 서버 (Web Servers)이 절에서는 지금까지 학습한 네트워크와 소켓 프로그래밍 기술을 바탕으로 실제 작동하는 웹 서버인 Tiny를 구현하는 방법을 설명한다. Tiny는 기능이 간단하면서도 실제 웹 브라우저로 접근할 수 있는 완전한 서버이다. 이를 통해 서버의 핵심 동작 원리를 배울 수 있다.11.5.1절: 웹의 기초 (Basic Concepts of the Web)웹은 클라이언트-서버 모델에 기반한다. 이때 웹 서버는 정적(static) 콘텐츠(예: HTML, JPEG 파일)를 클라이언트에 전송하거나, 동적(dynamic) 콘텐츠(예: 데이터베이스 쿼리 결과)를 생성해 전달한다.웹 트랜잭션의 흐름사용자가 웹 브라우저에 URL을 입력하면 브라우저는 해당 웹 서버에 HTTP 요청 메시지..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/11장 네트워크 프로그래밍
  • · 2025. 5. 3.
  • textsms
컴퓨터 시스템 : CSAPP 11장 정리 - 11.4 소켓 인터페이스

컴퓨터 시스템 : CSAPP 11장 정리 - 11.4 소켓 인터페이스

11.4절: 소켓 인터페이스 (The Sockets Interface)소켓 인터페이스는 네트워크 응용 프로그램을 구축하기 위해 Unix I/O 함수들과 함께 사용하는 함수 집합이다. 거의 모든 현대 시스템(Unix, Windows, macOS 등)에 구현되어 있으며, 클라이언트-서버 트랜잭션에서 다음과 같은 흐름을 갖는다:클라이언트와 서버는 각각 socket() 함수를 호출하여 소켓을 생성한다.서버는 bind()와 listen()을 통해 포트를 열고 연결을 대기한다.클라이언트는 connect()를 호출하여 서버에 연결을 요청한다.서버는 accept()를 통해 클라이언트의 연결 요청을 수락한다.양측은 rio_readlineb, rio_writen 등을 이용해 데이터를 주고받는다.연결이 끝나면 close()..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/11장 네트워크 프로그래밍
  • · 2025. 5. 2.
  • textsms
컴퓨터 시스템 : CSAPP 11장 정리 - 11.3 글로벌 IP 인터넷

컴퓨터 시스템 : CSAPP 11장 정리 - 11.3 글로벌 IP 인터넷

11.3절: 글로벌 IP 인터넷 (The Global IP Internet)글로벌 IP 인터넷은 가장 널리 알려진 인터넷의 구현체이며, 1969년부터 존재해 왔다. 내부 구조는 복잡하고 지속적으로 변화하고 있지만, 클라이언트-서버 응용 프로그램의 조직 방식은 1980년대 초부터 놀라울 정도로 안정적으로 유지되어 왔다.각 인터넷 호스트는 TCP/IP 프로토콜을 구현하는 소프트웨어를 실행한다. 이 프로토콜은 거의 모든 현대 시스템에서 지원된다. 클라이언트와 서버는 소켓 인터페이스 함수와 Unix I/O 함수를 조합하여 통신한다. IP는 이름 지정 체계와 패킷 전송 메커니즘을 제공하며, TCP는 이 위에 구축되어 신뢰할 수 있는 양방향 연결을 제공한다. 이 절에서는 TCP/IP를 단일 프로토콜처럼 간단화하여 ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/11장 네트워크 프로그래밍
  • · 2025. 5. 2.
  • textsms
  • navigate_before
  • 1
  • ···
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • ···
  • 32
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (189)
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (29)
      • CS (15)
      • OS (13)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
최근 글
인기 글
최근 댓글
태그
  • #CLF-C01
  • #AWS Community Day
  • #serverless
  • #AWS
  • #saa-c03
  • #Cloud Practitioner
  • #IOT
  • #aws #iot
  • #AWS 자격증
  • #AWSKRUG
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바