기본 콘텐츠로 건너뛰기

단독형 키오스크 [1차 완료]

  포스 개발 일을 하고 있습니다. 기존 포스 솔루션에 별도 UI 를 추가하여 (C# Winform) 포스 프로그램 위에서 구동되는 버전이 있습니다만, 좀 더 타겟팅을 하여 포스를 사용하지 않는 매장을 타겟으로 단독으로 구동되는 키오스크를 개발 중에 있습니다. 키오스크의 특성상 다양한 해상도를 지원해야 하고 해서 이번 기회에 WPF 를 이용하여 개발할 계획을 세우고, 12월 말 부터 WPF 기술 습득하고, 본격적으로 2월 정도 부터 프로젝트를 진행하였습니다. 아직 포장 중이긴 합니다만 WPF 로 작성한 첫 프로그램인 만큼 저의 개발 블로그에 올려봅니다.
최근 글

WPF Window Show / Close 후 새 Window Show 무시, 자동 종료 현상

 WPF 프로젝트 초기 개발시 Login 창 후 로직 처리 및 Main 창 호출이 되지 않고 종료 (exit code: 0) 되는 현상이 있습니다. 의도치 않은 기능인데, 아무래도 WPF 구조를 잘 모르는 상태에서 개발한 탓이겠지요. 개발 하고자 하는 흐름은 Application_Startup -> LoginWindow -> 비지니스 로직 -> MainWindow 인데, 비지니스 로직까지 돌고 바로 종료가 됩니다. app.xaml < Application  x : Class = "Test.App"               xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"               xmlns : x = "http://schemas.microsoft.com/winfx/2006/xaml"               xmlns : local = "clr-namespace:Test"               Startup = "Application_Startup" > 보통 저런 형태로 사용하는데 WPF 는 기본적으로 창이 없을 경우 자동으로 종료되는 기능이 있습니다. Application.ShutdownMode 속성 (System.Windows) | Microsoft Docs Application 속성에 보면 ShutdownMode 가 있습니다. < Application  x : Class = "Test.App"               xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"               xmlns : x = "http://schemas.microsoft.com/winfx/2006/xaml"               x

Synology Docker MS-SQL Server 설치

몇일 전에 회사 프로젝트를 하면서 Firebase 의 Functions 를 사용하였다가 프로그램의 특성상 10초만에 한번씩 폴링하는 방법으로 구현하였습니다. 이 방법은 사용료를 지불하는 방법인데 아직 서비스 이전이라 사용료가 안나갔으나, 소심함에 집에 여전히 같이 늙고 있는 나스에 Docker 를 이용해서 node.js 를 설치하여 사용해보니 개발용으로는 제법 괜찮은 방법인 듯 하여, 오늘 문득 재택근무 도중 업무시 자주 사용하는 MS-SQL Express 를 매번 설치하지 않는 방법을 시도해보기로 했습니다.  의식의 흐름대로 쓰는 듯한 ... 나름 원하는 개발 환경이 갖춰졌다 판단 하여 2021년 최신 판으로 히스토리를 남겨봅니다. 먼저 Docker 레지스트리에서 mssql 을 검색합니다. 물론 Docker 는 먼저 패키지에서 설치하셔야 합니다. 그리고 공유폴더나 사용 권한이 있는 home 디렉토리 하나 준비해주시면 됩니다. (아시겠지만 Docker 이미지와의 통로라고 보면 됩니다.) 가장 상단의 linux 로 되어 있는 것을 선택하여 설치합니다. 대충 1GB 크기의 이미지가 설치되면 이미지 탭에 설치되어 있는 것이 보입니다. 실행을 누르게 되면 상세 설정이 나옵니다. 고급설정에서 몇개만 설정해 놓으면 끝납니다. 볼륨 탭을 선택하여 파일/폴더 에 아까 준비한 공유폴더 (저는 docker 라는 공유폴더 만들고 하단에 mssql 이라는 폴더를 만들었습니다.) 에 폴더 추가 버튼으로 선택합니다. 그리고 마운트 경로에 /var/opt/mssql 로 입력합니다. 포트 설정에서 컨테이너 포트는 귀찮으니 1433 으로 냅두시고 (기본 MS-SQL 포트입니다.) 로컬포트 만 변경해봅니다. (다른 서비스와 중복안되는 포트 번호 넣어 주시면 되는데 저는 기억하기 쉽게 앞에 보통 5나 6 넣습니다. 65535 안넘어가면 되는거겠죠?) 다른 옵션도 있는데 대충 위 두 라인만 입력하면 대충 되는 것 같습니다. MSSQL_SA_PASSWORD 부분은 원하는 비밀번호를 입력해주세요.

Synology DSM 6.1 마인크래프트 PE 서버 설치하기

아이들이 핸드폰으로 마인크래프트를 즐겨합니다. 아빠를 위해서 뭐를 지어주냐고 해서 흡연실을 만들어 달라고 했습니다. (담배 참은지 8개월째...ㅠㅠ) 핸드폰에 남겨져 있는게 아까워서 사설 서버를 들이고 싶었습니다. 개발용으로 PC 서버가 있긴한데 전기료 아까워서 매일 켤 수는 없고, 항상 켜져 있는 시놀로지 나스에서 구동하고자 하였고, 또 기억력이 좋지 않아 아래 삽질기를 남깁니다. 1. 서버 프로그램 선택    java 로 구동되는 nukkit ( https://nukkit.io ) 으로 선택했습니다.    패키지센터 (패키지 소스에 http://www.hildinger.us/sspks/ 추가해야 함) 에 있는 마인크래프트 서버를 설치하다가 java 8 설치 만으로 구동되는것을 보고 설치가 편할 것 이라 판단하였습니다. 처음에는 이 버전이 PE 도 되는건 줄 알고 엄청난 삽질을 했네요. 2. 설치    먼저 패키지센터를 통해 java 8 을 설치합니다.    해당 url 에서 서버 프로그램을 다운받아 디렉토리에 복사합니다.    디렉토리는 아무 계정의 홈디렉토리에 생성합니다.    admin 계정이나 root 계정 아무거나 상관 없습니다. 일반 계정도 상관없을 듯 합니다.    제 경우 admin 을 주로 사용하므로 putty 를 이용해서 admin 홈디렉토리에 mcpe 디렉토리를 생성하여 위 사이트에서 nukkit-1.0-SNAPSHOT.jar 를 받아 nukkit.jar 로 파일명을 변경하여 복사하였습니다. (이 단계까지는 File Station 으로도 가능합니다.)    구동되는지 테스트합니다.    putty 등을 사용하여 접속하고 위에 만든 디렉토리로 이동하여 명령어를 입력합니다.    java -jar nukkit.jar    처음 실행시 설치 언어를 물어보는데 하고 싶은 언어를 입력합니다. kor 또는 eng    그러면 여러 파일들이 해당 폴더에 생기면서 서버가 구동됩니다. java 8 만 설치돼

ORACLE Instant Client 설치

2006/09/15 14:22 에 작성한 내용 이전 등록 적용방법 (VB6 테스트 기준) 오라클사이트에서 다음 같은 화일을 다운로드 한다. instantclient-basic-win32-10.2.0.2-20060508.zip instantclient-odbc-win32-10.2.0.2-20060508.zip C:\InstantClient 로 압축해제 후 복사한다. 시스템변수 PATH 에 C:\InstantClient 를 추가한다. 시스템변수 TNS_ADMIN 를 추가하고 C:\InstantClient 를 설정한다. 리부팅... (또는 그냥 CMD 로 추가... 전자 추천) C:\InstantClient 폴더에서 odbc_install.exe 를 실행한다. 기존 오라클클라이언트에서 사용하던 tnsnames.ora 를 가져다 InstantClient 폴더에 넣는다. C:\Oracle\Ora81\NETWORK\ADMIN 에 있다. (없으면 비슷하게 생긴거 구글에서 찾아보자) 이게 있어야 DSN 설정이 가능한 듯 제어판->관리도구->ODBC 에서 사용자DSN 에 추가한다. 드라이버 : Oracle in instantclient10_2 선택 그리고 화면 나오는데로 입력 Test Connection 한번 눌러서 연결되는지 확인 하고 마지막으로 한글을 사용하려면 하단탭의 Workarounds 에서 Force SQL_WCHAR Suppot 를 선택 (이걸 모르고 해보다 한글이 ?? 게 나오는거 보고 시껍함) 프로그램 루틴 Connection String 을 변경한다. DATA SOURCE=dsn_name;User ID=user;Password=password 만 등록했음