ACTS 5.23

ACTS/SFCA
■ 프로그램 변경 내역 안내 Microsoft Edge 브라우저가 바로가기 실행이 되지 않는 문제 수정 ACTS 5.23 다운로드 링크는 더 이상 제공 되지 않습니다. 이후 패치가 새롭게 나올경우 제공됨을 알려드립니다. ■ 프로그램 안내사항 Visual Studio 2019로 컴파일되었기에 Windows XP에 대한 지원은 불가능합니다.다운로드 후에 압축 해제시에 안티바이러스(백신)에 의해 파일이 없을 수 있습니다. 안티바이러스(백신)에서 압축해제 시 파일을 삭제하는 것으로 알고 있습니다. 해당 문제는 사용자의 컴퓨터상의 압축 프로그램 또는 안티바이러스(백신)의 문제입니다. ■ 기타 문의 사항은 https://blog.truds.kr 에 남겨주시기 바랍니다.이전 버전은 다운로드를 제공하고 있지 않음을 알려드립니다.다운로드 제공은 일정 시간 이후에 제공하지 않음을 알려드립니다. 2020.12.28 다운로드 링크 제거
Read More

[C#] 파일 관리 Application

CSharp
회사에서 급하게 진행된 Application 입니다. Web서비스중에서 첨부파일에 대해서만 Application에서 관리를 하기 위해서 만들어진것입니다. web의 기능과 동일하게 작동을 해야 하는 부분에서 DB 분석을 해서 Web과 동일하게 작동을 하도록 만든점이 상당한 노력을 기울였습니다. 그외 부분은 파일 전송과 파일감시 기능은 Application의 고유 기능이라서 그다지 힘들었다기보다는 새로운 기술을 익히는 과정이라서 즐겁기까지 하였습니다. 해당 Application은 웹에 올린 파일을 Local에 다운받고 해당 파일의 변경 여부를 하여서 다시 Web Server에 올려주는 과정을 합니다. Up,Down 과정에서는 Web의 제약사항인 파일 사이즈의 문제를 해결 하기 위해서 SFTP 기능을 이용해서 파일을 Up,Down하도록 해서 대용량 파일이라도 Server에 올라가도록 하는 기능을 구현을 하였습니다. 또한, 압축된 파일을 자동적으로 압축해제 하고 파일을 볼 수 있도록 하면 그 파일중 1개라도 변경이되면은 다시 압축을 하는 과정도 거치게 되어 있어서 조금 복잡하게 변한 부분도 없지 않아 있지만, 사용자분들이 일단은 괜찮다는 평이 좋았습니다.
Read More

[Ubuntu] SWAP 파일 생성 삭제

Linux
스왑 파일/파티션 존재 여부 확인스왑 파일 생성 전에 스왑 파일이나 스왑 파티션이 존재하는지 먼저 확인합니다. sudo free -m 그리고 아래의 명령어를 입력해서 swap 관련한 내용이 보이지 않으면 스왑이 설정되지 않은 것입니다. sudo swapon -s 만약 두 명령어 모두 swap 관련이 보이지 않으면 아래 명령어로 생성합니다. 스왑 파일(swapfile) 생성먼저 스왑 용도로 사용할 파일을 swapfile이라는 이름으로 생성합니다. sudo fallocate -l 2G /swapfile 명령어의 2G는 2GB를 의미하며 원하는 용량을 입력하면 됩니다.루트 디렉터리에 swapfile 파일이 생성됩니다. swapfile 다음으로 생성된 파일의 권한을 수정합니다. sudo chmod 600 /swapfile sudo chmod 600 /swapfile 이제 해당 파일이 스왑으로 동작하도록 만들어줍니다. sudo mkswap /swapfile 아래와 같은 내용이 표시됩니다. mkswap 마지막으로 아래 명령어를 입력해서 스왑을 활성화시킵니다. sudo swapon /swapfile sudo swapon /swapfile 이것으로 스왑이 생성되며 재부팅 이후에도 계속 사용하려면 /etc/fstab 파일을 수정합니다. sudo vi /etc/fstab sudo vi /etc/fstab 파일 하단에…
Read More

MySQL 엑셀로 산출물 만들기

CSharp, Database
문서를 작성해야 하는 일이 항상 있습니다. 그중에서 가장 귀찮은 일이 MySQL의 DB의 형식이나 현재 어떤 스키마를 가지고 있는지를 문서를 만드는 일이 정말 귀찮습니다. 물론 처음 문서를 작성하고 나서 큰 변화가 없다면은 다행이지만 항상 똑같은 상태라고 할 수가 없다 보니 매번 문서를 만들어야 하는 일이 정말 귀찮기만 할뿐입니다. 그렇다고 매번 Database에 들어가서 명령어를 실행하고 만드는것도 일입니다. 고정된 형태면 좋지만 다른 사람에게 공유하기 위해서로 문서로 만들어야 하는 일이 발생을 하게 되면은 또 다시 세팅하고 실행하고 결과값을 저장하는 일이 반복되는 일을 줄이는것이 가장 큰 목표였습니다. C#으로 만들다보니 엑셀 파일 만드는것이 가장 큰 일이였습니다. 내가 설치된 컴퓨터의 환경에 맞추면은 가장 좋지만은 프로그램이라 함은 어느정도 범용성을 가져야 하기에 엑셀로 출력하는 방식에서 많은 고민을 하였습니다. 물론 그전에 MySQL에서 정보를 빼 내는 로직 자체는 이미 완성되어 있어서 그래도 실행을 하면 되지만 마무리가 되지 않아서 한참을 헤메이다가 우연한…
Read More

PHP 503에러 의도적으로 내기

PHP
<?php header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 300');//300 seconds ?> PHP를 하면서 상태코드를 돌려줘야 할때가 있습니다. 그럴경우 파일은 있지만 접근권한을 제한하기 위한 코드가 필요해서 간단히 작성해 본것입니다. 503 코드로 돌려주기 때문에 서버의 기능이 잘못되었다고 판단을 하도록 하지만, 실제 이 파일은 그냥 모든것을 503으로 해서 접근을 하지 않았으면 해서 만든것입니다. 정상적인 코드로 사용하는것이 아니라서 잘못된것이지만, 무작위로 파일을 접속하는 봇에게 착각을 불러 일으켜서 이 파일은 정상적인 기능을 하지만 지금은 에러가 있다고 판단하게 해서 그냥 한곳으로 모을려고 만든 파일입니다. 그래서 아마 다른 형식으로 가져도 되지만, 이 코드를 사용하게 된것에 대해서 정확한 용도는 아니라는 점을 알려드립니다.
Read More

Synology에서 git pull 후 배포만 만들기

NAS
#!/bin/bash #날짜 date=$(date '+%Y%m%d') # 디렉토리 비우기 /usr/bin/rm -f /volume1/Distribute/table.tar.gz /usr/bin/rm -rf /volume1/Distribute/table/* # 디렉토리 복사 /usr/bin/cp -r /volume2/development/table/* /volume1/Distribute/table/ # Database sql dump /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump -uUSER -pPASSWORD table > /volume1/Distribute/table/table.sql # 불필요 디렉토기 삭제 /usr/bin/rm -rf "/volume1/Distribute/table/_" /usr/bin/rm -rf "/volume1/Distribute/table/프로젝트" # 디렉토리 생성 /usr/bin/mkdir /volume1/Distribute/table/upload /usr/bin/chown user:users /volume1/Distribute/table/* /usr/bin/chmod 777 /volume1/Distribute/table/upload # 파일 압축 /usr/bin/tar -zcvf /volume1/Distribute/table.tar.gz /volume1/Distribute/table/*
Read More

Synology에서 쉘로 SVN update하기

NAS
쉘스크립트를 만드는 이유는 자동화를하기 위해서 입니다. 커멘트 모드에서 매번 실행을 하다 보면은 조금은 잊어 버릴때가많아서 스케쥴러에 걸어 놓으면은 상당히 편합니다. #!/bin/bash /usr/bin/svn checkout svn://URL/프로젝트명 /volume2/development/받을 경로/ 실 생활에서 사용하는것에 감춰야 할 부분을 감추고 정말 간단한 정보만을 표현을 한것입니다. 시놀로지 NAS에서 작업스케쥴을 걸면은 잊어 먹지 않고 바로 공개적으로 사용할수 있는 Public 웹이 만들어지기때문에 굳이 NAS에 들어가지 않아도 되는 이점이 존재 하는것입니다. 스케쥴러 캡쳐 화면 위에 화면 처럼 조금 빠르지만은 개발을 할 시간에 걸어 놓으면은 별도로 NAS에서 확인하지 않아도 바로 적용이 되고, 늦어도 커밋후 10분 이내에 바로 NAS Web에 적용이 되지 작업을 줄이는 일입니다. 처음에 이렇게 사용하게 된 이유가 제가 담당을 해서 매번 업데이트를 실행해야 되어서 퇴근전이나 큰 변경사항이 있다면은 매번 하다 보니 조금은 귀찮은 점을 해소하기 위해서 작업을 하게 된 것입니다. 프로그램을 만드는 사람이라면은 응당 자기가 귀찮은 일을 프로그램에게 맡겨서 처리할수…
Read More

업무기록 공유 및 기록

CSharp
팀원간에 메신저로만 하다보니 이후에 정리하기기 귀찮아서 져서 만들게 된것입니다. 보고를 위한 일이 되어 버렸지만 팀원간에 서로간에 무슨일을 하고 있는지 투명하게 공개를 하고 하루 하루 일지를 남기듯이 하도록 하였습니다. 일단 별다른 기능은 없으며 일일간 하여서 서로 공유 할수 있으면 ID, PASSWORD 설정으로 본인외에는 글을 수정 할 수 없도록 막아 놓은것입니다. 정말 간단하면서 서로 공유도 하고 팀원간에 서로간의 내용을 확인할수 있어서 좋다는 생각입니다. 물론 이것을 정리해야 되는 제 입장에서는 여기서 보고서 양식으로 출력하는 기능을 더 붙여야 하겠지만은 지금은 서로간에 공유 할 수 있도록 한것만으로 작지만 단순적인 일을 줄이게 되었습니다. 개발팀이 새롭게 꾸려지다 보니 이런 일이 현재는 정립이 되지 않았고 윗선에는 협업툴에 대해서 아직은 회의적이라서 만들게 된것입니다. 개인 개발자다보니 협업툴이 좋은것이 많지만 입맛에 맞는것도 없고 해서 이렇게 만들게 된것입니다. ps. 참고로 공개는 하지 않습니다.
Read More

Synology 쉘스크립트 백업

NAS
#!/bin/bash #날짜 date=$(date '+%Y%m%d%H%M') NowDate=`date` # 기존 파일 삭제 /usr/bin/rm -f /volume1/web/backup/data/${date}.sql /usr/bin/rm -f /volume1/web/backup/data/${date}.tar.gz # 압축 backup 디렉토리, phpMyAdmin 디렉토리 제외 /usr/bin/tar -zcvf /volume1/web/backup/data/${date}.tar.gz /volume1/web/* --exclude /volume1/web/backup --exclude /volume1/web/phpMyAdmin # 압축파일 일정시간 지난후 삭제 /usr/bin/find /volume1/web/backup/data/ -name '*.tar.gz' -mtime 30 | xargs /usr/bin/rm -f #MySQL DB sql backup /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump -u사용자 -p패스워드 데이터베이스 > /volume1/web/backup/data/${date}.sql #일정기간 경과 파일 삭제 /usr/bin/find /volume1/web/backup/data/ -name '*.sql' -mtime 30 | xargs /usr/bin/rm -f
Read More
팟플레어 광고 차단

팟플레어 광고 차단

Windows
설치시 언어를 한국어가 아닌 영문으로 하고 하는 방법이라고 합니다. 화면 캡쳐 위에 화면은 설치후에 언어를 변경하는 방식입니다. https://dssbblog.com/카카오-팟플레이어-광고제거-언어-변경-으로-차단-해/ 2020년 11월 1일 현재 제가 무엇을 잘못하였는지 위 방법으로는 현재 제대로 작동하지 않고 있어서 방법을 찾는중입니다. 뭔가 복잡한 작업을 하지 않고 팟플레이어 광고를 제거할 방법이 없는가 고민입니다.
Read More

Apache SSL 등급 확인

Linux, WWW
제가 운영하는 웹서버의 SSL 등급기 갑자기 궁금해져서 한번 테스트를 해보았습니다. 테스트에 사용된 사이트는 ssllabs.com 에 기능을 이용하였습니다. 아래에 링크를 첨부해 놓았습니다. https://www.ssllabs.com/ssltest/analyze.htm 결과는 좋게 A 등급이 나왔습니다. 서버에 사용하는 모든 버전이 업데이트 되면서 결과가 좋게 나온다고 생각은 하였지만 생각하는 부분과 결과를 눈으로 직접 보는것은 다른듯 합니다. 결과화면에 대한 캡쳐본 가끔식은 트렌드에 따라서 움직여야 하는 일이 있습니다. 특히 보안에 관련된 사항은 좀 더 많은 부분을 신경쓰고 현재 진형으로 가는 부분을 잘 적용하는것이 좋을듯 합니다. 위 결과 화면 아래에 더 많은 정보가 있지만 캡쳐를 할 이유가 없어서 위에 가장 중요한 화면만 캡쳐만 한것입니다.
Read More

리눅스 디스크 사용량 확인

Linux
리눅스에서 디스크 사용량에 대해서 확인하는 명령어 입니다. 간단하게 'df'로 해서 처리를 할 수 있지만 다른 부분에 대해서도 확인 가능한 명령어입니다. df df -P 전체용량 # KB단위 df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum " KB" }' # GB 단위 df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum/1024/1024 " GB" }' 전체 사용량 # KB 단위 df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum " KB" }' # GB 단위 df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum/1024/1024 " GB" }' 전체 남은 용량 # KB단위 df -P | grep -v ^Filesystem | awk '{sum += $4} END { print sum "…
Read More

서버 운영체제 버전업!!!

Linux
제가 사용하는 서버의 OS의 운영체제가 버전이 달라졌습니다. 그래서 기존에 사용하던 내용을 새로운 서버에 모두 이전한다고 3~4시간을 투자하였습니다. 물론 계획을 잡기 위해서까지 시간을 한다면은 꽤 많은 시간이 소비되었지만요.... 이전은 계획대로 순조롭게 진행이 되었고, 서버 자체의 접속을 차단한경우는 약 2시간 정도 걸렸는데, 정작 중요한 블로그에 인증서 갱신에 걸려서 강제적으로 1시간을 기다려야 하는 상황이 다가와 버렸습니다. 이러한 문제로 인해서 SSL인증서가 적용되지 않도록 소스 자체를 수정하도록 하고 있습니다. 그래도 블로그 접속이 정상적으로 되어야 한다는 생각이 나서 말이죠 일단 점심 시간이 다가와서 점심을 먹고오면은 1시간이 지나니 다시 시도해 보고 글을 남기도록 하겠습니다. ※ 추가내용 다행이 오래 기다리지 않고 SSL 인증서를 적용하였습니다. 소스 및 DB상의 SSL 인증서를 제거한 부분을 다시 살린다고 지금까지 한 과정을 꺼꾸로 진행중에 있습니다. OS가 바뀐것뿐인데 서버가 상당히 쾌적해졌습니다. 물론 새롭게 설치한 서버에 별 다른 작업을 하지 않아서 쾌적한것도 있을것이라고 생각이 들지만 blog를…
Read More
Local에 운영하는 DNS Server

Local에 운영하는 DNS Server

Windows
개인 컴퓨터에서 나만의 도메인을 만들어서 비공개로 웹브라우저로 이용을 하는데, 매번 hosts 파일을 수정하는것이 번거로워서 만들게 된것입니다. 그렇다고 해서 특별한 기능을 넣거나 하지 않으면서 hosts 파일에 대한 수정을 최대한 줄여보고자 하는 형태로 개발이 된것입니다. 아래의 화면은 프로그램 실행 화면입니다. 프로그램 자제적으로 SQLite DB를 사용해서 자제적으로 DB를 이용해서 항상 그래도 운영이 되도록 만든것입니다. hosts 파일 수정은 원래 권장되는 방법도 아니고, 백신 업체들도 hosts 파일에 대한 변조를 체크하는 업체들도 있어서 가능하면은 사용하지 않는것이 좋은것입니다. 프로그램 실행화면 현재 test.test.com 이라는 도메인을 한번 만들어서 넣어본것입니다. 계속 추가하고 변경하고 삭제를 할 수 있도록 만든다고 하였지만 문제점도 있지만 쓸만은 합니다. 윈도우에서 CMD 를 통해서 nslookup 를 통해서 목록에 추가한 도메인을 조회한 모습니다. nslookup 으로 확인한 화면 프로그램 초기 버전 파일을 다운로드 할 수 있습니다. SimpleLocalDnsServer다운로드 현재 프로그램 도중에 DNS 정보가 정상적으로 갱신이 되지 않기도 합니다. 단기간에 만들다보니…
Read More
단일 테이블에서 실시간 가동률 뽑기

단일 테이블에서 실시간 가동률 뽑기

Database, PHP
일단 하기는 하였는데, 말이 안된다고 생각함! 문제가 뭐냐 하면은 모니터링 데이터를 제가 가공하는것이 아니라, 누군가 가동해 놓은 데이터를 가지고 실시간으로 전달해주는 행단위로 입력된것으로 데이터를 뽑습니다. 위와 같은 화면을 뽑기 위해서 처리해야 될 일은 많지만 이미 내가 만들지 않았고, 있는 정보를 가지고 처리를 해야 합니다. 위와 같은 형식으로 행단위로 엄청나게 쌓이기 시작합니다. 매일 몇초 단위로 데이터가 계속 들어오는 상태입니다. 1개의 Table를 가지고 데이터를 뽑는게 이렇게 힘들것이라고 이번에 처음 느꼈습니다.※ 가능하면 2번 다시 하고 싶지 않음 이제 이름별로 해서 가동률을 한번 뽑아보도록 하겠습니다. MySQL에서 다음의 쿼리문들 사용하였습니다. 위의 화면에 필요한 부분이 아래의 Query 입니다. 보기보다 쉽죠? 만들어 내는대는 하루지만 정리해 놓고 보면은 쉽게 보여집니다. // 이름별 가동율 SELECT A.MACHINE_NAME, CAST(IFNULL(B.MACHINE_PCNT, 0) AS UNSIGNED ) AS MACHINE_PRODUCT_CNT, MIN(C.MACHINE_DATETIME_MIN) AS MACHINE_TIME_MIN, MAX(C.MACHINE_DATETIME_MAX) AS MACHINE_TIME_MAX, CAST(IFNULL(C.USE_TIME, '0') AS UNSIGNED ) AS USE_TIME, CAST(IFNULL(E.USE_TIME_STOP, '0') AS…
Read More