본문 바로가기
반응형
[네트워크 프로그래밍] Week 7: 고급 네트워크 프로토콜 (HTTP/2 및 웹소켓) 고급 네트워크 프로토콜 (HTTP/2 및 웹소켓) Day 1: HTTP/2의 개념과 특징 강의 내용:HTTP/2의 개념HTTP/2의 정의와 역사HTTP/1.x와의 차이점HTTP/2의 주요 특징바이너리 프로토콜멀티플렉싱서버 푸시헤더 압축HTTP/2의 동작 원리프레임과 스트림흐름 제어와 우선순위실습:HTTP/2 요청 및 응답 예제import hyperfrom hyper import HTTP20Connectiondef http2_client(): conn = HTTP20Connection('www.example.com') conn.request('GET', '/') response = conn.get_response() print(f"상태 코드: {response.status}") .. 2024. 6. 4.
[네트워크 프로그래밍] Week 6: 보안 네트워크 프로그래밍 보안 네트워크 프로그래밍 Day 1: SSL/TLS 개념과 구현 강의 내용:SSL/TLS의 개념SSL/TLS의 정의와 역할SSL/TLS의 역사와 발전SSL/TLS 프로토콜 동작 방식핸드쉐이크 과정대칭 암호화와 비대칭 암호화의 조합인증서와 인증 기관Python을 이용한 SSL/TLS 구현ssl 모듈 소개서버와 클라이언트의 SSL/TLS 설정실습:SSL/TLS 서버와 클라이언트 구현# SSL/TLS 서버import socketimport ssldef start_tls_server(): context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) context.load_cert_chain(certfile="path/to/certfile", keyfi.. 2024. 6. 4.
[네트워크 프로그래밍] 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.
반응형