본문 바로가기
반응형
[고급 프로그래밍] 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.
[고급 프로그래밍] Week 4: 분산 시스템의 기본 원리 Day 1: 분산 시스템 아키텍처강의 내용:분산 시스템 아키텍처의 개념클라이언트-서버 모델피어 투 피어 (P2P) 모델분산 시스템의 구성 요소노드 (Nodes)네트워크 (Networks)프로토콜 (Protocols)실습:간단한 분산 시스템 아키텍처 설계# P2P 네트워크 시뮬레이션 예제import threadingclass Node: def __init__(self, name): self.name = name self.peers = [] def connect(self, peer): self.peers.append(peer) peer.peers.append(self) def broadcast(self, message): for .. 2024. 6. 2.
[고급 프로그래밍] Week 3: 분산 시스템의 개념과 장단점 Day 1: 분산 시스템 개요강의 내용:분산 시스템의 개념분산 시스템이란 무엇인가?분산 시스템의 기본 구조분산 시스템의 특징자원 공유, 병렬 처리, 확장성분산 시스템의 응용 분야클라우드 컴퓨팅, 분산 데이터베이스, P2P 네트워크실습:분산 시스템 server_socket.listen() print("Server listening on port 65432...") conn, addr = server_socket.accept() with conn: print(f"Connected by {addr}") while True: data = conn.recv(1024) if not data: break .. 2024. 6. 2.
[고급 프로그래밍] Week 2: 멀티 프로세싱 (Multiprocessing) Day 1: 멀티 프로세싱 개요강의 내용:멀티 프로세싱의 개념멀티 프로세싱이란 무엇인가?멀티 스레딩과 멀티 프로세싱의 차이점파이썬에서의 멀티 프로세싱multiprocessing 모듈 소개기본 프로세스 생성 및 관리실습:간단한 멀티 프로세싱 예제import multiprocessingdef print_numbers(): for i in range(10): print(i)def print_letters(): for letter in 'abcdefghij': print(letter)process1 = multiprocessing.Process(target=print_numbers)process2 = multiprocessing.Process(target=print_lette.. 2024. 6. 2.
[고급 프로그래밍] Week 1: 멀티 스레딩 (Multithreading) Day 1: 멀티 스레딩 개요강의 내용:멀티 스레딩의 개념멀티 스레딩이란 무엇인가?병렬 처리의 필요성과 이점파이썬에서의 멀티 스레딩threading 모듈 소개기본 스레드 생성 및 관리실습:간단한 멀티 스레딩 예제import threadingdef print_numbers(): for i in range(10): print(i)def print_letters(): for letter in 'abcdefghij': print(letter)thread1 = threading.Thread(target=print_numbers)thread2 = threading.Thread(target=print_letters)thread1.start()thread2.start()thread1.. 2024. 6. 2.
반응형