블럭노리 v1.0 베타를 공개한지 약 일주일이 지났습니다.

그 동안 많은 분들이 설치를 해보고 문제점을 이야기 해주시고 오류와 버그, 개선점을 말씀해주셔서 몇일되지 않는 시점에 많이 개선되고 발전된것 같습니다.

의견 주신 모든 분들께 감사드립니다

 

그래서 지금까지 나온 문제점들을 열거하고

개선된 부분에 대한 이야기를 진행할려고 합니다

또한 지금까지 나온 문제점들에 대한 수정본을 공개할려고 합니다.

 

1. 설치프로그램 오류 수정

처음 개발할때 Visual Studio2012버전에 .NET framework4.5로 진행을 했었습니다

그러다 보니 설치시 DLL문제와 SQLite 실행문제가 발생했습니다.

구체적으로 보면

NSIS로 셋업을 만들고 참조로 System.Data.SQLite를 참조하여 만들었는데

VS2012에서 기본적으로 설치되어야 할 DLL을 셋업에 포함시켜서 실행을 시키도록 만들지 않아서 설치는 되는데 이상한 오류가 발생했습니다.

살펴보니 SQLite오류였습니다.

또한 Windows7이상에서만 구동되는 문제가 발생했습니다

그래서 처음엔 SQLite를 설치하여 사용하는 방향으로 생각을 했었습니다

그러다가 버전을 낮춰보면 어떨까 해서

Visual Studio2010버전과 .Net framework3.5 SP1으로 변경하여 컴파일한 후 NSIS로 setup파일을 만든 결과 Windows XP에서 SQLite를 직접설치하지 않고도 구동이 되는 것을 확인했습니다

그래서 현재는 XP이상에서는 구동이 가능하도록 변경되었습니다

 

2. 요금셋팅에 대한 변경

블럭방을 직접 운영하시는 분들이 가격대를 자유롭게 결정하도록 해달라고 해서 변경을 했습니다

그래서 ini파일을 변경하면 가능하도록 변경하였습니다

설치디렉토리 하단에 보면 config디렉토리가 있습니다

거기서 config.ini파일을 열면

[MONEY]
HalfMoney=3000
HourMoney=6000

부분이 있습니다

HalfMoney는 최초30분의 해당하는 가격입니다

HourMoney는 시간당 가격입니다

최초 30분 이후는 시간당 가격을 6으로 나누어서 10분당 가격이 결정되도록 하였습니다

최초 30분을 3000원으로 하였다면 10분이든 20분이든 30분까지는 무조건 3000원으로 계산이 되고 시간당 6000원이라면 10분당 1000원으로 계산해서 가격이 정해지도록 하였습니다

 

3. 충전에 대한 시간과 유효기간 설정 변경

기존버전에서는 충전은 20시간에서 100시간까지 20시간 단위로 가능하도록 고정되어 있었고

유효기간도 4개월부터 2개월씩 증가하도록 프로그램에 고정되어 있었습니다

이것 또한 자유롭게 변경이 가능하도록 하였습니다

config.ini파일을 보면

 

[TIMECNT]
TimeCount=6

 

[TIME]
Time1=10
Time2=20
Time3=40
Time4=60
Time5=80
Time6=100

 

[EXPIRYMONTH]
ExpiryMon1=2
ExpiryMon2=4
ExpiryMon3=6
ExpiryMon4=8
ExpiryMon5=10
ExpiryMon6=12

 

이부분이 추가되었습니다

[TIMECNT]은 충전시간 구간 갯수를 뜻합니다

그리고 [TIME]은 충전시간을 표현한것이고

[EXPIRYMONTH]은 유효기간 개월수를 표시한 것입니다

 

여기서 중요한것은 TimeCount와 충전시간, 유효기간의 갯수가 반드시 일치해야 합니다

그리고 모든것은 숫자로만 지정을 해주셔야 합니다

 

수정된 버전은

 

 

Blocknori_Setup.zip

 

입니다

설치하여 사용하시다가 문제가 발생하거나 좋은 의견이 있으면 메일이나 댓글로 부탁드립니다

 

초기 접속 로그인 정보 :

   아이디 : admin

   비밀번호 : rhksflwk

비밀번호는 한글로 "관리자"입니다

 

버전은 여전히 1.0으로 했기 때문에 기존 프로그램을 삭제후 설치해주시면 될것 같습니다

혹시 DB를 보존해야 한다면

설치디렉토리 C:\Program Files\Blocknori\database에서 blocknori.db를 미리 백업받아두시고 기존 설치프로그램을 삭제한 다음 상기 버전으로 재설치를 하시고

C:\Program Files\Blocknori\database에 백업DB를 덮어쓰기를 해주시면 됩니다

DB에는 변경내용이 없기때문에 기존 DB를 덮어쓰시면 사용에 문제가 없을 것입니다

 

 

감사합니다

 

 

top


블럭노리 탄생배경

 

자유블럭방을 실제로 운영을 하면서 회원관리를 노트로 진행하였습니다.
일단 소규모였기 때문에 노트로 관리한다고 하여도 운영에 어려움이 있을 정도는 아니었습니다
그래서 회원가입 신청서, 충전관리, 일일회원 입출입 기록관리 등을 노트를 책처럼 엮어서 사용을 했습니다

처음에는 그럭저럭 무리없이 운영을 했는데 시간이 지날수록 관리가 점점 어려워졌습니다.
특히 기록관리에 대한 부분이 상당히 어려웠습니다.
그리고 정산 부분을 할때 마다 계산이 어려웠습니다.

그래서 처음엔 그냥 자동으로 계산만 해주는 프로그램을 만들어보자 하고 엑셀을 만들었습니다
그래서 회원인 경우 회원번호, 이름, 입실시간, 퇴실시간, 정산금 등을 자동으로 계산하도록 만들었습니다.
그럭저럭 사용할만하였습니다
그런데 이게 또 내용이 많아지니깐 사용이 힘들어지더라구요
첫번째가 충전회원이 많아지니깐 회원카드를 가지고 오지 않은 경우 회원번호를 찾는게 쉽지 않더라구요
또한 회원번호를 알고 있더라고 부모님 전화번호를 모르니깐 회원이 그만한다고 부모님께 연락해달라고 할때마다 회원가입장부를 뒤져서 전화번호를 찾는 소모적인 시간을 가졌습니다.
두번째가 노트와 엑셀을 병행하다보니 서로 매칭되는 부분을 찾기위한 시간을 너무 많이 허비하게 되었어요
기록의 객관성도 결여되었고...

그래서 돈을 주더라도 관리프로그램을 하나 사서 하자 하는 마음으로 열심히 구글링을 했습니다.
그런데 구미에 딱 맞는 프로그램은 없고 있더라고 프렌차이즈에 가입하면 설치해준다고 하더라구요
아니면 여러가지 복합적인 관리프로그램 중 하나를 이용해서 관리하면 된다고 하더라구요

특히나 레고, 가베, 로봇 등 여러가지를 모두 사용하는 프로그램을 사서 써야 하더라구요
가격도 비싸고...어떤 것은 월 고정비용을 지출하면서 사용해야 했습니다
그런데 그런 프로그램도 돈을 바라보고 한 것이라서 그런지 알바들이 사용에 어려움을 겪는것을 보고 차라리 간단하게 만들어보자 하는 마음으로 시작을 하였습니다
최대한 단순하고 최대한 쉽게 만들자가 첫번째 목표였습니다

어차피 판매용 솔루션이 아니니깐 그냥 내 구미에 맞게 만들고
우리 블럭방에서 알바들이 쉽게 이용하면 되지 않을까 해서 만들었고
현장에서 사용해본 결과 좋다는 반응이 많아서 그럼 나와 비슷한 고민을 하는 사람들을 위해 공개하자 하는 생각을 했습니다

나름 개발쪽일을 하면서 아내의 일을 도와주는 형태로 하다보니 장점이 있었습니다.
예전부터 Visual C++을 한 기억이 있어서 쉽게 C#을 접할 수 있었고
허접하나마 하나 개발하게 되었습니다
관리자에서 시간당 가격을 변경하도록 해야 하는 부분을 놓쳐서 그 부분을 추가하여 셋업프로그램을 만들고 이렇게  허접하나마 공개합니다
혹시 도움이 될지 모르겠습니다

 

 

 

블럭노리 1.0베타 :

 

 

BLOCKNORI_Setup.zip

 

 

프로그램에 필요한 사전 설치 파일을 포함시켰다.

.Net Framework4.5

SQLite .net Framework4.5 버전용


블럭노리 개발 개요

 

1. 복잡하지 않고 단순하며 쉽게 사용할 수 있을 것
2. 간단한 설명만으로도 사용이 가능할 것.
3. 인터넷 환경이 아니더라도 이용가능할 것
4. 데이타의 외부 유출이 되지 않게 DB를 로컬로 관리할 것
5. 비용의 부담이 적은 정도의 수준으로 사용가능하게 할것

 

블럭노리 기능 및 효과

 

1. 일일 자유 회원 관리  및 정산
2. 시간 충전회원 등록, 수정 및 정산
3. 시간 충전 정보관리 기능 및 변경
4. 회원 유효기간 관리 및 변경
5. 블럭방 이용 기록 관리(충전회원에 한함)
6. 블럭제품 등록 및 관리
7. 관리자 추가 등록 및 관리
8. 목록에 대한 엑셀 다운로드 기능제공
9. DB에 대한 자동 백업 기능 제공

 

블럭노리 설치 환경

 

1. 운영체제 : Windows XP이상
2. .NET Framework 3.5
3. DBMS : SQLite 3.0

 

개발환경


1. 개발툴 : Visual Studio 2010
2. .NET Framework 3.5 SP1

3. DBMS : SQLite 3.0

 

블럭노리 설치정보


1. 설치 디렉토리는 C:\Program Files\Blocknori 디렉토리에 설치가 됩니다.
2. 설치파일은 설치디렉토리 루트에 blocknori.exe,System.Data.SQLite.dll 2개가 설치되고
   하위에 database디렉토리에 blocknori.db파일이 설치가 됩니다
   설치 디렉토리 하위의 config 디렉토리에 config.ini 환경설정파일이 설치됩니다
   환경설정파일에는 최초 30분 사용시의 금액과 시간당 사용금액을 저장하게 되어 있습니다
   이부분을 수정하시면 블럭방 운영가격을 조정할 수 있습니다
   기본 입시간료을 30분으로 지정하였습니다
   입실 후 최초 30분에 해당하는 금액은 HalfMoney=가격 이렇게 되어 있습니다
   다른것은 수정하시면 안되고 가격부분만 숫자(쉽표나 문자가 있으면 안됩니다)로
   입력해주시면 됩니다
   그리고 HourMoney=가격 이부분은 시간당 가격을 말하는 것입니다
   이부분 또한 숫자로 가격을 수정해주시면 됩니다
   기본으로
   [MONEY]
   HalfMoney=3000
   HourMoney=4500
   되어 있습니다.
   그리고 DB백업을 위한 DBBackup디렉토리와 엑셀저장디렉토리인 excel디렉토리 이렇게 구성되어 있습니다
3. 프로그램 그룹은 블럭노리로 구성됩니다.
4. 사용법은 기존 강좌를 참조하시면 됩니다

5. 환경설정을 제외하고 수정없이 사용하는데는 아무런 제약이 없습니다.

6. 초기 접속 로그인 정보 :

   아이디 : admin

   비밀번호 : rhksflwk

비밀번호는 한글로 "관리자"입니다

 

사용해보시고 에러나 버그가 있으면 댓글 부탁드립니다

 

감사합니다

top


잠시 쉬어가는 코너로 SQLite연결을 위한 전역변수 사용에 대한 부분을 살펴보자

 

먼저 참조로 System.Data.SQLite.Core를 선택해서 추가하였다.

 

using System.Data.SQLite;

 

그런 다음 전역변수로 DB연결부분을 만들었다

 

public class global_variable
        {

            //전역변수 선언부분
            private static String currentPath = Environment.CurrentDirectory; //현재 디렉토리
            private static string bDBPath = currentPath + "\\blocknori.db"; //DB명
            private static String bConnStr = String.Format("Data Source={0};password={1}", bDBPath, "비밀번호");

            private static SAdminInfo g_AInfo;

            public static string DBPath  //디비 경로 설정
            {
                get { return bDBPath; }
                set { bDBPath = value; }
            }

            public static string ConnStr  //디비 연결문자열
            {
                get { return bConnStr; }
                set { bConnStr = value; }
            }

         }

 

위와 같이 전역변수를 선언한 다음 DB연결을 진행했다.

 

DB는 설치프로그램 하단에 루트디렉토리에 존재하도록 작업을 하였다.

 

그리고 몇가지 공통되는 함수를 만들었다

그중 하나가 페이징이다

페이징에서는 가장 중요한것이 페이징 갯수를 구하는 것이다

함수를 살펴보면 아래와 같다

 

 

//페이징 갯수 구하기
     public long GetPageSize(long nTotal, long nPageNum)
        {
            double nTP;

            nTP = 0;

            try
            {
                if (nTotal == 0)
                {
                    nTP = 0;
                }
                else
                {
                    nTP = (double)(nTotal / (double)nPageNum) * (double)nPageNum;

                    if ((double)nTP % (double)nPageNum != 0)
                    {
                        nTP = (nTP / (double)nPageNum) + 1;
                    }
                    else
                    {
                        nTP = nTP / (double)nPageNum;
                    }

                }
            }
            catch { }

            return (long)nTP;
     }

 

 

메인에서 사용할때는

먼저

private long noriPageSize = 15;
        
private long chargePageCount = 0;
private long chargeCurrentPage = 1;

 

private로 변수를 선언한 다음

long TotalRecords = 총레코드수를 구한다;

noriPageCount = dbcon.GetPageSize(TotalRecords, noriPageSize);

 

이렇게 페이지 갯수를 구하면 된다.

 

다음 포스트에서도 중간 중간 특이한 함수에 대해서는 정리를 하고자 한다

 

top