아래 포스팅에서 Autohotkey 의 argument 를 사용하는 방법에 대해 소개한 적이 있습니다. Autohotkey 에서 기존의 방법으로 argument 처리를 해 본 분들은 아시겠지만 %0%, %1% 등으로 표현이 되서 약간 이해가 쉽지 않았던게 사실 입니다.

https://iamaman.tistory.com/1635

그런데 최근에 아래 주소의 Autohotkey 문서를 다시 보다보니~ 1.1.27 버전 부터 A_Args 라는 키워드가 생긴것을 확인 할 수 있었습니다.

https://www.autohotkey.com/docs/Scripts.htm#cmd

이렇게 보니 이제 다른 프로그래밍 언어들과 그 사용방법이 거의 차이가 없는것 같네요~

Autohotkey help 문서에 있는 아래와 같은 예제를 한번 돌려보면 그냥 바로 이해가 되실 겁니다.

arg1 := A_Args[1] ; 첫번째 parameter

arglen := A_Args.Length() ; parameter 길이

MsgBox arg length : %arglen%

MsgBox arg1 : %arg1%

for n, param in A_Args ; For each parameter:

{

MsgBox Parameter number %n% is %param%.

}

위 코드에서 보시는 바와 같이 대괄호 인덱스를 사용하여 각 parameter 값을 얻을 수 있고~ Length() 함수를 통해 argument 의 갯수를 알 수 있습니다.

위 코드를 실행하기 위해서는 cmd 창이나 Powershell 과 같은 터미널에서 argument 를 줘야하는데~ 아래 그림과 같이 argument 들은 공백으로 구분을 하고 argument 에 공백이 포함된 경우에는 따옴표(“) 로 묶어 줘야 합니다.

그런데 이렇게 CMD 창에 실행하는건 불편하니까~ argument 가 있는 Autohotkey 코드를 개발 할 때는 scite4autohotkey 에서 View -> Parameters (Shift + F8)창을 열어서 사용하면 편리합니다. 


아래 화면은 보시는 바와 같이 3개의 argument 를 설정한 예입니다. Set 을 누르면 Parameters 창은 사라지고 scite4autohotkey 에디터에서 Run 을 눌러주면 해당 Parameters 들이 순서대로 입력 되게 됩니다.

argument 는 보통 Drag & Drop 을 통해서도 입력 할 수 있는데 위 링크의 문서를 보면 ~ NTFS 파일 시스템에서 8-dot-3 이름이 해제된 경우에는 Drag & Drop 이 실패 할수 있다고 하더군요. 이런 경우에는 해당 Autohotkey 파일을 compile 해서 실행파일(exe) 로 만들면 된다고 합니다.

8-dot-3 (short) name 이 뭔가 해서 검색을 조금 해 보니 오래된 도스 버전에서 사용하던 이름 규칙이라고 하네요.

https://ko.wikipedia.org/wiki/8.3_파일_이름

뭐 그럴일은 별로 없겠지만~ 아래 문서를 보니 fsutil.exe 를 사용하여 8-dot-3 (short) name 기능을 Enable, Disable 할 수 있다고 합니다.

https://support.microsoft.com/en-us/help/121007/how-to-disable-8-3-file-name-creation-on-ntfs-partitions



Windows 10 WSL(Windows Subsystem for Linux) 을 통해 윈도우 내에 리눅스를 설치할 수 있다는 얘기를 했었고 아래 포스팅에서 소개한 바와 같이 Kali Linux 를 설치도 해 봤습니다.

http://iamaman.tistory.com/2317

최근에 윈도우를 다시 설치하면서 우분투를 설치했고~ 윈도우 업데이트도 모두 완료 했습니다.

윈도우 사용시 탐색기에서 명령창을 열기 위해서는 Shift + 오른쪽클릭 을 해서 나오는 팝업 메뉴에서 아래와 같이 Powershell 이나 CMD 창을 선택하면 됩니다.

그런데 최근에 발견한 건데….. 위 그림과 같이 “여기에서 linux 셸 열기” 라는 메뉴가 생겼더군요. “여기에서 linux 셸 열기” 를 클릭하면 아래와 같이 해당 폴더에서 리눅스 셸이 실행되는 것을 확인할 수 있습니다.

위 링크의 포스팅에서도 소개를 했었지만 윈도우의 드라이브는 설치한 리눅스의 /mnt 폴더에 마운트가 되고~ C 드라이브는 /mnt/c, D 드라이브는 /mnt/d 의 주소로 접근하면 되는데 주소의 depth 가 깊어지면 하나하나 찾아들어가는 것이 귀찮은게 사실입니다.

그런데 윈도우 폴더에서 “ 여기에서 linux 셸 열기” 를 통해서 리눅스 셸에서 한번에 윈도우의 폴더에 접근 가능하게 돼서 너무나 편리해진 것 같습니다. 개인적으로는 매우 좋은 기능이라는 생각이 드네요~

Windows 10 에서 리눅스를 설치해서 사용하시는 분들은 꼭 한번 이용해 보시기 바랍니다.



Windows 10 에 리눅스를 설치 할 수 있다는 얘기를 들었다가 잊고 있었는데 최근에 시간도 나고 궁금해서 Windows 10 WSL(Windows Subsystem for Linux) 의 리눅스를 설치 해 봤습니다.

일단 WSL 사용을 위해서는 아래와 같이 Windows 기능에 들어가서 ‘Linux 용 Windows 하위시스템’ 체크를 해 줘야 됩니다. 확인을 한 후에 윈도우를 재부팅합니다.

이 설정은 Powershell 을 통해서도 가능한데 다음과 같이 명령어를 입력해 주면 됩니다.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

이 명령을 실행 후에는 똑같이 윈도우를 재부팅 합니다.

재부팅 후에 Microsoft Store 를 실행 하고 검색에 linux 라고 타이핑하면 아래와 같은 화면이 나타나는데, ‘Windows 에서 Linux 실행하기’를 선택합니다.

들어가 보면 Microsoft Store 에서 설치 가능한 리눅스 버전이 나옵니다. Ubuntu, SUSE 등이 나오는데 Kali Linux는 생소해서 오늘 한번 설치 해 봤습니다. Kali Linux 를 선택하고 들어가서 그냥 설치 버튼을 누르시면 설치가 됩니다. 다음과 같은 화면이 나오면 ID 를 설정해 주시고 password 를 설정해 주시면 됩니다.

cmd 나 Powershell 에서 kali 라고 명령하면 아래와 같이 Kali Linux 터미널이 실행 됩니다.

아래 주소에서 동영상을 확인해 보니 Kali Linux 에 xfce4 를 설치하고 원격접속을 통해서 UI 환경에서 작업을 할 수도 있더군요.

https://www.kali.org/news/kali-linux-in-the-windows-app-store/

Kali Linux 터미널에서 Windows 의 파일들은 /mnt 로 자동으로 마운트가 됩니다. 따라서 Windows 의 C:\ 에 접근하고 싶으면 Kali Linux 터미널에서 /mnt/c 로 접근하시면 됩니다. 예를 들어 ABC 사용자의 바탕화면에 접근하고 싶으면 /mnt/c/Users/ABC/Desktop 에 접근하시면 됩니다. 리눅스 터미널은 대소문자를 구별하기 때문에 c, d 는 소문자로 작성해 주셔야 됩니다.

다음으로 Kali Linux 에서 생생한 파일들은 Windows 에서 아래주소를 통해서 접근할 수 있었습니다.

%localappdata%\Packages\KaliLinux….\LocalState\rootfs

자신의 홈 폴더를 윈도우 바탕화면에 바로가기 등을 해 놓으면 편리하게 사용할 수 있을 것 같습니다.



요즘 크롤링에 관심을 갖게 되면서 PhantomJS 와 selenium 을 알게 되었습니다. 아~ 왜 이걸 이제 알았을까 하는 생각이 들 정도로 편리한 기능들이 엄청나게 많더군요. 

주간 메뉴를 다운로드 한다던가 등등 토렌트 파일을 자동으로 다운로드 받는다던가 등등 

반복적인 웹 작업들을 한번만 코딩 해 놓고 예약 작업에 설정해 놓고 주기적으로 돌리니 세상 편하더군요.

암튼 오늘은 Windows 환경에서 PhantomJS 를 다운로드 하고 설치하는 방법에 대해 소개하려 합니다. 

아래 주소에서 

http://phantomjs.org/download.html


다음과 같이 Windows 용 PhantomJS 를 다운로드 하고 사용하시는 적절한 폴더에 압축을 해제 합니다. 


다음으로 phantomjs-2.1.1-windows\bin 폴더의 전체 경로를 path 환경변수에 설정합니다. 

환경변수는 시스템 -> 고급 시스템 설정 -> 환경 변수 버튼 클릭을 통해 환경 변수 설정 창에 들어갈수 있습니다.

또는 아래 포스팅에서 소개했던 Rapid Environment Editor 와 같은 툴을 사용하면 편리하고~ 

http://iamaman.tistory.com/1213


이전에 자바 환경 변수를 설정할때도 소개 했지만 setx 명령어를 사용하면 정말 편리합니다. 저는 요즘 이 방법을 주로 사용 합니다.

http://iamaman.tistory.com/623


저의 경우 PhantomJS 의 bin 폴더의 경로는 다음과 같습니다. 

J:\utility\phantomjs-2.1.1-windows\bin


위에 주소를 환경 변수에 설정하기 위해 다음과 같이 명령어를 작성 합니다. 

setx path "J:\utility\phantomjs-2.1.1-windows\bin";"%path%" /m


이제 설정은 다 끝났습니다. 정상적으로 환경변수 설정이 됐는지 확인하려면 cmd 창에서 phantomjs.exe 라고 명령해 보면 아래 그림과 같이 PhantomJS 프롬프트가 실행되어야 합니다. 



Windows 사용시 CMD 의 경우 그 기능이 많이 미약한 듯 해서  CMD 창  대신에 아래 주소에서 소개 했었던 Clink 를 주로 사용합니다.


Command Window 에서 작업시 명령어 history 를 볼 수 있지만 지금까지 타이핑 했던 명령어들을 다 보고 싶거나 일부를 파일로 저장하고 싶은 경우가 있습니다. 

이럴때 Clink 에서는 아래 주소의 파일을 열어 보면 history 를 볼 수가 있습니다.

.\clink_0.4.4\profile\.history

Clink Default 셋팅에서는 Clink 종료시 history 가 한번 저장되게 되는데 계속 해서 저장하고 싶다면 

Clink 에서 다음과 같이 명령하고 Clink 를 재 실행하면 됩니다. 

clink set history_io 1

원래 대로 돌아오고 싶다면 다음과 같이 숫자 0 을 써 주고 재실행 하면 됩니다.

clink set history_io 0

clink  의 셋팅 파일은 아래 주소에 있는데 ~ 아래 셋팅파일에서  history_io 값을 변경해 줘도 됩니다. 

clink_0.4.4\profile\settings

위 내용 이외의 Clink  설정들은 아래 주소의 글을 확인해 보시기 바랍니다. 


저처럼 Clink 를 zip 파일 형태로 사용하지 않고 install 해서 사용하시는 분들은 아래 주소에 settings, .history 파일이 있을 겁니다. 

%LOCALAPPDATA%\clink



보통 프로그램은 관리자 권한으로 실행 할때 프로그램에서 마우스 오른쪽 키를 누른 후에 관리자권한으로 실행 하곤 합니다.


하지만 가끔씩은 커맨드라인에서 관리자 권한으로 실행 할 필요가 있는 경우가 있습니다.


이런 경우 sudo 라는 프로그램을 사용할 수 있습니다.


sudo 는  chocolatey 에서 설치할 수 있습니다.


https://chocolatey.org/packages/Sudo


Windows CMD 에서 아래 명령어를 사용하면 sudo 가 설치 됩니다. 

choco install sudo

 

간단하게 커맨드라인에서 아래 예와 같이 사용 할 수 있습니다. 


sudo notepad.exe 메모장이 관리자 권한으로 실행


sudo calc.exe 관리자 권한으로 계산기 실행


sudo explorer.exe 관리자 권한으로 탐색기 실행


다음과 같이 하면 특정 폴더를 관리자 권한으로 열 수도 있습니다. 


sudo explorer.exe C:\Users\


요즘 Dropbox, Google Drive, Daumcloud, N 드라이브 등등 정말 다양한 클라우드 스토리지가 있고 ~

 

많이 활용하고 계실 텐데요~

 

저는 요즘 Google Drive 에 컴퓨터 셋팅등을 백업하곤 합니다.

 

그런데 주기적으로 백업을 하려면 Command 명령어가 필요하고~

 

그래서 찾아보니 Google Drive Command Line 이 있더군요.

 

gdrive 라는 Google Drive Command Line 툴은 아래 주소에서 다운로드 가능합니다.

 

https://github.com/prasmussen/gdrive#downloads

 

위 주소에서 확인 할 수 있는 바와 같이 OSX,Linux, Windows용 실행 파일이 있고 각자의 컴퓨터 환경에 맞게 다운로드 받아서 설치하면 됩니다.

 

저는 현재 윈도우 64 비트라 제일 아래의 drive-windows-amd64.exe v1.6.1 을 다운로드 받았습니다.

 

다운로드 받은 파일을 심볼릭 링크를 사용하던 아님 그냥 파일 이름을 변경하던 해서 gdrive.exe 로 바꿔 줍니다.

 

그리고 gdrive.exe 파일을 CMD 창에서 실행하기 위해 gdrive.exe 파일이 들어잇는 폴더를 path환경 변수에 설정하거나 기존의 path환경 변수로 설정된 폴더 안에 넣습니다.

 

사용법은 위 주소에 나와 있는 바와 같이 delete, download, folder, info, list, share, unshare, upload, url 옵션을 사용할 수 있습니다.

 

다운로드 받은 파일을 처음 실행하면 URL 이 하나 나오는데~


 

다음과 같이 동의를 해야 합니다.

 

동의하면 나오는 코드를 위 실행 창에 오른쪽 클릭하고 편집 붙여넣기 합니다.


 

이제 gdrive를 사용할 준비가 됐습니다.

 

gdrive list 라고 하면 다음과 같이 Google Drive의 리스트가 나옵니다.


 

다음과 같은 명령어로 upload 도 할 수 있죠~


gdrive upload --file <Filepath>

Example) gdrive upload --file D:/test/test.zip

 

이제 윈도우 예약 작업 등에 명령을 걸어 놓으면~ 자동으로 Google Drive 에 주기적인 백업을 할 수 있겠죠~


아래 명령어를 통해 파일 리스트와 ID 를 알 수 있습니다. 


gdrive list


위 목록으로 부터 지우고자 하는 FileID 를 확인 후 


아래와 같이 Google Drive 의 파일을 지울 수 있습니다. 


gdrive delete -i <FileID>





Windows 환경에서 ruby를 설치하는 방법에 대해 기록한다.

 

Ruby 설치를 위한 Windows binary 는 아래 주소에서 다운로드 할 수 있다.

 

http://rubyinstaller.org/downloads/

 

현재 2.2.4 버전이 최신 버전이다.

 

위 download 페이지의 설명에 나와 있지만 잘 모르겠을 때는 32비트를 설치하는 게 좋다.

 

(x64) 라는 글자가 붙지 않은 파일들이 32비트용이다.

 

설치 시 아래 그림과 같이 path 환경변수에 등록하도록 설정한다.

 

컴파일 환경을 갖추기 위해 각자 버전에 맞는 DEVELOPMENT KIT도 설치 한다.

 

다운로드 받은 exe 파일을 더블 클릭하면 압축이 해제 되는데~ C:\RubyDevKit 와 같은 폴더를 만들고 해당 폴더에 압축을 해제 하도록 한다.

 

다음으로 DEVELOPMENT KIT 을 초기화 하고 설치하기 위해 CMD 창에서 C:\RubyDevKit 폴더로 이동후에 아래 명령어를 순서대로 써서 설치를 완료 한다.

ruby dk.rb init

ruby dk.rb install

 

 

아래 명령어를 통해 현재 설치된 ruby 버전을 확인 할 수 있다.

 

ruby –v

 


지난 포스팅에서 윈도우에서 사용 가능한 백업 툴로 FreeFileSync 에 대해 소개한 적이 있습니다.

 

http://iamaman.tistory.com/1671

 

오늘은 윈도우 전용 백업 툴로 SyncToy에 대해 소개 하고 이를 이용하여 예약 작업 설정하는 방법을 알아 보려 합니다.

 

일단 SyncToy 를 설치해야는데~ 구글링만 해보면 다음 주소에서 다운로드 할 수 있습니다.

 

https://www.microsoft.com/en-us/download/details.aspx?id=15155

설치는 뭐 다음 다음이니 굳이 설명 안 드립니다.

 

SyncToy 설치후 실행하면 아래 그림과 같은 화면이 나옵니다. 아래에 있는 Create New Folder Pair 를 클릭해서~


 

아래 그림처럼 원본 폴더와 백업폴더를 설정합니다. 왼쪽이 원본이고 오른쪽이 백업 폴더 입니다.

 

다음으로 아래 그림과 같이 백업을 양방향으로 할지 원본에 대한 미러링을 할지 등을 선택합니다.


다음으로 아래 그림과 같은 화면에서 해당 백업의 명을 적어 줍니다. 저는 Temp Backup 이라 했습니다.

 

다 설정하면 아래 그림과 같은 화면이 나옵니다. 오른쪽 아래에 있는 Run 을 클릭하면 해당 백업 작업이 실행 됩니다.

 

백업은 보통 자주 기계적으로 하곤 하니까 매번 SyncToy를 통해 실행하기 보다는 예약 작업으로 설정해서 사용하는 게 좋습니다.

 

예약 작업에서는 아래 그림과 같이 동작 속성의 프로그램에 SyncToyCmd.exe 의 Full path(C:\Program Files\SyncToy 2.1\SyncToyCmd.exe) 를 인수 추가 부분에 –R "백업이름" 을 넣어 줍니다.

 

 

CMD 창에서 schtasks 명령을 통해 설정할때는 아래 명령어와 같이 설정합니다. SyncToyCmd.exe 의 path 등에 공백이 있으므로 따옴표(") 를 적절히 넣어줘야 하고 그에 따른 escaping 을 적절히 해 줘야 합니다.

 

따옴표(") 에 대한 escaping 은 \ 를 붙이면 됩니다.

 

아래는 매주 목요일 12시(정오)에 Temp Backup 이라는 백업 작업을 실행하도록 예약 작업을 설정하는 예 입니다.

 

schtasks  /create  /tn "SyncToy_Schedule" /tr "\"C:\Program Files\SyncToy 2.1\SyncToyCmd.exe\" -R \"Temp Backup\"" /sc weekly /d THU /st 12:00:00 /ru "System" /F


윈도우를 사용하면서 "예약 작업" 많이들 사용 하시나요?

 

서버를 다루시는 분들이야 당연히 많이들 사용하실거고

 

리눅스를 다루는 분들이야 cron 을 통해 예약 작업들을 많이 사용 하실 겁니다.

 

윈도우 예약 작업은 아래 그림과 같이 작업 스케줄러를 통해서도 설정 할 수 있지만~

 

 

오늘은 간단하게 schtasks 명령을 사용해서 설정해 보겠습니다.

 

Schtasks 의 사용법은 아래 그림과 같이 cmd 창에 schtasks /? 라고 하면 설명이 나옵니다.

 

 

각 매개변수 목록에 대한 설명은 위 그림과 같이 schtasks /Create /? 와 같은 식으로 하면 나오고요~

 

저는 예약작업을 주로 powershell 을 사용해서 설정하는데~ 다음과 같이 하곤 합니다.

 

schtasks  /create  /tn "예약작업이름" /tr "C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe  <Powershell File Path> " /sc 주기 /d 요일 /st 시간 /ru "System"


Ex) schtasks  /create  /tn "WEEKLY_REPORT" /tr "C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe  D:\WEEKLY_REPORT.ps1" /sc weekly /d TUE /st 09:00:00 /ru "System"

 

위에 작성한 예제는 매주 화요일 오전 9시에 시스템 계정으로 WEEKLY_REPORT.ps1 파일을 실행하는 WEEKLY_REPORT 라는 이름의 예약작업을 설정하는 예 입니다.

 

위 명령을 실행하면~ 아래 그림과 같이 메시지가 나오고~


 

아래 그림과 같이 작업 스케줄러에서도 확인 할 수 있습니다.


 

cmd 창을 통해 위에 만들어진 WEEKLY_REPORT 예약 작업을 실행하려면~ 다음과 같이 간단하게 명령을 통해 처리 할 수 있습니다.

 

schtasks /RUN /TN " WEEKLY_REPORT"

  


리눅스 사용자들은 홈 폴더에 대한 개념이 명확 하지만 윈도우 사용자들은 홈 폴더에 대한 개념이 명확하지 않은 경우가 많이 있습니다.

 

요즘 나오는 컴퓨터 운영체제들은 멀티유저용인 만큼 사용자에 따른 홈 폴더 사용은 필수 입니다.

 

Python 사용시 현재 사용자의 home 폴더에 접근 하는 방법에 대해 소개하려 합니다.

 

현재 제 컴퓨터는 Windows 7 64비트 입니다. 그리고 계정은 Administrator 입니다.

 

현재 사용자의 홈 폴더를 확인 하는 방법은 CMD 창에서 다음과 같이 echo %userprofile% 이라고 타이핑 하면 나옵니다.

 


 

컴퓨터가 달라지면 달라지면 당연히 홈 폴더 역시 바뀌게 될 겁니다.

 

따라서 홈 폴더에 대한 접근은 하드 코딩이 아닌 다음과 같은 코딩을 통해 접근 하는 게 좋다고 생각됩니다.

 

from os.path import expanduser

if __name__ == '__main__':

    home = expanduser("~")

    print home

 

위 코드를 실행해보면~ 다음과 같이 자신의 홈 폴더에 접근 할 수 있습니다.

 


에디터를 사용하면서 윈도우에서는 Notepad++을 주로 사용하고 리눅스에서는 Vim 을 주로 사용하는데요~

 

윈도우에서 에디터를 사용할 때는 보통 더블클릭을 해서 에디터를 실행하거나 엔터를 쳐서 실행하곤 합니다.

 

하지만 이런 에디터도 커맨드 라인에서 실행하는 게 더 편리한 경우가 있습니다.

 

예를 들어 a.txt 파일이 있는데~ 이 파일의 100 번째 줄에서부터 보고 싶은 경우가 있습니다.

 

이러한 경우에 Notepad++의 경우 다음과 같은 명령어를 통해 실행 가능 합니다.

 

"C:\Program Files (x86)\Notepad++\notepad++.exe" a.txt -n100

 

Notepad++.exe 파일이 들어있는 폴더가 path 환경 변수에 들어 있는 경우 CMD 창에서 다음과 같이 좀더 간단한 명령어로도 실행 할 수 있습니다.


notepad++.exe a.txt -n100 


다음으로 vim의 경우 다음과 같은 명령어로 실행 할 수 있습니다.

 

vim +100 a.txt




윈도우를 사용하다 보면 리눅스에서 사용하던 명령어들이 아쉬워 질 때가 많이 있습니다.

 

이러한 리눅스 명령어들을 사용하고 싶을 때는 cygwin 과 같은 프로그램을 설치하여 사용해도 되지만~

 

GNU On Windows 을 설치하면 윈도우에서도 리눅스 명령을 사용할 수 있습니다.

 

GNU On Windows (GOW)은 현재 약 130 개 정도의 GNU utility 를 윈도우 프로그램으로 컴파일 해서 제공해 줍니다.

 

아래 페이지에서 다운로드 가능하구요~

https://github.com/bmatzelle/gow/releases

다음 그림과 같이 가장 최신의Gow 설치 파일을 다운로드 및 설치 합니다.

 

설치는 특별히 설정해줘야 할 것들이 없더군요. 다음~ 다음 해서 설치하면 되겠습니다.

 

이렇게 설치 하면 C:\Program Files (x86)\Gow\ 폴더에 설치가 되더군요.

 

Ctrl+R 을 눌러서 실행창을 열고 cmd 명령을 쳐서 윈도우 명령 인터프리터를 시작합니다.

 

아래 그림처럼 gow -h 을 치면 gow 명령에서 사용 가능한 옵션들이 나타나고 ~

 

gow -l (소문자 엘)을 치면~ 아래 그림처럼 사용 가능한 GNU 유틸들의 목록이 나타납니다.

 

뭐 많이들 사용하는 리눅스 명령어들은 대부분 있는 것 같군요.

 

각 명령어들의 사용방법을 알고 싶으시면~ 명령어 --help 라고 치면 됩니다.

 

예를 들어 grep 의 사용방법을 알고 싶다면~ 아래 그림처럼 grep --help 라고 치면 됩니다.


  1. ryukato 2013.01.24 16:26

    좋은 정보 고맙습니다. ^^

+ Recent posts