본문 바로가기
반응형
[네트워크 프로그래밍] Week 5: 비동기 I/O 및 멀티스레드 프로그래밍 비동기 I/O 및 멀티스레드 프로그래밍Day 1: 비동기 I/O의 개념 강의 내용:비동기 I/O의 정의비동기 I/O란 무엇인가?비동기 I/O와 동기 I/O의 차이점비동기 I/O의 필요성고성능 네트워크 애플리케이션의 요구사항리소스 효율적인 사용응답 시간 단축Python의 asyncio 모듈 소개asyncio 모듈 개요주요 구성 요소: 이벤트 루프, 코루틴, 태스크실습:간단한 비동기 I/O 예제import asyncioasync def hello_world(): print("Hello, World!") await asyncio.sleep(1) print("Goodbye, World!")asyncio.run(hello_world()) Day 2: asyncio를 사용한 비동기 네트워크 프로그래.. 2024. 6. 4.
[네트워크 프로그래밍] Week 4: 네트워크 프로토콜 심화 (UDP 및 멀티캐스트) 네트워크 프로토콜 심화 (UDP 및 멀티캐스트) Day 1: UDP 프로토콜 개요 강의 내용:UDP 프로토콜의 개념UDP의 정의와 특징TCP와의 비교 (연결형 vs 비연결형)UDP의 장단점장점: 빠른 데이터 전송, 낮은 오버헤드단점: 신뢰성 부족, 데이터 순서 보장 없음UDP 사용 사례실시간 애플리케이션 (VoIP, 스트리밍)DNS, DHCP 등의 네트워크 서비스실습:UDP 기본 통신 예제# UDP 서버import socketdef start_udp_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server_socket.bind(('localhost', 12345)) print("UDP 서버가 포트 1.. 2024. 6. 4.
[네트워크 프로그래밍] Week 3: 네트워크 프로토콜 심화 (TCP) 네트워크 프로토콜 심화 (TCP) Day 1: TCP 연결 설정과 해제 강의 내용:TCP 프로토콜의 기본 개념TCP의 역할과 특징신뢰성 있는 데이터 전송 보장TCP 연결 설정 (3-Way Handshake)SYN, SYN-ACK, ACK 패킷연결 설정 과정의 상세 설명TCP 연결 해제 (4-Way Handshake)FIN, ACK 패킷연결 해제 과정의 상세 설명실습:TCP 연결 설정과 해제 과정 실습# TCP 서버import socketdef start_tcp_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 12345)) server_socke.. 2024. 6. 4.
[네트워크 프로그래밍] Week 2: 소켓 프로그래밍 기초 및 고급 소켓 옵션 소켓 프로그래밍 기초 및 고급 소켓 옵션Day 1: 소켓 프로그래밍 기초 강의 내용:소켓의 개념과 역할소켓의 정의와 역할소켓 통신의 기본 구조소켓 타입과 프로토콜스트림 소켓 (TCP)데이터그램 소켓 (UDP)원시 소켓 (Raw Socket)Python 소켓 라이브러리소켓 생성 (socket.socket())소켓 바인딩 (bind())소켓 청취 (listen())소켓 연결 (accept())실습:기본 소켓 프로그래밍 예제# TCP 서버import socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(('localhost', 12345))server_socket.listen(5)print("TCP 서버.. 2024. 6. 4.
[코딩테스트] 8주차: 실전 모의 코딩 테스트 실전 모의 코딩 테스트학습 주제실제 코딩 테스트와 유사한 환경에서 연습시간 관리와 문제 해결 전략 수립학습 목표실전 코딩 테스트 환경에 익숙해지고, 시간 내에 문제를 해결할 수 있는 능력을 기른다.다양한 문제 해결 전략을 익히고, 이를 통해 효율적으로 문제를 해결할 수 있다.학습 자료온라인 저지 플랫폼 (예: LeetCode, HackerRank, Codeforces)에서 제공하는 실전 문제실습 문제각 문제를 실제 코딩 테스트 환경에서 제한 시간 내에 풀어보세요. 문제는 LeetCode, HackerRank, Codeforces 등의 플랫폼에서 선택하여 진행할 수 있습니다. 1. Two Sum (LeetCode)주어진 배열에서 두 숫자의 합이 목표 값이 되는 인덱스 쌍을 찾으세요.문제 링크def two_.. 2024. 6. 4.
[코딩테스트] 7주차: 고급 자료구조 고급 자료구조학습 주제세그먼트 트리펜윅 트리 (Fenwick Tree)우선순위 큐와 힙학습 목표세그먼트 트리와 펜윅 트리의 개념을 이해하고, 다양한 쿼리 문제에 적용할 수 있다.우선순위 큐와 힙을 사용하여 효율적으로 데이터 구조를 관리하고, 관련 문제를 해결할 수 있다.학습 자료세그먼트 트리의 개념 및 구현 방법펜윅 트리의 개념 및 구현 방법우선순위 큐와 힙의 개념 및 활용실습 문제1. 세그먼트 트리를 사용한 범위 쿼리 문제주어진 배열에 대해 세그먼트 트리를 사용하여 범위 합 쿼리를 처리하는 함수를 작성하세요.class SegmentTree: def __init__(self, data): self.n = len(data) self.tree = [0] * (2 * self.n.. 2024. 6. 4.
[코딩테스트] 6주차: 탐욕 알고리즘과 최적화 탐욕 알고리즘과 최적화학습 주제탐욕 알고리즘의 개념과 적용 방법탐욕 알고리즘을 사용한 문제 풀이 (활동 선택 문제, 최소 신장 트리 - Kruskal, Prim)학습 목표탐욕 알고리즘의 원리를 이해하고 다양한 문제에 적용할 수 있다.탐욕 알고리즘을 사용하여 최적의 해를 찾는 문제를 해결할 수 있다.활동 선택 문제, 최소 신장 트리 등의 대표적인 탐욕 알고리즘 문제를 해결할 수 있다.학습 자료탐욕 알고리즘 개요와 원리활동 선택 문제 설명 및 구현최소 신장 트리 알고리즘 (Kruskal, Prim) 설명 및 구현실습 문제1. 활동 선택 문제주어진 활동들의 시작 시간과 종료 시간을 기반으로 최대한 많은 활동을 선택하는 문제를 탐욕 알고리즘을 사용하여 해결하는 함수를 작성하세요.def activity_selec.. 2024. 6. 4.
[코딩테스트] 5주차: 백트래킹과 분할 정복 백트래킹과 분할 정복학습 주제백트래킹의 개념과 활용 (N-Queen 문제, 퍼즐 문제)분할 정복 알고리즘 (Merge Sort, Quick Sort 재방문, Fast Exponentiation)학습 목표백트래킹의 개념과 다양한 문제에서의 활용 방법을 이해하고 구현할 수 있다.분할 정복 알고리즘의 원리를 이해하고 구현할 수 있다.N-Queen 문제, 퍼즐 문제 등의 대표적인 백트래킹 문제를 해결할 수 있다.학습 자료백트래킹 개요와 원리분할 정복 알고리즘 설명 및 구현실습 문제1. N-Queen 문제 해결N x N 체스판에 N개의 퀸을 놓는 문제를 백트래킹을 사용하여 해결하는 함수를 작성하세요.def is_safe(board, row, col): for i in range(col): if .. 2024. 6. 4.
[코딩테스트] 4주차: 트리와 이진 탐색 트리 트리와 이진 탐색 트리학습 주제트리의 기본 개념과 순회 방법 (전위, 중위, 후위 순회)이진 탐색 트리 (BST)의 삽입, 삭제, 탐색균형 잡힌 트리 (AVL 트리, 레드-블랙 트리)학습 목표트리 자료구조의 기본 개념을 이해하고 구현할 수 있다.이진 탐색 트리의 삽입, 삭제, 탐색 연산을 구현할 수 있다.균형 잡힌 트리의 개념을 이해하고 기본적인 구현을 할 수 있다.학습 자료트리의 기본 개념 설명 및 구현이진 탐색 트리 (BST) 설명 및 구현AVL 트리와 레드-블랙 트리의 기본 개념 설명실습 문제트리 순회 (전위, 중위, 후위 순회)주어진 트리를 전위, 중위, 후위 순회하는 함수를 작성하세요.class Node: def __init__(self, key): self.left = Non.. 2024. 6. 4.
[코딩테스트] 3주차: 그래프 알고리즘 그래프 알고리즘학습 주제:그래프의 표현 방법 (인접 행렬, 인접 리스트)그래프 탐색 알고리즘 (DFS, BFS)최단 경로 알고리즘 (Dijkstra, Floyd-Warshall)학습 목표:그래프의 표현 방법을 이해하고 구현할 수 있다.깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 알고리즘을 이해하고 적용할 수 있다.다양한 최단 경로 알고리즘을 이해하고 문제에 적용할 수 있다.학습 자료:그래프의 표현 방법 설명 및 구현깊이 우선 탐색(DFS) 알고리즘 설명 및 구현너비 우선 탐색(BFS) 알고리즘 설명 및 구현Dijkstra 알고리즘 설명 및 구현Floyd-Warshall 알고리즘 설명 및 구현실습 문제:1. 그래프 표현 방법인접 행렬과 인접 리스트를 사용하여 그래프를 구현하세요.# 인접 행렬def .. 2024. 6. 4.
반응형