언어

언어/Python

파이썬(Python) - multiprocessing(멀티프로세싱) 설명 및 예제(1) - Pool

파이썬(Python) Multiprocessing - Pool 오늘은 파이썬 멀티프로세싱을 활용하는 첫 번째 예제를 설명하겠습니다. 멀티 프로세싱을 활용하면 복잡하고 시간이 걸리는 작업을 별도의 프로세스를 생성 후 병렬처리해서 보다 빠른 응답처리 속도를 기대할 수 있는 장점이 있습니다. 최근들어 대용량의 빅데이터의 분석 및 예측 등의 머신러닝을 지원하는 다양한 패키지에서 대부분 멀티 프로세싱을 활용해서 멀티코어의 CPU의 장점을 극대화하고 빠른 처리를 지원하고 있습니다. 다만, 충분한 사전 지식 및 병렬 프로그래밍의 이해 없이 코드를 작성한다면, 싱글 프로세스의 응답속도보다 시간이 지연되고 별도로 예상치 못한 결과가 나타날 수 있으니 프로세스 및 쓰레드 등의 지식이 중요합니다. 또한, 멀티프로세싱은 오버..

언어/Python

파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(4) - 일정 주기 반복 실행

파이썬(Python) Thread - 지정 시간 반복 실행 지난 시간에 이어서 오늘은 파이썬 쓰레드를 활용해서 반복적으로 실행하는 방법을 설명하겠습니다. 쓰레드를 활용해서 지정된 시간 간격으로 주기적으로 특정 작업 등을 실행해야할 코드를 구현할 때 Thread.Timer를 활용하면 쉽게 구현하실 수 있습니다. 주로 주기적으로 웹 데이터 크롤링, 주식 자동 트레이딩(봇), DB 통계 작업 등 에서 사용하며, 활용 가능성은 매우 다양하다고 생각합니다. 그러면 문서 하단에서 간단하게 예제를 작성해보겠습니다. Python 관련 포스팅 : Python 관련 파이썬(Python) Thread - 구조 보통 Thread는 아래와 아키텍처로 나타낼 수 있으며, 관련 예제는 하단에서 설명합니다. Thread 구조 - 출..

언어/Java

Java(자바) 디자인패턴 - 팩토리(Factory Method) 패턴 설명 및 예제소스

Java 디자인패턴 - 팩토리 메소드 패턴 이번 시간에는 자바 디자인 패턴 중 팩토리 메소드 패턴(Factory Method Pattern)에 대해서 쉬운 예제와 함께 설명 드리려 합니다. 팩토리 메소드 패턴은 요약해서 말씀드리면 객체 생성을 대신 수행해주는 공장이라고 생각하시면 이해가 빠르실 겁니다. 객체는 직접 생성하는 경우가 있고 팩토리 메소드 패턴의 역할처럼 간적접으로 객체 생성 후 반환해주는 방식으로 생각해 볼 수 있습니다. 해당 패턴은 아래와 같은 장단점이 존재합니다. - 생성 할 클래스를 미리 알지 못해도 팩토리 클래스가 객체 생성 담당 - 객체의 자료형이 하위클래스에 의해서 결정 -> 확장 용이성 - 동일한 형태로 프로그래밍 가능 - 확장성 있는 전체 프로젝트 구성 가능 - 객체가 늘어날 ..

언어/Java

Java(자바) 디자인패턴 - 템플릿 메소드(Template Method) 패턴 설명 및 예제소스

Java 디자인패턴 - 템플릿 메소드 패턴 이번 시간에는 자바 디자인 패턴 중 빈번하게 사용되는 템플릿 메소드 패턴 (Template Method Pattern)에 대해서 간단한 예제와 함께 설명 드리려 합니다. 템플릿 메소드 패턴은 어떤 소스코드상의 알고리즘에서 특정 환경 또는 상황에 맞게 확장 또는 변경을 해야 할 경우 매우 유용한 패턴입니다. 추상클래스와 구현클래스로 작성할 수 있으며, 메인이 되는 로직 부분은 추상클래스의 일반 메소드로 선언해서 사용합니다. 즉, 구현별로 달라질 수 있는 행동(메소드)들은 구현 클래스에서 선언 후 호출하는 방식으로 사용합니다. 해당 패턴은 아래와 같은 장단점이 있습니다. 장점 - 코드 중복 감소 - 자식 클래스의 역할(롤)을 감소시키면서 핵심로직 관리 용이 - 객체..

언어/Java

Java(자바) 디자인패턴 - 어댑터(Adapter) 패턴 설명 및 예제소스

Java 디자인패턴 - 어댑터(Adapter) 패턴 이번 시간에는 자바 디자인 패턴 중 빈번하게 사용되는 어댑터 패턴(Adapter Pattern)에 대해서 간단한 예제와 함께 설명 드리려 합니다. 어댑터 패턴은 한 클래스의 인터페이스를 사용하고자 하는 다른 인터페이스로 변환할 때 주로 사용하며, 이를 이용하면 인터페이스 호환성이 맞지 않아 같이 쓸 수 없는 클래스를 연관 관계로 연결해서 사용할 수 있게 해주는 패턴입니다. 아래와 같은 장점이 있습니다. - 관계가 없는 인터페이스 간 같이 사용 가능 - 프로그램 검사 용이 - 클래스 재활용성 증가 등 아래 설명을 읽어보시고 예제 소스코드를 학습하시면 쉽게 이해하실 수 있을 거라 생각합니다. Java 관련 포스팅 : Java 관련 Java 어댑터(Adapt..

언어/Python

파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(3) - 데이터 통신

파이썬(Python) Thread - 데이터 전달 설명 지난 시간에 이어서 오늘은 파이썬 쓰레드 동기화 및 데이터 전달에 대해서 간단하게 설명하겠습니다. 쓰레드 작업에서 메시지 전달 기능 추가는 각 쓰레드 간에 동기화 작업을 정확하게 구현해줘야 한다고 생각합니다. 아래 예제에서는 파이썬 Queue(큐)를 사용해서 쓰레드간 데이터 전달 과정을 구현해 보았습니다.문서 하단에서 간단하게 예제를 작성해보겠습니다. Python 관련 포스팅 : Python 관련 파이썬(Python) Thread - 구조 보통 Thread는 아래와 아키텍처로 나타낼 수 있으며, 관련 예제는 하단에서 설명합니다. Thread 구조 - 출처 파이썬(Python) Thread 동기화 및 데이터 전달 - 예제 코드 파이썬 큐(Queue)를..

언어/Python

파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(2) - 동기화

파이썬(Python) Thread - 동기화 설명 지난 시간에 이어서 오늘은 파이썬 쓰레드 동기화에 대해서 간단하게 설명하겠습니다. 쓰레드는 보통 둘 이상의 실행 흐름을 가지고 있기 때문에 공통 메모리 영역의 값을 참조하는 과정에서 동일한 데이터를 조작하는 등의 일련의 과정이 일어나게 됩니다. 그 과정에서 문제가 일어날 가능성이 있는데 쓰레드의 실행 순서 조정 및 메모리 접근 제한 등으로 문제를 해결하게 되며, 이 때 쓰레드의 동기화 기법이 필요하게 됩니다. 문서 하단에서 간단하게 예제를 작성해보겠습니다. Python 관련 포스팅 : Python 관련 파이썬(Python) Thread - 구조 보통 Thread는 아래와 아키텍처로 나타낼 수 있으며, 관련 예제는 하단에서 설명합니다. Thread 구조 -..

언어/Python

파이썬(Python) - Thread(쓰레드) 설명 및 예제 소스 코드(1) - 기초

파이썬(Python) Thread - 설명 프로그래밍 언어를 떠나서 개발자에게 있어서 쓰레드를 능숙하게 활용할 수 있는 스킬은 정말 중요한 부분이라고 할 수 있습니다.프로세스의 흐름 및 기타 연관된 동작 관계에 대해서도 잘 파악하고 있어야 하기 때문입니다. 프로세스는 하나의 흐름(루틴)을 가지고 있습니다. 즉, 직렬적으로 한 개의 일을 순서대로 처리하기 때문입니다. 쓰레드를 사용하면 하나의 프로세스 안에서 여러개의 루틴을 만들어서 병렬적으로 실행할 수 있습니다.단순 반복하는 작업을 분리해서 처리할 수 있으며, 아래와 같은 장점이 있습니다. - CPU 사용률 향상 - 효율적인 자원 활용 및 응답성 향상 - 코드 간결 및 유지보수성 향상 그러면 이번 시간부터 파이썬 쓰레드 활용 방법에 대해서 3부에 걸쳐서 ..

언어/Python

파이썬(Python) - 제네레이터(Generator) 설명 및 예제 소스 코드

파이썬(Python) Generator- 설명 파이썬에서 성능 및 효율적으로 코드를 작성 하기 위해서 제네레이터 패턴을 많이 사용합니다. 제네레이터는 간단하게 설명하면 배열이나 리스트와 같은 반복가능한 연속적인 값들을 생성해 내는 패턴이고 가장 중요한 점은 모든 값을 포함하여 반환 하는 대신 호출 할 때마다 한 개의 값을 리턴하는 것입니다. 그런 이유에서 아주 작은 메모리로 효율적으로 대용량의 반복가능한 구조를 순회할 수 있다는 것이 가장 큰 장점이라고 볼 수 있습니다. 문서 하단에서 간단한 예제를 통해서 제네레이터를 쉽게 알아보도록 하겠습니다. Python 관련 포스팅 : Python 관련 파이썬(Python) Generator - 다이어그램 아래와 다이어그램으로 나타낼 수 있으며, 관련 예제는 하단에..

언어/Python

파이썬(Python) - 이터레이터(Iterator) 설명 및 예제 소스 코드

파이썬(Python) Iterator - 설명 파이썬에서 효율적으로 코드를 작성할 수 있는 방법 중에 이터레이터를 반드시 이해해야 된다고 생각됩니다. 이터레이터란 반복가능한 객체 즉, 반복문을 활용해서 데이터를 순회하면서 처리하는 것을 의미합니다. - List - Dictionary - Set, Tuple, Str 등 즉, 위와 같은 순회 가능한 Sequence 객체들에 대해서 Iterable Object 라고 지칭합니다.이미 순회 가능한 Design Pattern 으로 정의되어 있으며, 문서 하단에서 간단한 예제를 통해서 이터레이터를쉽게 알아보도록 하겠습니다. Python 관련 포스팅 : Python 관련 파이썬(Python) Iterator - 다이어그램 아래와 다이어그램으로 나타낼 수 있으며, 관련..

[좋은사람]
'언어' 카테고리의 글 목록 (3 Page)