'분류 전체보기'에 해당되는 글 189건

  1. 2014.05.28 SBA 기능 안내 1
  2. 2014.05.27 주요 프레임웍 구성 요소 (Data)
  3. 2014.05.27 주요 프레임웍 구성 요소 (Biz)
  4. 2014.05.27 주요 프레임웍 구성 요소 (UI)
  5. 2014.05.26 SBA 기능 소개
  6. 2014.05.26 SBA 소개
  7. 2014.01.19 유튜브 다운로더 2.0 튜토리얼
  8. 2014.01.04 유튜브 다운로더 2.0 업데이트 1
  9. 2013.10.17 로또 확률 분석과 번호생성기 1
  10. 2013.04.18 슬롯머신 시뮬레이터 2

SBA 기능 안내

SBA 2014. 5. 28. 11:18

대시 보드의 역할을 합니다.

사용자 별 맞춤 일정을 표시하고, 확인하지 않은 쪽지, 응답하여야 할 결재 건수 등을 한 눈에 파악할 수 있습니다.

 

일정

전사적 혹은 개인별 일정을 관리하는 있는 모듈입니다.

일/주/월/타임 라인/간트 차트 보기를 지원하고, 진행률과 일정의 참여자를 지정할 수 있습니다.

또한 선행 작업과 후행 작업처럼 작업 간의 관계를 설정할 수도 있습니다.

 

쪽지

다른 사용자에게 파일을 첨부한 쪽지를 보낼 수 있습니다.

보내거나 받은 쪽지는 쪽지함에서 확인할 수 있습니다.

 

결재

각종 품의서 등의 전자 결재 기능을 탑재하고 있습니다.

결제 라인과 전결 가능 여부는 결제 문서 별로 따로 지정할 수 있습니다.

지난 결재 문서는 결재함에서 조회할 수 있습니다.

 

게시판

웹과 유사한 형태의 게시판을 사용할 수 있습니다.

게시판의 생성은 DB나 소스의 수정이 필요 없이, 사용자가 직접 할 수 있습니다.

또한 각 게시판에는 사용자 그룹 별로 읽기와 쓰기 권한을 지정할 수 있습니다.

각 게시물에는 파일을 첨부할 수 있고, 댓글을 달 수도 있습니다.

 

자료실

계층 구조로 된 자료실을 사용할 수 있습니다.

게시판과 마찬가지로 DB나 소스의 수정이 필요 없이, 사용자가 직접 생성할 수 있으며, 사용자 그룹 별로 읽기와 쓰기 권한을 지정할 수 있습니다.

폴더와 그에 속한 모든 하위 폴더에 있는 파일들을 한번에 업로드 할 수도 있습니다.

 

다목적 게시판

(DB나 소스의 수정이 필요 없이 ) 사용자가 직접 각 필드를 설정하여 다양한 목적으로 사용할 수 있는 다목적 게시판입니다.

아래는 위 지출경비 대장의 각 항목을 설정하는 화면입니다.

 

연락처

전사적 연락처를 통합 관리할 수 있습니다.

각 연락처는 계층 구조로 된 폴더에 담을 수 있습니다.

복수 개의 연락처를 선택하여 라벨 출력을 하면, 우편 발송 용의 라벨을 출력할 수도 있습니다.

 

자산

도서, 회의실, 차량 등과 같은 전사적으로 관리하여야 할 자산에 대한 관리 기능을 제공합니다.

도서의 경우에는 대출 내역을, 회의실과 차량의 경우에는 사용 예약 내역을 추가로 기재할 수 있습니다.

 

보고서

전사적으로 필요한 각종 보고서를 포함하고 있습니다.

현재는 샘플 보고서로 일정현황이 제공됩니다.

 

통계

회사의 여러 지표들을 주로 차트를 통해 표현하는 모듈입니다.

협업관계분석 이라는 샘플 통계가 준비되어 있습니다.

(사용자간 쪽지를 주고 받은 횟수를 분석하여 업무의 연관성을 표현합니다.)

 

도구 – 우편번호 검색

우편번호를 검색합니다. 도로명 주소는 아직 지원되지 않습니다.

 

도구 – SMS 발송

SMS를 발송합니다.

받는 사람의 전화번호를 직접 입력할 수도 있고, 연락처 혹은 사용자 목록에서 선택할 수도 있습니다.

통큰아이(http://www.tongkni.co.kr/ )와 같은 SMS 발송 업체의 서비스와 연동되어 있어 건당 10~20 원 정도의 요금이 부과됩니다.

스마트폰과 연동하여 폰에서 문자를 보낼 수도 있는데 이 경우에는 (스마트폰의 요금제에 따라) 별도의 요금이 발생하지 않습니다.

스마트 폰의 앱은 현재 개발 중입니다.

 

시스템 관리 – 코드

시스템에서 사용하는 모든 코드 데이터를 관리할 수 있습니다.

성격에 따라 사용자가 변경할 수 없는 코드도 있습니다.

 

시스템 관리 – 사용자

사용자를 추가/수정/삭제 할 수 있습니다.

 

시스템 관리 – 부서

부서를 추가/수정/삭제 할 수 있습니다.

 

시스템 관리 – 역할 지정

각 사용자의 역할 그룹을 지정합니다.

 

시스템 관리 – 권한 설정

각 역할 그룹별로 권한을 설정합니다.

각 메뉴에 대한 읽기 쓰기 권한, 그리고 타인의 댓글을 삭제하는 등의 특정 기능에 대한 권한을 지정할 수 있습니다.

 

시스템 관리 – 게시판/자료실

게시판과 자료실을 추가/수정/삭제합니다.

 

시스템 관리 – 다목적 대장

새로운 다목적 대장을 만들거나, 다목적 대장에서 사용할 항목을 설정합니다.

 

시스템 관리 – 결재 양식

결재 양식을 관리합니다.

 

시스템 관리 – 서버 설정

시스템 전역 설정을 조절합니다.

:

주요 프레임웍 구성 요소 (Data)

SBA 2014. 5. 27. 04:02

UntypedEntity

모든 엔터티 클래스들의 최상위 클래스입니다.

엔터티의 필드값을 클리어하는 등의 기능이 포함되어 있습니다.

Entity<T>

제네릭으로 구현된 엔터티 클래스들의 부모 클래스입니다.

IEditableObject 인터페이스를 구현하였기 때문에, 모든 엔터티는 편집 작업이 취소되면 원래 상태로 돌아갈 수 있습니다.

EntityData<T>

모든 엔터티가 기본으로 가지는 데이터 액세스 코드가 포함되어 있습니다.

40 가지 이상의 CRUD 메서드가 제공됩니다.

EntityLogManager

각 엔터티의 추가/수정/삭제 로그를 자동으로 저장하는 기능을 제공합니다.

:

주요 프레임웍 구성 요소 (Biz)

SBA 2014. 5. 27. 04:02

BizAsyncWapper

데이터 액세스 레이어에 포함된 모든 메서드에 대해 자동으로 비동기 래퍼 메서드를 생성합니다.

비동기 코드는 닷넷 프레임워크 4.0의 TPL(Task Parallel Library)를 기반으로 구현되어 있습니다.

예를 들어 아래와 같은 동기로 동작하는 데이터 액세스 코드가 있다면,

이에 대해 자동으로 아래와 같은 비동기 래퍼 메서드를 생성합니다.

 

LocalData

코드, 사용자, 부서, 메뉴 등과 같이 빈번하게 사용되는 데이터를 DB에서 매번 가져오는 대신 클라이언트(로컬)에 캐시로 저장하는 기능을 제공하는 추상 클래스입니다.

캐시된 데이터와 DB 서버의 데이터가 다를 경우에는 자동으로 캐시를 갱신하는 기능도 포함되어 있습니다.

 

FileTranferer

FTP를 통해 파일을 업로드, 다운로드, 삭제하는 기능을 제공하는 컴퍼넌트입니다.

비동기 파일 전송을 지원하며, 전송률을 UI로 표시하는 기능도 포함되어 있습니다.

 

ServerClock

프로그램이 설치된 다수의 PC(클라이언트)가 동일한 서버의 시각을 사용할 수 있도록 합니다.

:

주요 프레임웍 구성 요소 (UI)

SBA 2014. 5. 27. 04:02

SearchLookUpEditEx

코드 데이터나 사용자 목록과 같은 Look Up 데이터를 표시하는데 사용되는 컨트롤입니다.

예를 들어 디자인 타임에 아래와 같이 설정하기만 하면,

Criteria 가 1인 Code 엔터티의 Look Up 목록을 화면에 표시할 수 있습니다.

다음은 사용자 Look Up의 예입니다.

DevExpress 컨트롤 상속

DevExpress사의 윈폼 컨트롤을 상속 받은 40 가지 이상의 컨트롤이 포함되어 있습니다.

모든 상속 받은 컨트롤은 SBA 프레임워크에 맞게 미리 설정된 기본 값이 지정되어 있으며, 다양한 헬퍼 메서드를 포함하고 있습니다.

예를 들어 아래는 형식 지정자를 편리하게 지정할 수 있는 기능이 포함된 SpinEditEx 컨트롤입니다.

WinformUtility

윈폼에서 사용할 수 있는 다양한 유틸리티 메서드가 포함되어 있습니다.

예컨데 다음은 폼과 폼 안에 포함된 모든 유저 컨트롤을 재귀적으로 순회하며 특정 컨트롤(TexBox 등)을 추출하는 메서드입니다.

LocalStorage

PC의 로컬 디스크와 격리된 저장소의 파일을 동일한 코드로 관리할 수 있는 클래스입니다.

텍스트 파일과 바이너리 스트림으로 직렬화/역직렬화 할 수도 있습니다.

ControlReflector

엔터티 클래스의 값을 읽어 컨트롤에 표시하거나, 컨트롤의 값을 읽어 엔터티 클래스의 필드에 저장하는 기능을 합니다.

DataPager

웹의 페이징과 유사한 기능을 제공하는 페이저입니다.

목록을 표시하는 어떠한 컨트롤과도 함께 사용할 수 있습니다.

DateSelector

미리 지정된 다양한 시작과 끝 날짜를 편리하게 지정할 수 있는 컨트롤입니다.

FileTransfererControl

FileTransferer 클래스와 연동하여 FTP에 파일을 업로드하고 다운로드합니다.

RootForm

모든 폼의 최상위 폼입니다.

이 폼을 상속 받은 모든 폼은, 폼의 위치와 크기가 자동으로 저장되는 등의 기능을 사용할 수 있습니다.

:

SBA 기능 소개

SBA 2014. 5. 26. 19:45

대시 보드의 역할을 합니다.

사용자 별 맞춤 일정을 표시하고, 확인하지 않은 쪽지, 응답하여야 할 결재 건수 등을 한 눈에 파악할 수 있습니다.

 

일정

전사적 혹은 개인별 일정을 관리하는 있는 모듈입니다.

일/주/월/타임 라인/간트 차트 보기를 지원하고, 진행률과 일정의 참여자를 지정할 수 있습니다.

또한 선행 작업과 후행 작업처럼 작업 간의 관계를 설정할 수도 있습니다.

 

쪽지

다른 사용자에게 파일을 첨부한 쪽지를 보낼 수 있습니다.

보내거나 받은 쪽지는 쪽지함에서 확인할 수 있습니다.

 

결재

각종 품의서 등의 전자 결재 기능을 탑재하고 있습니다.

결제 라인과 전결 가능 여부는 결제 문서 별로 따로 지정할 수 있습니다.

지난 결재 문서는 결재함에서 조회할 수 있습니다.

 

게시판

웹과 유사한 형태의 게시판을 사용할 수 있습니다.

게시판의 생성은 DB나 소스의 수정이 필요 없이, 사용자가 직접 할 수 있습니다.

또한 각 게시판에는 사용자 그룹 별로 읽기와 쓰기 권한을 지정할 수 있습니다.

각 게시물에는 파일을 첨부할 수 있고, 댓글을 달 수도 있습니다.

 

자료실

계층 구조로 된 자료실을 사용할 수 있습니다.

게시판과 마찬가지로 DB나 소스의 수정이 필요 없이, 사용자가 직접 생성할 수 있으며, 사용자 그룹 별로 읽기와 쓰기 권한을 지정할 수 있습니다.

폴더와 그에 속한 모든 하위 폴더에 있는 파일들을 한번에 업로드 할 수도 있습니다.

 

다목적 게시판

(DB나 소스의 수정이 필요 없이 ) 사용자가 직접 각 필드를 설정하여 다양한 목적으로 사용할 수 있는 다목적 게시판입니다.

아래는 위 지출경비 대장의 각 항목을 설정하는 화면입니다.

 

연락처

전사적 연락처를 통합 관리할 수 있습니다.

각 연락처는 계층 구조로 된 폴더에 담을 수 있습니다.

복수 개의 연락처를 선택하여 라벨 출력을 하면, 우편 발송 용의 라벨을 출력할 수도 있습니다.

 

자산

도서, 회의실, 차량 등과 같은 전사적으로 관리하여야 할 자산에 대한 관리 기능을 제공합니다.

도서의 경우에는 대출 내역을, 회의실과 차량의 경우에는 사용 예약 내역을 추가로 기재할 수 있습니다.

 

보고서

전사적으로 필요한 각종 보고서를 포함하고 있습니다.

현재는 샘플 보고서로 일정현황이 제공됩니다.

 

통계

회사의 여러 지표들을 주로 차트를 통해 표현하는 모듈입니다.

협업관계분석 이라는 샘플 통계가 준비되어 있습니다.

(사용자간 쪽지를 주고 받은 횟수를 분석하여 업무의 연관성을 표현합니다.)

 

도구 – 우편번호 검색

우편번호를 검색합니다. 도로명 주소는 아직 지원되지 않습니다.

 

도구 – SMS 발송

SMS를 발송합니다.

받는 사람의 전화번호를 직접 입력할 수도 있고, 연락처 혹은 사용자 목록에서 선택할 수도 있습니다.

통큰아이(http://www.tongkni.co.kr/ )와 같은 SMS 발송 업체의 서비스와 연동되어 있어 건당 10~20 원도의 요금이 부과됩니다.

스마트폰과 연동하여 폰에서 문자를 보낼 수도 있는데 이 경우에는 (스마트폰의 요금제에 따라) 별도의 요금이 발생하지 않습니다.

스마트 폰의 앱은 현재 개발 중입니다.

 

시스템 관리 – 코드

시스템에서 사용하는 모든 코드 데이터를 관리할 수 있습니다.

성격에 따라 사용자가 변경할 수 없는 코드도 있습니다.

 

시스템 관리 – 사용자

사용자를 추가/수정/삭제 할 수 있습니다.

 

시스템 관리 – 부서

부서를 추가/수정/삭제 할 수 있습니다.

 

시스템 관리 – 역할 지정

각 사용자의 역할 그룹을 지정합니다.

 

시스템 관리 – 권한 설정

각 역할 그룹별로 권한을 설정합니다.

각 메뉴에 대한 읽기 쓰기 권한, 그리고 타인의 댓글을 삭제하는 등의 특정 기능에 대한 권한을 지정할 수 있습니다.

 

시스템 관리 – 게시판/자료실

게시판과 자료실을 추가/수정/삭제합니다.

 

시스템 관리 – 다목적 대장

새로운 다목적 대장을 만들거나, 다목적 대장에서 사용할 항목을 설정합니다.

 

시스템 관리 – 결재 양식

결재 양식을 관리합니다.

 

시스템 관리 – 서버 설정

시스템 전역 설정을 조절합니다.

:

SBA 소개

SBA 2014. 5. 26. 19:40

SBA 란?

SBA(Sample Business Application)은 범용 업무용 응용프로그램을 위한 프레임워크이자, 이 프레임워크를 기반으로 제작된 데모용 업무용 응용프로그램입니다.

데모용이긴 하지만 일정 관리, 전자 결재, 쪽지, 게시판, 자료실, 보고서 등 중소규모 기업의 그룹웨어로 활용할 수 있는 기능이 대부분 탑재되어 있습니다.

주요 기능은 SBA 기능 소개를 참고하십시오.

사용 기술

Winform (C# 4.0), Entity Framework 4.4, Devexpress v13.2, SQL Server 2012, WCF

구조

모듈별로 분리된 18개의 프로젝트로 이루어져 있는데, 이를 크게 구분 지으면 UI 레이어, 비즈니스 로직 레이어, 데이터 액세스 레이어, 단위 테스트와 개발 도구로 분류할 수 있습니다.

UI 레이어

프로그램의 실행 파일과 기능별로 구분된 다수의 모듈 프로젝로 구성되어 있습니다.

재사용 가능한 UI 프레임워크 구성 요소는 주요 프레임웍 구성 요소 (UI)를 참조하십시오.

비즈니스 로직 레이어

캐싱, 보안, 인증, 로깅 등과 같은 각종 비즈니스 로직을 포함하고 있습니다.

재사용 가능한 비즈니스 로직 프레임워크 구성 요소는 주요 프레임웍 구성 요소 (Biz)를 참조하십시오.

데이터 액세스 레이어

엔터티 프레임워크를 기반으로 작성된 데이터 액세스 코드들이 위치하고 있습니다.

재사용 가능한 데이터 액세스 프레임워크 구성 요소는 주요 프레임웍 구성 요소 (Data)를 참조하십시오.

단위 테스트와 개발 도구

비즈니스 로직과 데이터 액세스 레이어의 단위 테스트 코드들이 있습니다.

코드 생성기 등 개발 도중 유용하게 사용하는 있는 각종 개발 도구들이 포함되어 있습니다.

서비스 레이어

빌드 시 ForService 라는 심볼의 존재 유무에 따라 자동으로 WCF로 구현된 서비스 레이어를 생성할 수 있습니다.

즉, ForService 라는 심볼이 정의되어 있지 않다면, 클라이언트와 DB 서버가 바로 연결되지만, ForService 심볼이 정의된다면, 클라이언트는 서비스 레이어를 통해 간접적으로 DB 서버에 접속됩니다.

:

유튜브 다운로더 2.0 튜토리얼

유튜브 다운로더 2014. 1. 19. 00:16

먼저 아래 URL로 접속하여 프로그램을 설치합니다.

https://y2m.codeplex.com/downloads/get/clickOnce/Y2M.application

프로그램이 실행되면 설정 버튼을 눌러 설정 창을 엽니다.

image

유튜브의 동영상을 오디오(MP3) 혹은 비디오(MP4, AVI 등)로 다운로드할지 결정하고, 다운로드할 파일이 저장되는 위치도 설정할 수 있습니다.

확인 버튼을 눌러 창을 닫은 후, 브라우저 등에서 유튜브의 비디오 주소를 복사합니다.

image

동영상의 URL을 복사하면 자동으로 다운로드가 시작됩니다.

다운로드한 동영상은 위 설정 창에서 지정한 폴더에 저장됩니다.

image

이미 다운로드한 동영상의 URL을 다시 복사하면 동영상은 다운로드되지 않습니다. (프로그램을 다시 실행하면 다운로드가 가능합니다.)

고급 모드를 실행하면 유튜브의 동영상을 직접 검색하고 다운로드할 수 있습니다.

image

:

유튜브 다운로더 2.0 업데이트

유튜브 다운로더 2014. 1. 4. 14:24

제목 없음

가볍고 편리한 사용성에 중점을 두고 업데이트를 하였습니다.

본 프로그램을 실행시킨 상태에서 (유튜브 사이트 등에서) 다운로드할 비디오의 URL을 클립보드로 복사하면 자동으로 다운로드가 시작됩니다.

예를 들어 아래와 같은 링크를 복사하면 해당 비디오가 다운로드됩니다.

http://www.youtube.com/watch?v=-pBam-cYVLk

[기능 설명]

1. 완료항목 삭제

다운로드 및 MP3 변환이 끝난 비디오를 목록에서 삭제합니다.

2. 고급 모드

비디오 검색 등이 가능한 이전 버전을 실행합니다.

3. 설정

비디오를 다운로드할 폴더 등을 설정할 수 있는 설정창을 엽니다.

4. 투명도

투명도를 지정합니다.

 

[알려진 버그]

여러 비디오를 빠르게 연속적으로 다운로드하면 프로그램이 멈추는 현상이 있습니다.

각 비디오를 다운로드하기 전에 몇 초 정도 여유를 두면 이러한 현상을 줄일 수 있습니다.

:

로또 확률 분석과 번호생성기

카테고리 없음 2013. 10. 17. 03:09

하 수상하고 힘든 시절이야.

정치 경제 사회 문화 역사 어느 하나 수상하지 않은 곳이 없고,

스펙 쌓는 대딩은 대딩 대로,

가난하다고 해서 사랑을 모르는 청춘 남녀는 그들 대로,

또 모가지가 간당 간당 하는 직장인들은 또 그들 대로 다들 악전고투를 하고 있는 시절이야

 

이런 수상하고 힘든 시절에,

하늘하고 땅이 딱하고 붙어버리지 않는 한,

위너가 될 수 없다고 생각하는 사람들에게 남은 마지막 희망은 역시 로또겠지?

그래서 거지 똥꼬에서 콩나물을 뽑는 심정으로 매주 자동 다섯장을 외치고 일주일 간 허황된 꿈을 꾸고 있는 것일 거야.

결코 이길 수 없음을 알면서도 달려드는 결기에 찬 사람들을 생각하면 그저 슬플 뿐인데,

가만히 보니 이걸 이용하는 후레자식들이 있더란 말이야.

그래서 드레퓌스 사건 때 미친 프랑스 사회를 에밀 졸라가 졸라게 고발한 것을 흉내 내어,

나도 이 후레자식들을 고발하려고 해.

 

알다 시피 로또 1등에 당첨된 확률은 대략 8백만 분의 1 이야.

돼지 꿈을 꿨네 어쩌네 아무리 용천지랄을 해도 저 사실 만은 변함이 없지.

수학적으로는 후행사건이 선행사건에 독립되어 있다고 표현하는데,

예를 들어 동전을 999번을 던져 모두 앞면이 나온 상태에서 1000번째 동전을 던져 다시 앞면이 나올 확률은 여전히 절반이라는 것이야.

근데 이 확률을 대폭 올릴 수 있다고 주장하는 사람들이 있는데,

최첨단의 과학적인 분석 방법을 통해 당첨 번호를 예상할 수 있는 고유한 시스템을 만들었대나 뭐래나.

그래서 이 예상당첨번호를 돈을 받고 팔기까지 하는데,

한 마디로 혹세무민하는 무리들이지.

바로 이 자들이 바로 오늘의 후레자식들이야.

 

나는 프로그램을 만드는 짓을 해서 밥을 먹고 살아.

프로그래머라고 하면 왠지 과학적이고 이성적일 것 같지?

적어도 나는 그렇게 생각하고 있는데, 꼭 그렇지도 않더라고.

프로그래머 중에도 혈액형으로 사람의 성격을 알 수 있다고 믿는 사람이 있고,

심지어 위에서 말한 혹세무민하는 무리에게 돈을 내고 예상당첨번호를 사는 사람도 봤어.

내 팀원이라면 양지를 지향하며 음지에서 졸라 갈구겠지만, 부장님이네.

부장님 까지 홀린 자들에게, 옹졸하게 욕을 하고 옹졸하게 분개만 하는데,

문득 그런 생각이 드는 거야.

조그만 일에 분개만 할 게 아니라, 대차게 한 번 까보자.

지들도 다 먹고 살려고 하는 일이라 마음이 아프긴 하지만,

이게 다 명랑 사회를 구현하는 위한 일환이라 생각하고, 마음을 모질게 먹기로 했어.

 

검색엔진에서 '로또' 라고 치면,

수 많은 로또 확률 분석 업체들이 온갖 현란한 용어와 디자인으로 자기들의 과학성과 우수성을 나불대는데,

단언컨데 다 개소리야.

깊이 생각할 필요도 없이 로또의 당첨번호를 예측하다는 것 자체가,

죽은 자식의 불알을 만졌는데 발기탱천하는 약이 있더라 하는 것 만큼이나 택도 없는 소리이긴 하지만,

그래도 까는 놈에 대한 최소한의 예의로 왜 개소리인지에 대해 한번 살펴보기는 할게.

 

업체마다 조금씩 차이가 있겠지만,

그 자들이 내세우는 예측 시스템은 크게 두 가지로 갈려.

평균회기이론에 기반한 '과학적'인 방법과,

풍수 / 꿈 / 사주 등에 기반한 비과학적인 방법인데,

비과학적인 방법에 관해서는 언급할 필요도 못 느끼겠어.

그냥 말할 수 없는 것에 관해서는 침묵하여야 한다고 해 둘게.

 

그럼 과학적인 평균회기이론이 남는데,

이건 간단히 이야기하자면 이런 것이야.

앞에서 말한 동전 던지기의 예에서,

동전을 1000번을 던지면 앞면 혹은 뒷면만 1000번이 나오기 보다는 앞 뒤가 각각 500번씩 나오는 것이 자연적인 상태라는 것이야.

그러니 로또의 45개 번호도 각각 균등하게 당첨되는 것이 자연스러우니,

이전에 당첨회수가 적은 번호가 이번에 당첨될 확률이 높다는 것이야.

얼핏 들으면 맞는 말 같긴 한데, 시행 횟수가 함정이야.

두 가지 조합 밖에 없는 동전 던지기에서는 1000번이면 평균에 회기하는 유의미한 숫자일지 모르나,

45C6 (45 콤비네이션 6, 당연히 알지?) 의 조합이 있는 로또에서 평균에 회기하는 값을 찾으려면,

글쎄 얼마나 많은 시행횟수가 필요할지 계산도 안돼.

굳이 하고 싶지도 않고.

다만 현재까지 시행된 558회가 너무나도 터무니 없는 횟수라는 건 확실해.

 

위에서는 당첨번호를 예상하는 방법 중에서 최다 출현한 번호에 대해서만 이야기했는데,

이것 만으로는 장사가 안된다고 생각했는지,

업체에서는 좀 더 다양한 –그러나 여전히 개소리인- 이론들을 몇 개 고안했는데, 대충 다음과 같아.

하나씩 설명을 하긴 할텐데, 어차피 개소리니 굳이 안 읽어도 좋아.

 

  1. 총합

    6개 숫자를 모두 더하면 19 ~ 255의 값이 되는데, 이를 몇 개의 구간으로 나눈 후, 가장 많이 당첨된 구간 혹은 가장 적게 당첨된 구간을 제시하는 방법이야.

    예) 1, 4, 7, 20, 31, 42 -> 105

  2. 123합

    총합과 같은데, 6개의 숫자 중 번호가 낮은 세 숫자의 합으로 계산해. 6 ~ 123의 값을 가져.

    예) 1, 4, 7, 20, 31, 42 -> 12

  3. 456합

    123합과 같은데, 6개의 숫자 중 번호가 높은 세 숫자의 합이야. 최소값과 최대값은 각각 15 ~ 132.

    예) 1, 4, 7, 20, 31, 42 -> 93

  4. 첫수합

    6개의 숫자 중 십의 자리를 더한 수. 0 ~ 24.

    예) 1, 4, 7, 20, 31, 42 -> 9

  5. 끝수합

    6개의 숫자 중 일의 자리를 더한 수. 2 ~ 52.

    예) 1, 4, 7, 20, 31, 42 -> 15

  6. 간격합

    6개의 숫자 중 가장 큰 수에서 가장 작은 수를 더한 값. 7 ~ 85.

    예) 1, 4, 7, 20, 31, 42 -> 43

  7. 간격차

    6개의 숫자 중 가장 큰 수에서 가장 작은 수를 뺀 값. 5 ~ 44.

    예) 1, 4, 7, 20, 31, 42 -> 41

  8. 저고 비율

    1 ~ 22까지를 낮은 숫자, 23 ~ 45를 높은 숫자라 하는데, 6개의 숫자 중 낮은 자리의 숫자와 높은 자리의 숫자의 비율을 말해. 0:6 부터 6:0 까지가 가능하겠지.

    예) 1, 4, 7, 20, 31, 42 -> 4:2

  9. 홀짝 비율

    저고 비율과 유사하게 각 숫자의 홀짝 여부를 따져. 역시 0:6 부터 6:0 까지가 가능해.

    예) 1, 4, 7, 20, 31, 42 -> 3:3

  10. 연번 갯수

    연속한 숫자의 개수. 예를 들어 6 7 8 9 의 경우 6과 7, 8과 9각 각각 연번이므로 두 쌍이 있는 것이야. 0쌍 ~ 3쌍이 가능해.

    예) 1, 2, 3, 6, 7, 8 -> 2쌍

 

딱 봐도 아무 쓰잘데기 없는 짓 같지?

이런 것과 로또 당첨이 무슨 관계가 있겠어?

그런데 이런 쓰레기 같은 짓을 과학적인 이론이랍시고 포장을 하고,

이 이론에 기반한 예상당첨번호를 만들어 돈을 받고 파는 사람들이 있다니깐.

있는 정도가 아니라 제법 장사가 되는지 망하지도 않고 여러 업체가 성행하고 있어.

 

내가 프로그램 만드는 짓을 해서 밥을 먹고 산다고 한 것 기억하지?

그래서 위 이론대로 예상당첨번호를 생성하는 프로그램을 직접 만들어 봤어.

위의 이론들을 가지고 만든 번호가 아무 의미도 없다는 것을 직접 보여 줘,

어디까지나 어린 백성을 혹세무민하는 후레 자식들을 고발하기 위한 숭고한 목적에 의한 일이지,

내가 집에서 노는 프로그래머이거나,

이제는 돌아와 거울 앞에 선 남자라 시간이 남아 도는 등의 이유는 절대 아니야.

 

프로그램은 역대 당첨 번호를 분석한 통계를 보여주는 것과,

위에서 말한 쓰잘데기 없는 이론에 따라 예상 당첨 번호를 생성하는 두 가지 기능으로 이루어져 있어.


먼저 분석 편.





 

최근까지의 역대 당첨 번호를 기반으로 하여,

총합이나 123합 뭐 이따구 통계를 보여줘.

출현 번호는 각 숫자가 출현한 번호를 표시하는데 반해,

나머지 통계는 몇 개의 구간으로 나눠 각 구간별 횟수를 보여주지.

총합을 예로 들자면 아래 차트에서 보이다 시피 136에서 174 사이에 속하는 경우가 237회로 가장 많아.

 


그리고 생성 편





 

생성 탭에서는 실제로 예상당첨번호를 생성할 수 있는데, 세 가지 생성 조건을 줄 수 있어.

1. 당첨 번호

분석 편에서 이야기한 분석 종류 별로 최다 출현 구간과 최소 출현 구간을 지정할 수 있어.

2. 포함 번호

특정 번호를 반드시 포함하도록 지정할 수 있어.

역대 최다 혹은 최소 담첨 번호 N개를 자동으로 포함할 수도 있어.

3. 제외 번호

특정 번호를 반드시 제외한다는 점을 빼면 포함 번호와 동일해

 

이렇게 생성 조건을 지정하고 생성 버튼을 누르면,

이른바 예상 당첨 번호가 만들어 지는데,

이를 최근의 당첨번호와 비교하여 당첨여부를 시뮬레이션 할 수 있어.

생성 방법에도 세 가지가 있는데,

번호를 한 세트만 생성하는 것 (한번 실행),

한번 실행을 조금씩 쉬면서 여러 번 실행하는 것 (한번씩 실행),

화면 업데이트는 생략하고 백 만번 이상 존나게 돌리는 것 (일괄 실행)이 그것이야.

 

번호를 생성하고 나면, 최근의 당첨번호와 비교하여 당첨여부를 판단한다고 했지?

이 결과는 요약 화면에서 볼 수 있어.

일괄 실행으로 5천만번(주간 평균 판매량이야)을 돌린 결과인데,

1등이 5명이 나와서 22억씩 갈라 먹는 훈훈한 결과가 보이지?

그런데 97.45834%에 해당하는 사천팔백칠십이만구천백육십구 명의 사람들은 꽝이네.

이미 알고 있는 확률이었지만 직접 눈으로 보니 또 새롭지?

 

이 프로그램은 누구나 자유롭게 사용할 수 있는 프리웨어야.

심지어 소스까지 공개해뒀으니,

혹 나 같이 시간이 남아 도는 프로그래머가 있으면 더욱 개선해줬으면 좋겠어.

설치 : https://neverlotto.codeplex.com/downloads/get/clickOnce/NeverLotto.application

소스 : https://neverlotto.codeplex.com/

 

여태껏 한 이야기를 정리 해 볼게.

1. 최첨단의 과학적인 분석 방법이라며 로또의 예상 당첨 번호를 파는 놈들은 다 후레 자식들이야.

2. 그래도 혹시나 하는 마음이 있으면, 위 프로그램을 다운로드 받아 과학적인 방법이라는 게 얼마나 개소리인지를 직접 눈으로 확인을 해 보셔.

3. 또 그래도 상처 입고 순결한 마음을 기대고 싶은 곳이 필요하다면, 차라리

이 분의 성함을 크게 외쳐 보기 바래. 혹시 아나?

:

슬롯머신 시뮬레이터

미분류 2013. 4. 18. 00:42

일 년에 한 두 번 가는 정도지만 카지노를 좋아하고 슬롯머신을 좋아하는데, 슬롯머신의 당첨 확률에 관해서 항상 찝찝함을 가지고 있다.

그래서 Cleopatra's Gold 라는 슬롯게임의 시뮬레이터를 만들어서 계속 돌려봤는데, 이상하게 점점 돈이 불어난다.
천만번 정도 하니 25억이 넘어 버리네.
(시뮬레이터는 단위를 라인당 1원으로 맞춰놓았는데, 카지노에선 보통 100원이니 25억이 아니라 2,500억이 맞겠다.)

룰이라고 해봤자 복잡할 게 없으니 코드에 오류가 있을 것 같지는 않은데, 왜 이렇게 (행복하지만) 요상한 결과가 나올까?

알다시피 슬롯머신의 룰은 12개 정도의 심볼이 랜덤하게 발생하고 각 심볼간의 조합에 따라 상금이 결정되는 방식인데, 아무래도 이 12개 심볼의 발생확률이 동일하지 않은 것 같다.
특히 아무 심볼로나 대체 가능한 와일드 심볼의 경우는 다른 심볼들 보다 현저히 출현 빈도가 낮지 않나 싶다.
그러고보니 카지노에서, 슬롯머신에 대해 승률을 조작하지 않음을 보증하는 것은 봤어도, 모든 심볼이 동일한 확률로 나온다는 말은 들어본 적이 없는 것 같다.

혹 관심 있는 사람이 있을까 싶어 소스를 공개한다.
http://me2.do/xU0JWxzt




: