본문 바로가기

GD's IT Lectures : 기초부터 시리즈/파이썬(Python) 기초부터 ~29

[파이썬(PYTHON) : 고급] 디자인 패턴 2. 디자인 패턴 디자인 패턴은 특정 문제를 해결하는 데에 있어 재사용 가능한 해결책입니다. 이는 코드의 효율성, 이해성, 유지 보수성을 향상할 수 있습니다. 2.1. 싱글턴 패턴 2.1.1. 싱글턴 패턴 개념 2.1.1.1. 싱글턴 패턴의 정의 싱글턴 패턴은 클래스의 인스턴스가 단 하나만 존재하도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하는 것과 유사한 효과를 가지지만, 전역 변수의 문제점을 피할 수 있습니다. 2.1.1.2. 싱글턴 패턴의 사용 사례 데이터베이스 연결, 로거, 파일 시스템, 윈도우 매니저 등의 리소스를 공유해야 하는 경우에 종종 사용됩니다. 2.1.2. 싱글턴 패턴 구현 및 활용 2.1.2.1. 파이썬에서 싱글턴 패턴 구현하기 파이썬에서 싱글턴 패턴을 구현하는 가장 .. 2023. 5. 12.
[파이썬(PYTHON) : 고급] 메타프로그래밍 1. 메타프로그래밍 메타프로그래밍은 '프로그램이 자기 자신을 데이터로 처리하도록 하는 기법'을 말합니다. 파이썬에서는 메타클래스, 동적 속성 및 메서드 생성, 디스크립터 등을 통해 메타프로그래밍을 수행할 수 있습니다. 1.1. 메타클래스 1.1.1. 메타클래스 개념 1.1.1.1. 클래스 vs 메타클래스 클래스는 객체를 생성하는 '틀'로, 객체의 속성과 메소드를 정의합니다. 반면, 메타클래스는 클래스의 '틀'을 만드는 클래스입니다. 즉, 메타클래스는 클래스를 생성하고, 클래스의 동작을 제어하는 역할을 합니다. # 클래스의 예 class MyClass: pass # 메타클래스의 예 class MyMeta(type): pass 1.1.1.2. 메타클래스의 역할 메타클래스는 클래스의 동작을 제어하고, 클래스를.. 2023. 5. 12.
[파이썬(PYTHON) : 중급] 동시성과 병렬성 8. 동시성과 병렬성 동시성(concurrency)과 병렬성(parallelism)은 컴퓨팅에서 매우 중요한 개념입니다. 이 두 용어는 프로그램이 여러 작업을 어떻게 처리하냐에 따라 다릅니다. 동시성은 여러 작업이 동시에 시작되어 수행되는 것을 의미하며, 병렬성은 여러 작업이 동시에 실행되는 것을 의미합니다. 8.1 멀티스레딩 멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드가 동시에 작동하는 방식입니다. 이는 여러 작업을 동시에 처리하거나, 또는 사용자와의 상호작용을 유지하면서 백그라운드 작업을 수행하는 등의 목적으로 사용됩니다. 8.1.1 스레드 생성 및 관리 Python에서는 'threading' 모듈을 사용하여 스레드를 생성하고 관리할 수 있습니다. 8.1.1.1 threading 모듈을 이용.. 2023. 5. 11.
[파이썬(PYTHON) : 중급] 네트워크 프로그래밍 (계속) 7. 네트워크 프로그래밍 (계속) 7.5. 멀티스레딩과 소켓 프로그래밍 7.5.1. 멀티스레딩 개념 이해 7.5.1.1. 스레드와 프로세스의 차이 프로세스는 운영체제로부터 자원을 할당받아 독립적으로 실행되는 작업의 단위를 말합니다. 반면, 스레드는 프로세스 내에서 실행되는 독립적인 실행 흐름입니다. 즉, 같은 프로세스 내의 스레드들은 코드, 데이터 섹션 등을 공유하며 실행됩니다. 7.5.1.2. Python에서의 멀티스레딩 활용 Python에서는 threading 모듈을 이용해 멀티스레딩을 구현할 수 있습니다. 다음은 간단한 멀티스레딩 예제입니다: import threading def print_numbers(): for i in range(10): print(i) def print_letters(): .. 2023. 5. 11.
[파이썬(PYTHON) : 중급] 네트워크 프로그래밍 7. 네트워크 프로그래밍 네트워크 프로그래밍에서는 소켓 프로그래밍을 통해 네트워크 통신을 구현하는 방법을 배웁니다. HTTP 요청 및 응답 처리를 다루며, RESTful API 개념 및 활용 방법에 대해 알아봅니다. 웹 스크레이핑 기법을 통해 웹사이트에서 데이터를 추출하는 방법을 학습하게 됩니다. 7.1. 소켓 프로그래밍 7.1.1. 소켓 프로그래밍 이해하기 7.1.1.1. 소켓의 개념 및 이해 소켓(socket)은 컴퓨터 네트워크에서 데이터를 주고받는 두 컴퓨터 간의 통신을 가능하게 하는 연결점입니다. 기본적으로 하나의 컴퓨터(서버)가 특정 포트에 소켓을 열어두면, 다른 컴퓨터(클라이언트)가 그 소켓에 연결하여 데이터를 주고받을 수 있습니다. 7.1.1.2. 클라이언트와 서버 소켓의 차이점 서버 소켓은.. 2023. 5. 11.
[파이썬(PYTHON) : 중급] 데이터 처리 및 분석 6. 데이터 처리 및 분석 데이터 처리 및 분석에서는 JSON과 CSV 파일 처리 방법을 배우고, pandas와 NumPy 라이브러리를 활용하여 데이터를 분석하는 방법을 익힙니다. 이를 통해 실제 데이터를 다루는 프로젝트에 적용할 수 있는 기술을 습득하게 됩니다. 6.1. JSON 파일 처리 JSON(JavaScript Object Notation)은 데이터를 교환하는 데 사용되는 경량의 데이터 포맷입니다. 이 포맷은 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기에도 적합합니다. 6.1.1. JSON 파일 읽기와 쓰기 파이썬에서는 'json' 이라는 내장 모듈을 사용하여 JSON 파일을 읽고 쓸 수 있습니다. 6.1.1.1. 파이썬의 json 모듈 이해하기 파이썬의 'json' 모듈은 JSON 데이.. 2023. 5. 11.