Visual Studio Installer Project 사용하기

Visual Studio Installer Project 사용하기

CSharp
확장 > 확장관리 :: 검색어 "installer"를 입력하면 설치 할 수 있습니다. Installer프로젝트의 자세한 사용법은 검색을 통해서 알아 보시기 바라며, 제가 기록할 내용은 설치할 경로에 대한 정보 입니다. 제가 이 사진을 올린 이유는 속성창중에서 "Manufacturer" 이부분이 중요해서 입니다. 아래의 사진중에서 경로를 지정할수 있습니다. 하지만, 이 프로그램이 설치될 상위 디렉토리에 대해서 설정을 여기서 할 수 있습니다.보이시는 "Manufacturer" 의 값이 아래의 "Application Folder"의 이름이 되는것이라고 저는 보고 있습니다. 경로를 설정하실때 이름을 입력을 해 놓는것이 좋다는 생각입니다. 보통 새롭게 프로젝트를 만들고 "Application Folder" 속성에 "DefaultLocation" 정보가 보이게 됩니다. 이곳의 정보를 수정하면은 변경을 할수 있습니다. // [ProgramFilesFolder] :: 설치할 경로 // [Manufacturer] :: 필수 유지 위에서 설명함. // [ProductName] :: 설치할 폴더명(프로젝트 이름과 달리 할수 있음) [ProgramFilesFolder][Manufacturer]\[ProductName] 위에서 "[ProgramFilesFolder]" 이부분을 변경을 원합니다. 저는 C 드라이버에 사용되기를 원해서 "[WindowsVolume][Manufacturer]\MyPROGRAM"으로 변경해서 모두 설치를 하고 있습니다. 저 처름…
Read More

Dropbox를 통한 VSCode 환경설정 동기화

Tool
github를 사용하면은 쉽게 할  수 있는 방법은 검색만 해도 많지만은, github를 사용하지 않고 환경설정이나 확장 프로그램을 관리하기 위해서 고민을 하다가 기존에 사용하는 Dropbox를 이용해서 하는 방법을 강구했습니다. 기존에 환경설정이나 확장 프로그램을 미리 복사해서 백업을 해 놓고 사용하시기 바랍니다. Windows의 CMD(명령프롬프트) 를 통해서 아래의 명령어를 입력하면은 Dropbox에 복사해 놓은 환경 설정과 확장 프로그램을 사용합니다. mklink /d "%USERPROFILE%\.vscode\extensions" "D:\Dropbox\Backup\.vscode\extensions" mklink "%APPDATA%\Code\User\settings.json" "D:\Dropbox\Backup\.vscode\settings.json" 이 이후에 VSCode를 실행하고 다른곳에서도 동일한 작업을 하고 나서 하면은 동이한 환경 설정을 이용해서 사용할수 있습니다. 이 방법을 통해서 모든 코드, 문서를 관리하는 방법으로 인해서 전 어느 컴퓨터라도 동일한 환경에서 작업을 진행하고 동일한 작업을 진행 할 수 있어서 행복합니다. 물론 Github의 gist를 통해서도 가능하지만 그외에 방법으로 할 수 있다는 점을 글을 적어 봅니다.
Read More
MySQL DB Schema 관리 프로그램

MySQL DB Schema 관리 프로그램

CSharp, 프로그램
MySQL DB Schema 에 대해서 DBTool을 이용하지 않고 보고 보고서를 Excel로 출력하기 위해서 만들었습니다. 분명히 좋은 프로그램도 많고 하지만 특정 사용인에 맞춰서 출력을 조절하고 DB Schema를 관리 하기 위해서 만들게 되었습니다. 컬럼마다 코멘트와 형식으로 모두 설정이 가능하도록 되어 있어서 여러사람이 이 프로그램을 사용하면은 볼수가 있습니다.
Read More

ACTS의 서비스 유지에 대한 검토중….

ACTS/SFCA
ACTS 서비스를 몇년간 유지 하였지만 이제는 그만 놓아줄까 생각을 하고 있습니다. 특별히 유지비가 문제가 되지는 않지만 서버단에서 처리해야 되는 일이 계속 늘어나면서 이제는 그만 놓아 줘야 되지 않나 생각을 합니다. 한편으로는 기존에 제공하는 정보를 축소하여서 계속 틀을 유지를 해야 되는가에 대해서도 고민을 하는 중입니다. 하루 아침에 서비스를 내리지는 않지만 천천히 축소가 되거나 아니면은 기간을 두고 서비스를 멈추는 방향이 될것 같습니다. 제게 특별히 시간이 여유로워지면서 더 좋은 서비스로 업그레이드 작업을 할 수도 있지만 현재로서는 삶에 여유가 생기기 않을것이라고 생각이 됩니다.그래서 서비스를 유지를 하는것에 대해서 현재 진지하게 고민중에 있습니다. 지금도 제 눈에는 문제가 보이지만 현재 손을 될 수 없는 상항에 처하면서 겨우 시간을 내서 급한부분부터 수정을 하는데 이런 사태가 언제까지 갈 수 있을지 모르겠습니다. 자연스러운것은 현재 사용하시는분들이 점점 줄어들면서 자연적으로 도퇴해가는 절차가 가장 자연스럽지 않을까 싶습니다. 제 자신이 현재 고민중이라는 내용을 글을…
Read More
Local MSSQL 데이터를 MySQL Server로 전송

Local MSSQL 데이터를 MySQL Server로 전송

CSharp, 프로그램
요구사항1. 컴퓨터의 MSSQL 특정 DB table을 MySQL 서버로 전송2. 특정컬럼의 구분자를 구분해서 MySQL로 전송3. 컴퓨터의 MSSQL 데이터를 일정기간 지난후 삭제 하도록 처리4. 프로그램의 실행 시간을 일정시간 간격으로 실행하다록 처리 매번 프로그램을 만들어주는게 간단한것도 있지만 막상 작업을 하다 보면은 손이 많이 가야 하는것이 있습니다. 이번 프로그램도 보기에는 간단한데, 내부적으로 돌아가야 하는 부분은 신경써야 할 곳이 한두곳이 아닙니다. Web API를 만들어서 전송하면은 WebServer에서 담당하면 되지만, 이건 IP가 지정되어서 MySQL 서버가 열러 있어서 해당 프로그램에서 자체적으로 MSSQL, MySQL를 동시에 처리해서 귀찮은 부분이 많았습니다. 일단 일정시간마다 읽어서 모든 Data를 전송하지만, 중복이 되지 않도록 제가 가능한 부분에서 최대한 노력을 하였으며, 현재 한달가 가동현황에서 보면은 문제는 없어 보입니다. 아울러 MSSQL의 데이터를 일정 기간만 유지하도록 Query 문을 사입해서 지우기도 하지 사용하시는분이 이제 편하다는 입장이며 저도 기분이 좋고 사용하시는 분도 좋으니 모든게 잘 풀린 케이스 인듯 합니다.
Read More
Local SQLite의 Table의 내용을 WebServer로 전송

Local SQLite의 Table의 내용을 WebServer로 전송

CSharp, 프로그램
필요사항1. 주기적으로 WebServer로 전송해야함.(단 WebServer에 중복은 방지)2. 각 컴퓨터마다 SQLite 경로가 다르기 때문에 설정이 가능하도록함.3. 각 컴퓨터 구분을 할 수 있도록 함.4. 각 컴퓨터에 일정시간적으로 DB를 읽을수 있도록함.5. 각 컴퓨터 SQLite DB가 Lock이 걸리니 복사해서 사용하도록함. 이상이 5가지 사항을 가지고 만든것이며, 약 일주일 정도 지났지만 문제없이 사용을 하고 있다고 합니다. 생각보다 적은 양의 코딩을 해서 만들었지만 알차게 만든듯 합니다.
Read More
JQuery Autocompliet 기능에 AJax 기능 추가하기

JQuery Autocompliet 기능에 AJax 기능 추가하기

JavaScript
jquery 를 제작할 경우에 자동완성처럼 편한기능이 있다. InputBox에 단어를 입력하면은 자동적으로 처리를 해주는 부분인데 DB와 연동하다 보면은 보여지는 Label의 문자와 실제 입력되어야 하는 Value가 다를 경우에 처리하는 기능까지 함게 붙여서 만들게 된 기능입니다. 위 그림 처럼 InputBox에 단어 한자만 입력하면은 Ajax를 이용해서 DB상에서 이미 조회후에 해당 결과값을 가지고 Label에 표시되는 기능을 최대한 표현하고 실제 DB에 입력될 Input은 Value에 지정해서 저장하면은 사용자도 보기 편하고, 관리자 입장에서도 편할것이라고 생각되어서 조합해서 사용하게된 기능입니다. $('#ID').autocomplete({ source: function(request, response){ // searchObjStandard = $('#headObjStandard').val(); // $.ajax({ type: "GET", url: "/worksorder/worksorderFormSearchHead", data: {objStandard: searchObjStandard}, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { if( data.length == 0 ) { response(data); } else { response( $.map( data, function( item ) { return { label: item.objNumber + ' | ' + item.objName + ' | ' + item.objStandard, value:…
Read More
C# SQLite 설치해서 사용하기

C# SQLite 설치해서 사용하기

Database
메뉴 -> 도구 -> Nuget패키지 관리자 > 패키지 관리자 콘솔 "install -Package System.Data.SQLite SQLite 기능을 쓰기 위해서 추가적으로 설치해야 되는 사항입니다. 해당 사항을 설치하고 나면서 빌드할 경우에 x86, x64 폴더가 포함되며, 해당 기능도 같이 있어 다른 컴퓨터에서 사용할 수 있을 것이라고 사료 됩니다.
Read More

Dnsmasq

Linux
#apt install resolvconf이것을 설정하면은 좀 더 세팅에 편해집니다. #vi /etc/resolvconf/resolv.conf.d/tail # IPv4 nameserversnameserver 1.1.1.1nameserver 8.8.8.8nameserver 1.0.0.1nameserver 8.8.4.4 # IPv6 nameserverosnameserver 2606:4700:4700::1111nameserver 2001:4860:4860::8888nameserver 2606:4700:4700::1001nameserver 2001:4860:4860::8844 #sudo service resolvconf restart #apt-get install dnsmasq # cat /etc/hosts # cat /etc/resolv.confnameserver 172.31.0.2search ap-northeast-2.compute.internal # Google IPv4 nameserversnameserver 8.8.8.8nameserver 8.8.4.4 # Google IPv6 nameserversnameserver 2001:4860:4860::8888nameserver 2001:4860:4860::8844
Read More

Web Script 백업

WWW
<script> $(document).ready(function() { var selectCustIdx; // 거래처 선택값 var selectUnitStandard; var RowDisplayVal; var rawUnitQuantity = new Array(); var rawCustIdx = new Array(); var rawObjNumber = new Array(); var rawObjstandard = new Array(); // 계산 함수 호출 checkCal(); // 거래처 선택 $("#rowCustIdx").change(function() { selectCustIdx = $(this).val(); // SelectUnitStandardReload(); }); // 규격 선택 $("#rowUnitStandard").change(function() { selectUnitStandard = $(this).val(); // RowDisplayCheck(); }); // 거래처 선택시 규격 제어하기 function SelectUnitStandardReload() { var custUnitStandardData = new Array(); var option; // if( typeof selectCustIdx == "undefined") { selectCustIdx = "0"; }; if( typeof selectUnitStandard == "undefined") { selectUnitStandard = "0"; }; // <?php foreach( $custUnitStandardList as $row) { echo 'custUnitStandardData.push("'.$row.'"); '.chr(10); }; ?> // 초기화 추가 $("#rowUnitStandard option").remove(); // if( selectCustIdx == "0" && selectUnitStandard == "0") { option = $("<option value=\"0\" selected=\"selected\" style=\"font-weight:bold;color:#C00000\">규격 :: 전체</option>");…
Read More

워드프레스 자동 업그레이드 중 Briefly unavailable for scheduled maintenance. Check back in a minute. 메세지가 나올 경우

WWW
자동업그레이드 도중 웹사이트의 접속이 끊길경우 "예약되어 있는 유지보수를 위해 잠시 사용할 수 없습니다. 잠시 후에 다시 확인하세요. (Briefly unavailable for scheduled maintenance. Check back in a minute.)" 메세지가 나올 경우에 재 접속을 하여도 관리자 페이지로 들어갈수 없습니다. 이럴경우에 웹으로는 더이상 어떠한 조치를 취할수 없습니다. 해당 문제를 해결하기 위해서 FTP로 워드프로세스가 설치된 디렉토리에 방문하여서 ".maintenance" 파일을 삭제후 다시 접속을 하면은 정상적으로 접속 할 수 있습니다. 저도 이번에 처음 겪어보는 일이라서 검색을 해 볼 생각도 하지 않고, 몇시간을 그냥 방치해두었더니 결국은 접속을 할 수 없어서 검색을 해보고 삭제 하고 나니 정상적으로 접속이되어서 블로그를 관리 할 수 있게 되었습니다.
Read More
SFCA는 포기합니다 ㅠㅠ

SFCA는 포기합니다 ㅠㅠ

ACTS/SFCA
현재 운영하는 서비스중 ACTS, SFCA가 있습니다. 이 2가지 모두 한곳을 바라보고 사용을 하고 있지만 앞으로 SFCA의 운영을 점진적으로 포기할 생각입니다. ACTS에서 사용하지 못하는 기능을 SFCA에 넣으려고 처음에 계획을 가지고 만든것이지만 사용상에 복잡함만 더하고 간결하지 못해서 처음 의도된 개발과 전혀 다른 길을 계속 가게 될것 같아서 사용자가 적은 시점에서 모두 포기할 생각입니다. 그와 함께 현재 ACTS를 5 버전대에서 6버전대로 이관을 하고 새롭게 개발을 하지만 SFCA에 녹아든 형태와 기존 ACTS의 간결함을 모두 가지도록 현재 개발중에 있습니다. 물론 ACTS에 맞춰서 새롭게 기능을 추가적으로 개발을 하지만, 속도, 간결. 직관성을 생각해서 개발을 하게 될것이며, 기존에 문제가되는 부분들을 최대한 보완하는 방법으로 가져가 생각입니다. 하지만 항상 개발 소식만 전하고 정말 하는지 말을 하실수 있지만, ACTS5 와 ACTS6은 서로 호환을 하기 때문에 제 나름대로 개발과 테스트 과정을 거치고 있습니다. 정말 기능을 하나하나 쪼개서 만들기고 테스트 하고 검토하고 다시…
Read More

PHP 7.2로 업그레이드

일상
현재 사용하고 있는 서버와 별도의 서비스용 서버등 제 관리하에 있는 모든 서버를 시간을 들려서 모두 업그레이드 하였습니다. 업그레이드 내용을 블로그에 남기는 이유는 나중에 제가 업그레이드 시점을 알기 위한 용도 이기도 하지만, 제 서버에서 작업하시는 몇 안되는분들이 놀라실까봐 적습니다. 이 글을 작성하는 시점에서 다른 사람이 이용하는 서버의 작업을 모두 마쳤으며, 현재는 문제가 없는것으로 보여집니다. 하지만, 문제가 생길경우에는 평소에 소통하는 채널을 통해서 알려주시면은 조치해드리겠습니다. 일단 업그레이드 작업을 하고 나서 사용해본 소감은 이전 버전보다 확실히 빠르다는 느낌이 있습니다. 아직 정확한 테스트를 해 보지 않았지만 눈에 보이는 시점에서 체감적으로 빠르면 이전보다 개미 눈꼽만큼이라도 빨라지는것이라고 판단이 되기에 아주 좋은 상태입니다. 다수의 서버를 관리하다 보니 업그레이드 작업을 하나하나 확인하고 하는 작업은 힘들지만 작업을 마치고 나서 결과가 눈에 보일정도라서 기분은 정말 좋은 편입니다. 단순히 서버상의 PHP 버전 업그레이드를 알리는 두서 없는 글입니다.
Read More