Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

총 110건의 글

자바스크립트 함수 매개변수 활용 - rest(…), arguments

자바스크립트 함수에서 매개변수를 효율적으로 활용하는 방법을 소개한다. 일반 매개변수(a, b, c)를 쓰는 기본 함수, 점 3개(rest) 문법으로 여러 인자를 배열처럼 받는 함수, 그리고 매개변수 선언 없이 arguments 객체만으로 인자에 접근하는 함수를 같은 예제로 비교하며 설명한다.

예를 들어서 아래와 같이 함수를 하나 만들고 매개변수를 a,b,c 로 주었다면 결과는 6을 토해냅니다.

<script>
function plusNumber(a, b, c) {
myNum = a + b + c;
return myNum;
}
document.write(plusNumber(1, 2, 3)); // 결과는 6
</script>

여기서 매개변수 a,b,c 는 점 3개를 찍음으로 배열과 같은 효과를 낼 수 있습니다.

<script>
function plusNumber(...n) {
myNum = n[0] + n[1] + n[2];
return myNum;
}
document.write(plusNumber(1, 2, 3)); // 결과는 6
</script>

한발 더 나가서 매개변수 자체를 쓰지 않고 아규먼츠만을 사용하는 함수를 만들 수 있습니다.

<script>
function plusNumber() {
myNum = arguments[0] +  arguments[1] +  arguments[2];
return myNum;
}
document.write(plusNumber(1, 2, 3)); // 결과는 6
</script>

그누보드 간단한 스팸 글 등록 차단하기

메인 페이지를 거치지 않고 글쓰기 페이지에 직접 접근해 스팸 글을 등록하는 것을 차단하는 방법이다. /extend/user.config.php에 세션 토큰을 검사하는 코드를 추가해, index.php를 방문했을 때만 세션을 발급하고 write_update.php나 write_comment_update.php에서 세션이 없으면 접근을 거부한다.

메인 페이지를 방문하지 않고 글작성을 시도하는 경우 차단하는 방법입니다.

  • /extend/user.config.php 에 다음의 코드를 추가해주면 됩니다.
    
    // 메인 페이지를 방문하지 않고 글작성을 시도하는 경우 차단
    $s_name = basename($_SERVER['SCRIPT_NAME']);

if ($s_name == 'index.php') {
set_session('ss_ns_token', true);
}

if ($s_name == 'write_update.php' || $s_name == 'write_comment_update.php') {
if (!get_session('ss_ns_token'))
die('허용되지 않은 접근입니다.');
}

crontab 사용법 - 실행·관리·권한 설정 정리

리눅스 crontab의 사용법을 정리한 글이다. crontab -e로 작업을 편집하고 -l로 내용을 확인하며, 분·시·일·월·요일 형식으로 아파치 재시작 같은 작업을 예약하는 예제를 소개한다. 마지막으로 /etc/cron.allow와 /etc/cron.deny 파일을 이용한 사용자별 crontab 권한 설정 규칙을 설명한다.

반응형

<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script>(adsbygoogle = window.adsbygoogle || []).push({}); </script>

  1. 실행 및 관리

crontab 파일 에디터

crontab -e

crontab 파일내용 확인

crontab -l

crontab 재시작

/etc/rc.d/init.d/crond restart

crontab 동작 확인

tail /var/log/cron

  1. 설정

30 /usr/local/apache/bin/apachectl restart
: 매시 30분마다 아파치를 재시작 합니다.

30 3 1 10 * /usr/local/apache/bin/apachectl restart
: 10월 1일 3시 30분에 아파치를 재시작 합니다.

45 /3 * 1-5 /usr/local/apache/bin/apachectl restart > dev/console
:월~금요일 매 3시간 45분에 아파치 재시작하고 결과는 콘솔에 출력합니다.

      • 2-4 * /usr/local/apache/bin/apachectl restart
        : 2월~4월까지 매시간 매분에 아파치 재시작을 합니다.
  1. 권한설정

crontab 사용권한 설정을 할 수 있습니다.
: /etc/cron.allow 파일에 허용할 사용자 추가
: /etc/cron.deny 파일에 허용하지 않을 사용자 추가

cron.allow를 먼저 참조합니다. cron.allow에 명시된 사용자는 cron job을 실행할 수 있습니다.
cron.allow에 없는 사용자는 cron.deny에도 없다면 cron job을 실행할 수 있습니다.
cron.allow, cron.deny 두 파일이 존재하지 않으면 슈퍼유저만 cron job을 실행할 수 있습니다. (기본설정)
cron.deny 파일이 존재하고 아무 내용 없이 비어 있다면, 모든 사용자가 cron job을 실행할 수 있습니다.

Windows Server 2016 KMS 인증 방법 (간단·빠른 활성화)

Windows Server 2016을 KMS 방식으로 빠르게 정품 인증하는 방법이다. 명령 프롬프트에서 slmgr /upk, slmgr.vbs /ipk 제품키, slmgr.vbs /skms KMS 서버, slmgr.vbs /ato 명령을 순서대로 실행하고, 데이터센터·표준·임베디드 에디션별 제품 키를 정리했다.

1.打开cmd控制台,按顺序输入以下命令,有报错不要管它。

slmgr /upk

slmgr.vbs /ipk CB7KF-BWN84-R7R2Y-793K2-8XDDG

slmgr.vbs /skms kms.lotro.cc

slmgr.vbs /ato

2.进入电脑属性激活服务器

Windows Server 2016 数据中心

CB7KF-BWN84-R7R2Y-793K2-8XDDG

Windows Server 2016 标准版

WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY

Windows Server 2016 嵌入式版

JCKRF-N37P4-C2D82-9YXRT-4M63B

PHP로 JPG 이미지를 WEBP 형식으로 변환하기 (imagick)

PHP의 imagick 확장을 이용해 JPG·PNG 이미지를 WEBP 형식으로 변환하는 방법이다. GitHub에서 제공하는 확장을 설치하고 변환 예제 코드를 사용한다. 단일 CGI 프로세스로 수만 번 변환해도 메모리가 늘지 않아 안정적이며, 200KB 이하 이미지는 약 0.2초 안에 변환되지만 대용량 파일은 시간이 오래 걸려 실시간 변환에는 부적합하다.

imagemagick支持webp,使用imagick即可,不需编写此扩展 下载地址 https://github.com/godlovesdog/webp 使用

/*
* 将JPEG/PNG 图片内存转为webp
* 纯内存操作
*/
$opts = getopt('f:');
$blob = file_get_contents("/home/lvbenwei/".$opts['f']);
$res = image2webp($blob);
$arr = explode('/',$opts['f']);
file_put_contents("/home/lvbenwei/".$arr[count($arr)-1].".webp",$res);//纯内存操作

稳定性测试

单CGI进程几万次JPEG图片转WEBP操作,消耗内存并未增长,可以认为无内存泄露 JPEG转webp


php 把jpg格式的图片转为webp格式
图片字节数在200KB以内时,图片格式转换耗时基本在0.2s内
图片字节数>200KB时,格式转换耗时不稳定,有时达近10s PNG转WEBP

php 把jpg格式的图片转为webp格式
有的200KB以内的PNG转换webp耗时竟达1s

格式转换性能不尽如人意,不建议进行在线格式转换



Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.