오랜만에 테마 변경….

일상
오랜만에 테마를 변경하였습니다. 평소에도 테마를 관심을 두지 않지만은 기분상 한번 변경해 볼 시기인것 같아서 변경을 해 보았습니다. 테마를 변경할 기술을 가지고 있다고 생각하지만 절~대적으로 기술을 사용하지 않는 형편입니다.  원래 자기것은 잘 하지 않게 되더라고요...... 테마를 변경하면서 서버를 한번 정리를 하였습니다. 그동안 미뤄두었던 일들이 조금 있어서 살짝 정리를 하는겸을 해서 처리를 하여서 현재는 다시 제 기준으로 쾌적하게 돌아가는 편입니다.
Read More

우분트 자동시작서비스 등록 실행하기

Linux
해당 기록은 제 개인적으로 기록을 해 놓은 부분입니다. 누군가에게 도움이 될수도 있지만 아마 전혀 쓸모가 없을수도 있습니다. 그렇기에 개인 기록이라는 점을 먼저 밝힙니다. crontab으로 실행하는것에 한개가 있습니다. 재부팅 되면서 실행을 해도 되고, 일정 시간을 체크해서 해도 되지만, 항상 가동해야 되는 부분이 있어서 만들게 된 부분입니다. cp /home/ubuntu/service/serviceCrawer.service /etc/systemd/systemd --------------- [Unit] Description=ServiceCrawer-1 After=network.target [Service] ExecStart=/usr/bin/php /home/ubuntu/service/service.file start ExecStop=/bin/sh /home/ubuntu/service/stop.sh Restart=on-failure [Install] WantedBy=multi-user.target ------------------ sudo chmod 644 serviceCrawer.service sudo systemctl daemon-reload sudo systemctl enable serviceCrawer.service sudo systemctl start serviceCrawer.service sudo systemctl disable serviceCrawer.service 일단 네트워크가 문제가 생기면은 재시작을 할 것이고 아니면은 항시 기동이 되도록 프로그램을 만들었습니다. 통신을 하는 부분이라서 네트워크가 죽으면 살아있어도 쓸모가 없습니다. 항상 정보를 수집하는 부분에서 일정시간마다 아닌, 실시간으로 통신을 해서 정보를 획득하기에 끊기지 않는다는것이 제일 관점있고, 그 이후 데이터를 잘 기록해야되는 부분입니다. 위에 코드는 그냥 서비스에 등록하는 부분만 있습니다.…
Read More

MySQL Grant 권한 옵션 설명

Database
MySQL User 추가를 할 경우 보통 Grant 옵션을 주지 않는데, 개발서버에서 필요한 경우가 있어서 간단히 한번 정리를 한것입니다. CREATEdatabases,tables, indexs데이터베이스, 테이블 생성DROPdatabases,tables,views데이터베이스, 테이블 삭제GRANT OPTIONdatabases,tables,stored routines사용자들의 권한을 부여하거나 제거LOCK TABLESdatabases테이블 잠그기ALTERtables테이블의 구조를 변경DELETEtables테이블의 행을 삭제INDEXtables인덱스를 생성하거나 삭제INSERTtables,columns행추가SELECTtables,columns행조회UPDATEtables,columns행변경CREATE TEMPORART TABLEStables임시테이블생성CREATE VIEWviews뷰의 생성SHOW VIEWviewsSHOW CREATE VIEWALTER ROUTINEstored routines프로시저 함수의 변경 삭제CREATE ROUTINEstored routines프로시저 함수의 생성 그다지 잘 주지 않는 옵션인데 Root 권한을 주기에는 뭔가 애매모호해서 필요한 부분만 허용을 하고 나머지는 주지 않을 생각이라서 현재 몇가기중 View 관련만 허용을 해주고 하지 않은 상태입니다.
Read More

C# 메모리 강제 회수

CSharp
GC.Collect()를 사용하였지만 정말 획기적으로 줄지 않아서 사용하게 되는것입니다. using System.Runtime.InteropServices; // [DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)] // private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize); /// <summary> /// 강제 메모리 회수 /// </summary> public static void FlushMemory() { GC.Collect(); GC.WaitForPendingFinalizers(); if (Environment.OSVersion.Platform == PlatformID.Win32NT) { SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1); } } 남발을 할 경우 사용상에도 문제가 있고 하니, 적절히 필요한 부분에서 사용을 해야 될듯 싶습니다. 저 같은 경우은 datagridview를 몇개를 사용하다 보니 도저히 메모리 관리가 되지 않아서 지워준 경우가 됩니다. datagridview를 사용해서 표현은 하지만 Row 마다 수정은 막혀 있기도 하고 풀어 놓기도 해서 입니다. 수정 권한이 있는 사용자에게는 단순히 data를 보여주기만 하면 되어서 큰 문제가 없어서 메모리를 관리를 하는 용도로 사용을 합니다.
Read More

자작프로그램중 ACTS/SFCA 서비스 중단 안내

ACTS/SFCA, 일상
안녕하세요? 현재 자작프로그램이라는 카테고리에 있는 ACTS/SFCA는 8월부터 운영을 중단 합니다. 더 이상 운영을 유지해야 되는 이유를 찾지 못하였기때문에 해당 운영을 포기로 합니다. 근 1년간 특별한 기능에 대한 추가나 기능 개선을 하지 않았다는 이유중 하나 입니다. 또한, 제가 잘 방문하고 이용하는 커뮤니티에서 불미스러운일을 보게 되어서 운영에 대한 회의감이 들었으며, 제가 운영을 해야 하는 이유를 찾지 못하고 있습니다. 저도 개발자라고 명함을 한번 내밀어보기 위해서 노력을 하고 있지만 상황이 여의치 않기에 많은 부분을 포기하면서 운영의 이유를 찾지 못할것 같습니다. 현재 운영하는 ACTS, SFCA는 전체적으로 웹이라는 공간에 모두 공개된 정보이기에 누구나 수고를 들면은 취합할수 있는 정보이기에 굳이 개인 사비를 들여서 정보를 취합하는 형태의 프로그램을 운영해야 할지 고민에 고민을 거듭하였지만 운영에 대한 타당성을 찾지 못하였습니다. 그렇기에 현재 Blog내에 ACTS, SFCA 다운로드 기능은 모두 취소한 상태이고, 별도로 존재하는 메뉴는 모두 제거하여서 더이상 운영하지 않기로 결정하였습니다. 곧…
Read More

JQuery로 북마크 하도록 안내하기

JavaScript
기존에 사용하고 있던 호스팅을 변경하면서 북마크 및 사이트 이동을 위해서 필요해서 찾아보고 조합해서 만든것입니다. $(document).ready(function(){ var bookmarkTitle = '북마크타이틀'; var bookmarkUrl = "북마크할 주소"; if($(location).attr("host") == "도메인주소") { console.log('주소변경 안내!!'); if ('addToHomescreen' in window && addToHomescreen.isCompatible) { // Mobile browsers addToHomescreen({ autostart: false, startDelay: 0 }).show(true); } else if (/CriOS\//.test(navigator.userAgent)) { // Chrome for iOS alert('To add to Home Screen, launch this website in Safari, then tap the Share button and select "Add to Home Screen".'); } else if (window.sidebar && window.sidebar.addPanel) { // Firefox <=22 window.sidebar.addPanel(bookmarkTitle, bookmarkUrl, ''); } else if ((window.sidebar && /Firefox/i.test(navigator.userAgent) && !Object.fromEntries) || (window.opera && window.print)) { // Firefox 23-62 and Opera <=14 $(this).attr({ href: bookmarkUrl, title: bookmarkTitle, rel: 'sidebar' }).off(e); return true; } else if (window.external && ('AddFavorite' in window.external)) { // IE Favorites…
Read More

Port번호 사용 영역

Linux, NAS, Windows
0 ~ 1023 : well-known port번호 영역입니다. 이 영역의 port번호는 UNIX/LINUX에서 root 권한으로만 port를 열 수 있습니다. 예약영역이라고 보면 됩니다. 1024 ~ 49151번: 등록된 포트 (registered port) 이 영역은 주로 서버 소켓으로 사용하는 영역입니다. 49152 ~ 65535번 : 동적 포트(dynamic port) 이 영역은 자동으로 할당되는 영역입니다.
Read More

VisualStudio C# Debug창에 출력하기

CSharp
using System.Diagnostics; static class Program { static void Main() { Debug.WriteLine("메세지 내용"); } } 항상 사용을 할 수 있다는것은 알지만 기억이 나지 않아서 간단히 정리합니다. 평소에는 그냥 평하게 Console 창에 이용하기 때문에 사용할 수 있지만, 속성을 변경해야 하는 불편함도 있고 하여서 기록을 합니다. 이곳에 기록을 해 놓아도 기록여부를 기억하지 않으면 나중에 또 기억이 나지 않겠지만 일단 기록 입니다.
Read More
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 관리 프로그램

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

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

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

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로 전송

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