GSI

안드로이드로 개발한 어플 입니다.

코인원 어플을 열어서 현재가를 확인하는 부분을 

별도 어플로 모든 현재가를 한번에 알 수 있도록 구현했습니다.


[어플정보]

https://play.google.com/store/apps/details?id=com.gsiandroid.coinstatuscoinone

코-인원 코인 현황


어플 다운로드!!



Posted by gsi
:

Only the original thread that created a view hierarchy can touch its views


이런 오류가 날때가 있다.

무심고 아무 스레드나 코드에 UI 업데이트를 하는 부분을 추가 하면 발생 한다.


단순하게 아래 코드와 같이 실행하면 된다.


해당 클래스에 아래 코드를 추가 한다.

final Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
((InterDrawItemAdapter)list.getAdapter()).notifyDataSetChanged();
}
};

UI를 해야 할때 아래 코드를 추가 한다.

Message message = handler.obtainMessage();
handler.sendMessage(message);

이상.

Posted by gsi
:

매번 작업 하지만 막상 할때 되면 잊어 먹는 부분이네요.

Windows Server 2016 .NET Framework 3.5 설치 하는 방법 입니다.


서버 관리자 > 역활 및 기능 추가 를 눌러 줍니다.


역활 및 기능 추가 마법사 창이 열립니다.

다음 을 누르세요.


다음 을 누르세요.


다음 을 누르세요.


서버 역활에서는 추가 할게 없으니 무시하고

다음 을 누르세요.


.NET Framework 3.5 Features 를 체크 합니다.

다음 을 누르세요.


설치 을 누르세요.


설치가 다 되고 나면

닫기 을 누르세요.


끝!!!









Posted by gsi
:

1. 개인정보의 처리 목적 손병욱 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.


①구글플레이스토어 연동 및 앱 내의 인앱결제 서비스.




2. 정보주체의 권리,의무 및 그 행사방법 이용자는 개인정보주체로서 다음과 같은 권리를 행사할 수 있습니다.


① 정보주체는 손병욱에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.


1) 개인정보 열람요구


2) 오류 등이 있을 경우 정정 요구


3) 삭제요구


4) 처리정지 요구


* 손병욱은 앱 사용자의 사용정보를 수집 및 보유하지 않습니다.




3. 처리하는 개인정보의 항목 작성


① 손병욱 은(는) 다음의 개인정보 항목을 처리하고 있습니다.


1)개인정보 처리업무


– 필수항목 : android.permission.READ_PHONE_STATE 구글플레이스토어와의 연동을 위한 항목입니다.




4. 개인정보의 파기 손병욱은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.


– 사용되는 개인정보는 구글플레이스토어 및 인앱결제에 관련된 부분이며 손병욱 은 다른 목적을 위해 어떠한 정보도 취득하거나 변조 및 사용하지 않습니다.


– 앱 삭제시 더 이상 위 권한을 사용하지 않습니다.




5. 개인정보의 안전성 확보 조치 손병욱 은(는) 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.


①내부관리계획의 수립 및 시행


– 개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.


② 개인정보에 대한 접근 제한


– 개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.


③비인가자에 대한 출입 통제


– 앱 개발실의 보안조치로서 출입통제 절차를 수립, 운영하고 있습니다.




6. 개인정보 보호책임자 작성


①손병욱 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.




▶ 개인정보 보호책임자 및 담당부서


성명: 손병욱


직책: 대표


연락처 : gsi451@naver.com


② 정보주체께서는 손병욱 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. 손병욱 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.




7. 개인정보 처리방침 변경


①이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.


이 개인정보처리방침은 2018년 3월 23일부터 적용 됩니다.

Posted by gsi
:

2017년 11월에 이사를 와서 바로 공사를 못하고 이사를 들어와서 정리하고 이제야 싱크대 공사를 했네요.

주변에 있는 설비 업체를 이용할려다가 인터넷에 저렴하고 사은품도 주는걸 보고 선택 하게 되었습니다.

집이 15년 이상 된 집이라서 주방이 엉망이였습니다.


시공하고 나니 새로운 집 처럼 깔끔하고 좋네요.

이전 싱크대를 철거하고 나니 엉망인 부분들이 있었는데 그 부분을 감안해서 잘 시공해 주셨습니다.

서비스도 만족 합니다. 시공하는 모습도 너무 만족 스럽네요.

중문 시공도 향후 해야 하는데 리바트를 이용해야 겠네요.


[철거전]


[시공후]



Posted by gsi
:

2018년 3월 8일 입니다.

거창에는 가끔 이맘때 눈이 오는데요.

오늘은 새벽부터 비와 눈이 같이 내렸습니다.

아침에 보니 대나무가 우리집 가는 계단을 막고 있네요. ^^





Posted by gsi
:

근접센서 OSG-105LF 입니다.

0.8mm ~ 1.2mm 의 거리를 감지합니다.


[회로도]


[PCB에 조립한 사진]



Posted by gsi
:

MFC에서 타이머 사용하기 위한 방법입니다.

가끔 사용하다 보면 어떤건지 헷갈릴 때가 있습니다.

그래서 정리한 내용 입니다.


※ 메시지 맵에 아래 내용을 등록 합니다.

BEGIN_MESSAGE_MAP(CGroupChatWindow, CDialog)

...

ON_WM_TIMER()

...

END_MESSAGE_MAP()


※ 헤더파일에 함수를 선언 합니다.

afx_msg void OnTimer(UINT nIDEvent);


※ 함수는 아래와 같이 생성합니다.

void CTest::OnTimer(UINT nIDEvent)

{

    switch(nIDEvent)

    {

        case 1:

    // 내용을 여기 추가

            break;

    }


    //KillTimer(1); // 필요하면 이걸 사용해서 타이머 종료


}


※ 타이머 시작

SetTimer(1, 1000, NULL); // 이벤트 아이디 1, 1000ms(1초)


-- 이상 입니다. --


Posted by gsi
:

최근에 json 을 파싱할 일이 있어서 jsoncpp 를 사용하게 되었는데요.

Debug할때 오류가 나지 않는 부분이 Release를 하게 되면 아래와 같은 오류가 날 수 있습니다.


1>  코드를 생성하고 있습니다.

1>D:\jsoncpp-src-0.5.0\src\lib_json\json_value.cpp : fatal error C1083: 컴파일러 생성 파일 파일을 열 수 없습니다. '../../build/vs71/release/lib_json\json_value.asm': No such file or directory

1>LINK : fatal error LNK1257: 코드를 생성하지 못했습니다.


이때 해결 방법은 아래와 같습니다.


jsoncpp 프로젝트 저 같은 경우는 lib_json 입니다.


> 프로젝트 속성 페이지를 엽니다.

> C/C++ 탭의 "출력 파일"을 클릭합니다.

> "어셈블러 출력" 항목의 내용을 "목록 없음" 으로 변경합니다.


빌드 하고 사용하시면 오류가 없어 집니다.


Posted by gsi
:

Visual Studio 2003 으로 프로젝트를 구성중에

이 오류를 가끔 발견할때가 있다.

이 오류를 해결하기 위한 가장 간단한 방법은 Visual Studio를 재부팅 하면 된다.

하지만 개발중에 이 메시지를 보고 다시 재부팅 하기에는 짜증이 너무 난다.


이 오류를 해결하기 위해서 자료를 많이 찾아 봤다.

하지만 대부분 해결이 안되서 한참 찾던중에 해결방법을 찾았다.

결국 NatDbgDE.dll 파일에 오류가 있어서 패치가 나와 있던걸 발견했다.


Visual Studio 2003을 기준으로 설명한다.


1. C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\Packages\Debugger 폴더로 간다.


2. NatDbgDE.dll 파일을 삭제 또는 백업(다른이름으로 변경)한다.


3. 첨부 자료에 있는 압축 파일 안에 있는 dll을 복사해서 같은 이름으로 변경한다.

  - 참고자료 링크를 클릭하면 다운로드 받는 주소가 나옵니다.

  - 여기 올려 놓은 압축파일을 사용해도 됩니다.


4. 그리고 VS툴을 켜서 확인해보면 문제가 없는걸 알 수 있다.


[참고자료]

http://bytepointer.com/articles/vs7.1_2003_on_win7_pdb_handle_leak_bug_unofficial_fix.htm


[압축파일]

vs7.1_on_win7_pdb_handle_leak_unofficial_fix_win10.zip


Posted by gsi
:


Posted by gsi
:

testJson 변수에 해당 문자열을 담고

아래쪽에서 화면에 출력해 보는 내용입니다.

한개씩 값을 가져와야할 경우는

Info.Get("lastname") 를 사용하면 됩니다.


이 부분을 사용하기 위해서는 json2.asp가 필요 합니다. (첨부확인)


[인클루드]

<!--#include virtual="json2.asp"-->


[본문]

'json test

testJson = "{""firstname"":""Fabio"", ""lastname"":""長尾""}"


'json 타입으로 값을 가져오는 방법

dim Info : set Info = JSON.parse(testJson)

Response.write( JSON.stringify(Info, null, 2) & vbNewline ) ' prints the text below:

Response.Write "<br/>"

Response.Write Info.Get("lastname")

set Info = nothing


Posted by gsi
:

> Microsoft SQL Server Management Studio 를 실행하여, 원하는 DB의 "속성" 을 누른다.

> "옵션" 페이지에서 "복구 모델" 을 "전체" 에서 "단순" 으로 변경하고 "확인" 을 누른다.

> 다시 원하는 DB의 "태스크" > "축소" > "데이터베이스" 를 선택한다.

> "데이터베이스 축소" 창이 뜨는데, "확인"을 선택하여 축소 작업을 수행한다.

> 해당 DB의 로그 파일의 크기가 줄어들었음을 확인한다.

> 다시 DB의 "속성"의 "복구 모델"을 "단순"에서 "전체"로 돌려 놓는다.


-끝-

Posted by gsi
:

코드는 아래와 같이 구성하면 됩니다.

0.3f로 되어 있는 부분의 수치는 적당히 조절하면 됩니다.

빠르게 누르지 않으면 계속해서 exitCountValue가 0으로 변경되는걸로 이해 하시면 됩니다.


uint exitCountValue = 0;

void Update(){

    if(Input.GetKeyUp(KeyCode.ESCAPE)){

        exitCountValue++;

            if(!isInvoking("disable_DoubleClick"))

                invoke("disable_DoubleClick", 0.3f);

    }

    if(exitCountValue == 2){

        CancelInvoke("disable_DoubleClick");

        Application.Quit();

    }

}

 

void disable_DoubleClick(){

    exitCountValue = 0;

}

Posted by gsi
:

맞고 게임서버에 테스트 할때 사용한 맞고패 인덱스 배열 만들기 프로그램 입니다.


혹시나 필요하신분이 있을까봐 올려 봅니다.

그래그앤 드롭으로 해당 위치로 가져다 놓으면 배열이 만들어 집니다.




GoStopPagDebugging.zip


Posted by gsi
: