'미분류'에 해당되는 글 4건

  1. 2013.04.18 슬롯머신 시뮬레이터 2
  2. 2012.05.27 윈도우즈 자동 종료 (소스 포함)
  3. 2010.11.03 신규사업팀에서 도움을 요청합니다.
  4. 2008.10.28 MS가 발표한 무료 Winform / ASP.NET 차트 4

슬롯머신 시뮬레이터

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

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

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

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

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

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




:

윈도우즈 자동 종료 (소스 포함)

미분류 2012. 5. 27. 00:08

간단한 윈도우즈 자동 종료 프로그램을 만들어 보았습니다.

이런 류의 프로그램들이 워낙에 많이 있지만, 설치하기가 귀찮아서 저 같은 경우는 보통 시작 –> 실행 에서 shutdown 명령을 치곤 합니다.

shutdown 명령의 옵션을 조합함에 따라 종료 방법 (종료, 로그오프, 최대절전모드, 리부팅)과 종료 시간을 지정할 수 있는데, 아쉽게도 최대절전모드와 로그오프의 경우에는 종료 시간을 지정할 수 없습니다. (즉시 실행만 가능)

그래서 하나 만들어 보았습니다.

 

설치는 아래 첨부 파일로 실행을 하면 되고, 혹 나중에 새로운 업데이트가 있으면 자동으로 반영이 됩니다.

app.zip

닷넷 프레임웍 4.0의 경량 버전 (클라이언트 프로파일)이 필요한데, 설치되어 있지 않다면 위 파일 설치 시 자동으로 설치 됩니다.

물론 위 설치 파일에는 바이러스나 기타 어떠한 나쁜 코드도 들어 있지 않습니다.

 

워낙에 간단한 프로그램이긴 하지만 어쨌든 소스 파일도 첨부합니다.

 GenericTimer.zip

:

신규사업팀에서 도움을 요청합니다.

미분류 2010. 11. 3. 21:40

로앤비 툴즈

아시는 분은 아시고 모르시는 분은 모르시는 ‘로앤비 툴즈’ 라는 프로그램이 있습니다.

신규사업팀에서 쎄빠지게 개발하고 사우회에 헌증한, 우리 회사에서 (그럭저럭) 요긴하게 쓸 수 있는 조그만 프로그램들의 모음인데요,

SMS를 보낸다거나, 대량의 비용청구용지를 편리하게 작성한다거나 하는 등의 일을 할 수 있지요.

신규사업팀에서는 왜 이런 걸 만들었을까요?

사우회 사업을 ‘신규’ 사업이라고 착각을 해서? 아님 애사심이 남다르거나 할 일이 없어서?

사실은, 로앤비 툴즈를 개발하는 일은 신규사업팀의 주 업무인 로피스 개발의 일부분이었습니다.

무슨 말인고 하니, 로앤비 툴즈는 로피스의 샘플 애플리케이션이었다는 것입니다.

즉, 로앤비 툴즈를 만들면서 로피스의 근간이 되는 프레임웍을 다듬고, 새로운 기능(SMS 발송, 리포트 등)을 로피스에 탑재하기 전에 먼저 로앤비 툴즈에서 (사용자) 테스트를 해보는 식이지요.

(샘플이라고는 하지만 사실 아키텍쳐 상으로는 로피스 보다 로앤비 툴즈가 더 뛰어납니다. 규모가 작으니까 아키텍쳐나 다른 테크닉에 좀 더 집중할 수 있습니다. 제 경험에 의하면 이런 식의 샘플 애플리케이션을 먼저 작성해 보는 것이 프로젝트의 성공에 큰 기여를 하는 경우가 많았습니다.)

 

안사

그러나 안타깝게도 로앤비 툴즈는 널리 쓰이지 못했습니다.

물론 완성도의 미흡이 가장 큰 이유이겠으나, 그 외에도 로앤비 툴즈를 사용하기 위해서는 먼저 닷넷 프레임웍 이라는 무거운 프로그램을 설치한 후에 다시 로앤비 툴즈를 설치해야 한다는 번거로움도 일조를 하지 않았나 하는 생각이 듭니다.

그래서 이번에는 로앤비 툴즈의 웹 버전을 개발해 보고자 합니다.

(공교롭게도 신규사업팀이 곧 로피스를 위한 쇼핑몰 프로젝트를 시작할 것이라는 별로 중요하지 않은 이야기는 하지 않겠습니다.)

 

이 새 프로그램의 개발 단계에서의 코드명은 "안사” 라고 하는데요.

현재는 프로토타입 정도만 작성이 되어 있습니다.

아직 개발이 들어가지 않은 시점에서 프로토타입을 공유하고, 이에 대해 사우들의 의견을 들어보고자 합니다.

안사의 프로토타입은 아래 링크를 클릭하면 보실 수 있습니다.

http://d.lawnb.com/Ansa.Prototype/default.html

 

프로토타입 개발 도구로는 MS 사의 Sketch Flow 라는 제품( 익스프레션 블렌드에 통합)을 사용하였습니다.

이 도구에 대해서는 따로 설명하기 보다 위에 있는 안사의 프로토타입을 직접 보시기 권장합니다. 아마 좋아하실 거에요.

(그리고 이 시점에서, 앞으로 신규사업팀의 모든 프로젝트는 먼저 샘플 앱부터 만드는 걸 원칙으로 하고, 그 개발도구로는 Sketch Flow를 사용하기로 했다는, 역시 별로 중요하지 애기도 할 필요는 없겠지요.)

 

안사의 주요 기능 소개

image

SMS 주소록

SMS 를 웹에서 바로 보내고, 보낸 내역과 전화번호를 관리할 수 있는 기능입니다.

SMS 발송 화면

image

주소록

image

발송내역

image

오거서

웹 상에서 사내 도서관의 책을 검색하고 대출/반납 기록을 할 수 있습니다.

관리자는 도서의 ISBN을 입력하는 것 만으로 신착 도서의 정보(제목, 저자, 출판사 등)을 편리하게 입력할 수 있습니다.

도서 검색 & 대출

image

도서 상세 화면

image

인회씨

새로 변경된 ‘법인카드 사용내역 및 지급요청서’를 엑셀을 띄우지 않고 웹에서 바로 작성할 수 있습니다.

작성한 목록을 바로 엑셀 파일로 만들어 인회씨의 메일로 쏘아주는 기능이 포함되어 있어 더욱 편리합니다.

로앤비 툴즈에 있던 ‘(간지) 미옥씨’의 업그레이드 버전이라고 할 수 있는데, 즉 ‘미옥씨’가 업그레이드 되어 ‘인회씨’가 됐다고 할 수 있겠습니다.

사족 : 예전 미옥씨에게는 이름 사용에 대한 허락을 득하였는데, 인회씨에게는 아직 득하지 못하였습니다. 혹 프로그램의 이름이 변경될 수도 있다는 점 양해 부탁 드립니다.

[지급요청서 입력]

image

커뮤니티

여기는 그냥 평범한 게시판입니다.

우리 회사 사원들의 문화 생활에 도움을 주기 위한 엔터테인먼트 전용 게시판이라고 할 수 있겠네요.

대충 아래 스샷과 같은 글들이 올라올 것으로 기대합니다.

[중요 : 익명 작성 가능합니다.]

image

 

피드백

본 프로토타입에 대한 의견은 물론 자유로운 형태로 표현하셔도 되지만, Sketch Flow 라는 도구 자체에 피드백을 위한 훌륭한 기능이 내장되어 있습니다.

위 링크를 클릭하여 브라우저에서 프로토타입이 실행된 상태에서, 화면 좌측 하단에 ‘내 사용자 의견’ 이라는 패널이 있습니다.

여기에 사용자 의견을 기재합니다.

image

필요하다면 잉크 혹은 형광펜을 사용하여 화면에 직접 가필을 할 수도 있습니다.

image

의견을 모두 적었으면 ‘사용자 의견 내보내기…’를 선택하여 작성한 의견을 파일로 저장합니다.

image

저장한 파일을 메일 등으로 보내 주시면 되겠습니다.

 

돌발퀴즈

여기까지 긴 글 읽느라 수고하셨습니다.

그 노고에 보답하는 의미에서 돌발 퀴즈를 하나 준비했습니다. 맞추신 분께는 사우회에 특채로 들어오실 수 있는 기회를 우선 제공하겠습니다.

문) 다음의 이 프로그램의 코드명인 ‘안사’가 의미하는 바는?

1. 이 따위 프로그램은 절대 안사

2. 기순 사장님은 용하지 마세요.

3. 기순 사장님 랑해요.

4.Ansa is not ansa

:

MS가 발표한 무료 Winform / ASP.NET 차트

미분류 2008. 10. 28. 00:31

소개

David Hayden 의 블로그를 읽다가 MS가 발표한 무료 Winform / ASP.NET 차트가 있음을 알게 되었습니다.

지난 9월 8일에 출시되었는데 이제야 알게 되었네요.

image

충분히 살펴보지는 못했지만, (제가 아는 한 에서는) 써드 파티 차트 컨트롤의 최고봉이라고 할 Chart-FX에는 미치지 못하지만, Infragistics나 DevExpress 사의 차트 컨트롤과는 대등한 수준인 것 같습니다.

즉, 상용 수준의 차트 컨트롤을 무료로 사용할 수 있다는 의미가 되겠습니다.

 

컨트롤은 Microsoft .NET Framework 3.5용 Microsoft Chart Controls에서 다운 받을 수 있습니다. 혹 영문 버전을 설치하였다면 Microsoft .NET Framework 3.5용 Microsoft Chart Controls 언어 팩에서 한국어 언어 팩을 추가로 설치할 수 있습니다.

그리고 차트 컨트롤을 비주얼 스튜디오와 통합하는 Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008는 여기에서 다운 받을 수 있습니다. 필수는 아니지만 문서샘플도 다운 받으실 것을 추천합니다.

 

헬로우 월드

그냥 소개만 하고 마치면 아쉬우니까, (상징적인 의미로서의) '헬로우 월드'라도 한 번 찍어보겠습니다.

 

1. 위 링크를 모두 다운 받아 설치한 후 비주얼 스튜디오에서 새 윈폼 응용프로그램을 만듭니다.

2. 윈폼 디자이너가 열린 상태에서 도구 상자를 보면 새로 추가된 차트 컨트롤이 데이터 카테고리아 안에 아래 그림과 같이 보입니다.

image

3. 차트 컨트롤을 윈폼 디자이너로 끌어옵니다.

image

4. 이제 차트의 데이터 소스를 지정하여야 합니다. 물론 예상하시다시피 데이터베이스 테이블이나, XML, 엔터티 컬렉션 등을 모두 데이터 소스로 지정할 수 있지만, 여기서는 간단하게 엔터티의 컬렉션을 사용하도록 하겠습니다.

5. 여러 학생의 국어 영어 수학 점수에 대한 차트를 그리는 상황이라고 가정하겠습니다. 각 학생의 점수를 표현하는 Score 클래스를 프로젝트에 추가합니다.

image

6. 먼저 빌드를 한 번 해준 후, 차트 컨트롤의 속성에서 데이터 소스를 선택한 후 아래 그림과 같이 프로젝트에 새 데이터 소스를 추가합니다.

image 

7. 데이터 소스 타입에서 객체를 선택하고, 위에서 만든 Score 클래스를 선택합니다.

image

image

8. 차트 컨트롤의 Series 속성을 선택하여 시리즈 컬렉션 편집기를 엽니다.

image

9. Name은 '국어', XValueMember는 'Name', YValueMember는 'Korean'으로 설정합니다.

이는 가로 축으로는 응시자의 이름이 나오고 세로 축으로 국어 점수를 표시하겠다는 의미입니다.

image

10. 시리즈를 두 개 더 추가한 후 Name과 YValueMember 값을 각각 아래 그림과 같이 설정합니다. 가로 축은 응시자의 이름이므로 세 시리즈 모두 'Name'이 됩니다.

image

image

11. 영어의 차트 타입은 Bubble로, 수학의 차트 타입은 Spline으로 설정합니다.

image

12. Form1 클래스의 코드 비사이드 파일에 아래와 같은 코드를 추가합니다.

Score 객체의 리스트를 만들어 이를 차트의 데이터 소스로 지정하는 일을 하고 있습니다.

 image

여담이지만, Form 클래스의 Shown 이벤트에 이벤트 핸들러를 추가하지 않고, 바로 OnShown 메서드를 재정의하는 것을 유심히 보시기 바랍니다. 이는 이벤트 핸들러를 추가하는 방식에 비해서 몇 가지 이점을 가지고 있습니다. 이에 대해서는 졸고 C# 코딩 연습 - 대리자와 이벤트에서 자세히 다루고 있습니다.

13. 실행을 하면 아래와 같은 차트를 보실 수 있습니다.

image

 

정리

개발자로서 어려운 선택을 해야 하는 경우가 종종 있습니다.

'유연한 확장이 가능하고 비용이 들지 않는 오픈 소스 기반의 라이브러리를 선택하느냐, 품질이 보장되고 친절한 매뉴얼과 기술 지원이 제공되는 상용 제품을 구매하느냐'도 그런 선택의 하나인 것 같습니다.

물론 프로젝트의 상황과 개발자의 가치관이나 취향 등에 따라 결국 취사선택될 문제이긴 하나, 이 차트 컨트롤의 경우에는 고민스러운 선택을 하지 않아도 될 것 같습니다.

'참 고마운 사람들'이라고 손뼉을 치며 좋아하면서도, 가슴 한 쪽이 서늘해지는 기분이 듭니다.

이 차트 컨트롤과 비슷하거나 못한 상용 제품을 파는 개발사는 그럼 어떻게 될까요?

그들이 쓰러지고 나면 그 다음에는 또 누가 쓰러질까요? 혹시 나?

: