ruby base64 이코딩 및 디코딩

ruby base64 이코딩 및 디코딩Base64 모듈은 base64 인코딩을 위한 encode64, strict_encode64, urlsafe_encode64 메서드와 디코딩을 위한 decode64, strict_decode64, urlsafe_decode64 메서드를 제공한다. 간단한 인코딩, 디코딩 예제require base64enc = Base6...

Ruby - getopt로 명령행 인자 처리하기

Ruby - getopt로 명령행 인자 처리하기C의 표준라이브러리에서 제공하는 그 와 거의 동일하게 사용할 수 있다.먼저 getopt gem을 설치한다.# gem install getoptrequire getopt/stdopt = Getoptif optputs <

확장성이 뛰어난 Agent Manager 시스템의 구축

확장성이 뛰어난 Agent Manager 시스템의 구축확장성을 확보하기 위한 방법은 여러가지가 있을 것이다. 여기에서는 그중 PlugIn 방식을 이용한 확장성확보에 대한 내용을 다룰 것이다. Agent&Manager 방식의 프로그램을 만든다고 가정해보자. SNMP(이러한 시스템에서 Agent 프로그램을 만들려고 한다면, 설계단계에서 가장 중요하게 생각해야...

쓰레드에 대한 좀더 깊은 내용들

쓰레드에 대한 좀더 깊은 내용들...

조건변수를 이용한 Thread Pool

조건변수를 이용한 Thread Pool멀티 쓰레드 프로그램의 성능을 높이기 위해서 미리 쓰레드를 준비해서, 쓰레드를 할당하는, 쓰레드 풀 방식이 널리 사용됩니다. 비교적 구현이 간단하고, 다양한 응용이 가능하기 때문입니다.예전에 구현을 다루었는데, 이번에는 조건변수(저는 지금 다중 접속 네트워크 프로그램을 만들려고 하고 있습니다. 이 네트워크 프로그램은 ...

Pthread : 동기화, 데이터 공유에 대한 더 자세한 문서

그동안 Pthread(1) 과 Pthread(2) 를 통해서 pthread(:12) 에 대한 기본적인 개요와 사용방법을 알아 보았다. 이번문서는 pthread 에 대한 좀더 깊이있는 내용에 대해서 알아보도록 하겠다. 이 문서에서는 그동안의 Pthread 문서에서 다루지 못한 몇가지 이슈들과 다중 쓰레드 프로그래밍시 필요로하는 Condition variabl...

Pthread : Thread 우선순위 문제

프로그래밍을 하다보면 "분명 이러한 상황에서는 이러한 문제가 발생하지 않아야 하는데", "코드 상으론 아무런 문제가 없는데" 프로그램의 실행에 문제가 생기는 경우가 있다. pthread를 이용해서 쓰레드 프로그래밍을 할때도 이런 일이 간혹 발생한다. 이중 "쓰레드 우선순위"에 따라서 발생하는 문제점에 대해서 알아보겠다. 이 문제는 주의해서 프로그래밍 하지 ...

쓰레드간 메시지전달

쓰레드간 메시지전달쓰레드 프로그래밍을 할 때 가장 신경쓰이는건 역시 쓰레드동기화(여기에서 소개하는 방법들은 수많은 방법들 중 몇가지 방법들일 뿐이다. 실제 프로젝트에서는 다양한 응용을 생각해야 할 것이다.영어문서를 파싱해서 Term을 얻어오고, 출현한 Term의 빈도수를 계수하는 프로그램을 만들도록 하겠다. 빠른 파싱을 위해서, 문서가 주어지면 문서를 라...

pthread - 쓰레드 취소와 종료

pthread - 쓰레드 취소와 종료쓰레드에 대해서 학습을 해본적이 있다면 Thread 취소와 종료에 대한 내용은 뻔한 것 아니냐 라고 생각할 수 있을 것이다. 하지만 이 문서를 읽어 보면 왜 별도의 문서를 만들어서 종료와 취소에 대해서 다루었는지 이해하게 될 것이다.쓰레드는 제어가능한 객체로 필요에 따라 생성시킬 수 있듯이 필요에 따라서 중단 시킬 수도...

쓰레드 객체의 사용

쓰레드 객체의 사용 C++ 에서 자바의 그것과 비슷한 thread( 객체지향개념에서 각 쓰레드란건 프로그램에서 가장 큰 객체덩어리로 볼 수 있으며, 그런 관점에서 하나의 클래스의 인스턴스 자체로 쓰레드가 된다면 개념적으로 좋을것이다 클래스의 인스턴스를 생성하는순간 클래스의 멤버변수와 메소드를 가지고 활동하는 쓰레드가 가동된다 덧붙여, 데몬 프로그램에서 s...