본문 바로가기
반응형
[네트워크 프로그래밍] 고급 네트워크 프로그래밍 교육과정 (20주) Week 1-2: 네트워크 프로그래밍 기초 복습 및 심화네트워크 기본 개념과 TCP/IP 모델소켓 프로그래밍 기초 및 고급 소켓 옵션간단한 TCP/UDP 서버와 클라이언트 구현Week 3-4: 네트워크 프로토콜 심화TCP 연결 설정, 흐름 제어 및 혼잡 제어UDP 프로토콜, 데이터그램 통신, 멀티캐스트TCP와 UDP의 심화 학습과 구현Week 5-6: 비동기 I/O 및 멀티스레드 프로그래밍비동기 I/O 개념 및 asyncio 모듈 사용법멀티스레드 소켓 프로그래밍비동기와 멀티스레드를 활용한 네트워크 프로그래밍 예제Week 7-8: 보안 네트워크 프로그래밍SSL/TLS 개념과 구현SSH, HTTPS, VPN의 이해 및 사용법보안 소켓 프로그래밍과 paramiko를 사용한 SSH 클라이언트 구현Week 9-1.. 2024. 6. 3.
[고급 프로그래밍] Week 12: 파이썬에서의 gRPC 활용, 간단한 gRPC 서버와 클라이언트 구현 Day 1: gRPC 설치 및 환경 설정강의 내용:gRPC 설치gRPC와 Protocol Buffers 설치gRPC 환경 설정Python에서 gRPC 설정gRPC 예제 프로젝트 설정실습:gRPC 및 Protocol Buffers 설치 및 환경 설정# gRPC 및 Protocol Buffers 설치pip install grpcio grpcio-tools Day 2: gRPC 서버 구현강의 내용:gRPC 서버 구현 방법gRPC 서버 설정서비스 구현서버 코드 작성.proto 파일 기반 서비스 구현서버 실행 및 테스트실습:gRPC 서버 구현 예제import grpcfrom concurrent import futuresimport example_pb2import example_pb2_grpcclass Exampl.. 2024. 6. 3.
[고급 프로그래밍] Week 11: RPC 개념과 동작 원리 Day 1: RPC 개요강의 내용:RPC의 개념원격 프로시저 호출 (Remote Procedure Call)란 무엇인가?RPC의 역사와 배경RPC의 동작 원리클라이언트와 서버의 상호작용스텁 (Stub)과 스켈레톤 (Skeleton)RPC의 장점과 단점RPC의 장점: 간편한 호출, 언어 독립성RPC의 단점: 네트워크 지연, 장애 복구 문제실습:RPC의 기본 개념 설명 및 예제 코드 소개### RPC 개요1. RPC란 무엇인가? - 원격 서버의 함수나 절차를 로컬에서 호출하는 것처럼 사용하는 기술 - 분산 시스템에서의 통신을 단순화2. RPC의 동작 원리 - 클라이언트가 원격 프로시저를 호출 - 클라이언트 스텁이 호출을 받아 직렬화 - 네트워크를 통해 서버로 전송 - 서버 스켈레톤이 호.. 2024. 6. 2.
[고급 프로그래밍] Week 10: 파이썬 AsyncIO 모듈 활용, 비동기 프로그래밍 예제 Day 1: Python AsyncIO 모듈 소개강의 내용:AsyncIO 모듈의 개념AsyncIO란 무엇인가?AsyncIO의 주요 기능AsyncIO의 아키텍처이벤트 루프코루틴태스크와 퓨처AsyncIO의 사용 사례비동기 웹 서버비동기 네트워크 클라이언트실습:AsyncIO 모듈을 사용한 간단한 예제import asyncioasync def hello_world(): print("Hello, World!") await asyncio.sleep(1) print("Goodbye, World!")asyncio.run(hello_world()) Day 2: AsyncIO 코루틴 작성강의 내용:코루틴의 작성코루틴 함수 정의await 키워드 사용코루틴의 실행이벤트 루프에서 실행코루틴 스케줄링코루틴의 상태.. 2024. 6. 2.
[고급 프로그래밍] Week 9: 비동기 I/O의 개념과 필요성 Day 1: 비동기 I/O 개요강의 내용:비동기 I/O의 개념비동기 I/O란 무엇인가?동기 I/O와 비동기 I/O의 차이점비동기 I/O의 필요성비동기 I/O의 장점비동기 I/O가 사용되는 사례비동기 I/O의 주요 개념이벤트 루프 (Event Loop)코루틴 (Coroutines)퓨처 (Futures)실습:동기 I/O와 비동기 I/O의 성능 비교import timeimport asyncio# 동기 I/O 예제def sync_io(): time.sleep(1) return "Sync I/O"start_time = time.time()results = [sync_io() for _ in range(5)]end_time = time.time()print(f"동기 I/O 시간: {end_time - s.. 2024. 6. 2.
[고급 프로그래밍] Week 8: Spark에서의 데이터 처리 및 분석 Day 1: Spark SQL강의 내용:Spark SQL의 개념Spark SQL이란 무엇인가?Spark SQL의 주요 기능Spark SQL의 아키텍처Catalyst 옵티마이저Tungsten 실행 엔진Spark SQL의 사용 사례구조화된 데이터 처리데이터베이스 통합실습:Spark SQL을 사용한 데이터 처리 예제# SparkSession 생성spark = SparkSession.builder.appName("SparkSQLExample").getOrCreate()# DataFrame 생성data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]columns = ["Name", "Age"]df = spark.createDataFrame(data, columns)# SQL .. 2024. 6. 2.
[고급 프로그래밍] Week 7: Apache Spark 개요 및 설치, RDD와 DataFrame 기본 개념 Day 1: Apache Spark 개요강의 내용:Apache Spark의 개념Apache Spark란 무엇인가?Spark의 주요 특징Spark의 사용 사례Spark의 아키텍처Spark CoreSpark SQLSpark StreamingMLlib (Machine Learning Library)GraphXSpark의 장점빠른 처리 속도사용의 편리성유연한 API실습:Apache Spark 개요와 아키텍처 설명### Apache Spark 개요1. Apache Spark란? - 분산 데이터 처리 프레임워크 - 대규모 데이터 분석 및 처리 - 다양한 언어 지원 (Python, Java, Scala 등)2. Spark 아키텍처 - Spark Core: 기본 컴퓨팅 엔진 - Spark SQL: 구.. 2024. 6. 2.
[고급 프로그래밍] Week 6: Hadoop의 MapReduce 구현과 Python을 이용한 예제 Day 1: Hadoop 소개강의 내용:Hadoop의 개념Hadoop이란 무엇인가?Hadoop의 주요 구성 요소Hadoop 아키텍처HDFS (Hadoop Distributed File System)YARN (Yet Another Resource Negotiator)Hadoop MapReduceHadoop의 장점과 단점대규모 데이터 처리의 장점복잡성과 비용실습:Hadoop 환경 설정 및 설치 안내### Hadoop 설치 및 설정1. Hadoop 다운로드 및 설치 - https://hadoop.apache.org/ 에서 다운로드 - 설치 및 환경 변수 설정2. Hadoop 클러스터 설정 - HDFS 및 YARN 구성 파일 설정 - 네임노드 및 데이터노드 시작 Day 2: Hadoop의 MapR.. 2024. 6. 2.
[고급 프로그래밍] Week 5: MapReduce 개념과 아키텍처 Day 1: MapReduce 개념강의 내용:MapReduce의 정의MapReduce란 무엇인가?Map과 Reduce의 기본 개념MapReduce의 역사와 배경Google의 MapReduce 논문분산 데이터 처리의 필요성MapReduce의 주요 기능데이터 병렬 처리대규모 데이터 집합의 처리실습:간단한 MapReduce 개념 시뮬레이션from collections import defaultdictdef map_function(document): for word in document.split(): yield (word.lower(), 1)def reduce_function(word, counts): yield (word, sum(counts))documents = ["Hello wo.. 2024. 6. 2.
[고급 프로그래밍] Week X: 분산 파일 시스템 (Distributed File System) Day 1: 분산 파일 시스템 개요강의 내용:분산 파일 시스템의 개념분산 파일 시스템이란 무엇인가?중앙 집중식 파일 시스템과의 차이점분산 파일 시스템의 구조파일 시스템의 계층적 구조네임노드 (Name Node)와 데이터노드 (Data Node)분산 파일 시스템의 응용 사례HDFS (Hadoop Distributed File System)Google File System (GFS)실습:분산 파일 시스템의 기본 아키텍처 설계### 분산 파일 시스템 기본 아키텍처1. 네임노드 (Name Node) - 파일 시스템 메타데이터 관리 - 파일 위치 정보 저장2. 데이터노드 (Data Node) - 실제 데이터 블록 저장 - 데이터 읽기 및 쓰기 요청 처리 Day 2: 파일 분산 및 저장강의 내용:파일.. 2024. 6. 2.
반응형