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

ACTS 서버 점검 완료

ACTS/SFCA
안녕하세요? 정말 ACTS관련에 대해서 오랜만에 글을 작성합니다. 제가 사회생활이 바쁘다는 핑개로 ACTS 서버 점검을 차일 피일 미루던것을 점검을 하였습니다. 이번 점검에서는 ACTS 서버내에서 데이터를 가공하기 위해서 돌던 프로그램의 로직도 모두 직접 점검하고, 실행 시점이나 실행 방법등에 대해서 다소 수정을 가하는 방식으로 하였습니다. 기존의 DB에 대해서도 불필요한 형식을 맞도록 수정하고, 검색에 용이하도록 DB상에서 손을 많이 봤습니다. 이번 점검으로 ACTS 프로그램 접속 시간이 많이 단축되고 반응속도가 예전만큼 나올것이라고 생각을 합니다. 이번 종합 점검으로 인해서 서버의 자원이 상당히 여유로워 지고 많이 남기 때문에 다른 일을 좀 더 할 수 있는 여유공간이 생김으로 인해서 좀 더 양질의 데이터를 제공할 수 있을 것이라고 생각을 합니다.
Read More

Jquery 모음

WWW
INPUT BOX에 사용자가 입력할 경우에 keyup Event를 통해서 실시간으로 계산해서 다른 InputBox에 값 넣어주기 // $(document).on('propertychange change keyup paste input' , "input[name='이름']", function(){ //필요한값 획득 var objStandardS0 = $(this).parents("tr").find('input[name="이름[]"]').val(); var objStandardS1 = $(this).parents("tr").find('input[name="이름"]').val(); //계산 var objStandard = objStandardS0 - objStandardS1 / 2; // $(this).parents("tr").find('input[name="이름"]').val(objStandardS0 +"*"+objStandardS1+"*"+objStandard.toFixed(1)); // 소수점 1자리까지 표현 $(this).parents("tr").find('input[name="이름"]').val(objStandard.toFixed(1)); }); 모달창을 닫기 // 모달창 닫기 event.preventDefault(); $("#modal2").hide(); $('.jquery-modal').hide(); 동적으로 Table에 TR 행을 추가하기 var TrLength = $('#insertTbl tbody tr').length; TrLength = TrLength + 1; html += "<tr>"; html += "<td>번호</td>"; html += "</tr>"; $('#insertTbl > tbody').append(html); // selectbox 의 값 선택하기 $('#ID이름' + TrLength).val(objUnit).prop("selected", true); 동적 추가한 TR을 삭제하고 순서에 대한 번호를 새롭게 다시 표시해주기 $(this).parent().parent().remove(); // 해당행 삭제 var rowNum = 1; $('#insertTbl tbody tr').each(function() { $('#rowNum', this).text(rowNum); rowNum++; }); Button 을 클릭시에 모달창을 띄우기 // 모달창 $(document).on("click","#qualityStandards",function(){…
Read More

2020년 Happy New Year?

일반
2020년이 되었습니다. 일단 방문해 주시는 여러분께 감사드립니다. 방문해 주시는분이 있기에 블로그가 존재하는 이유이기도 하지 않을까 싶습니다. 저 혼자서도 블로그에 글을 남기지만 방문해주시는분이 있어서 더욱 알찬 블로그로 발전해 나갈수 있는것이라고 생각을 합니다. 올 한해는 제게 있어서 도전과 전환점이 되는 한해가 될 것이라고 생각을 합니다. 지금도 유지하고 있는 ACTS가 이제 년 단위로 말할 정도로 되었으며 현재도 계속 서비스를 유지 할려고 생각을 하고 있기에 이 부분이 저의 첫 도전이 될것이라는 생각입니다. ACTS는 제게 있어서 이제 소중한 하나의 작품이라고 말을 할 수 있습니다. 저는 관심이 줄고 있지만 이 서비스를 유지 하기 위해서 하는 일이 제게 있어서 배운 지식을 활용하고 좀 더 좋은 서비스 나은 서비스를 만들기 위한 밑거름이 되고 있습니다. 제게 있어서 지금까지 개인으로서 이만큼 큰 서비스를 운영한 경험이 없습니다. 최소한의 자원으로 현재 최대의 효율을 도출하기 위해서 항상 고민하고 공부를 하는 저의 원동력이자 계기가…
Read More