예전에는 자주 사용하는 문서를 USB는 가지고 다녀야 해서 귀찮아 메일로 보내놓고 사용했었는데 이제는 클라우드에 무료로 저장공간을 제공하는 회사가 많아져서 편리하게 사용하고 있습니다.구글에서 제공하는 드라이브는 웹에서 사용할 수도 있지만 프로그램을 설치하면 내 컴퓨터의 저장공간처럼 파일 탐색기를 이용하여 사용이 가능합니다.

구글 드라이브를 파일 탐색기에 연결하고 windows batch 파일을 생성해서 자동으로 파일을 백업 하고 윈도우도 종료하도록 하는 프로그램을 만들어 보려고 합니다.

 

작업 순서는

 

1. PC용 드라이브 파일 설치

2. Windows Batch파일 생성

3. 테스트

 

아래 설명을 읽어보기 귀찮으면 바로 다운로드 링크를 클릭 합니다.

https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe

 

 

 

1. PC용 드라이브 파일 설치

 

먼저 PC용 드라이브를 다운로드 받기위해 구글 드라이브 메인화면에 접속합니다.

 

https://www.google.com/intl/ko_KR/drive/

 

구글 드라이브 메인 화면에서 하단으로 죽 내려가면 맨 아래쪽에

 

요런 화면이 나오는데 여기서 [Mac/PC용 드라이브]를 선택 합니다.

 

그러면 바로 다운로드가 되는게 아니고 다운로드 페이지로 이동을 하고요

 

https://www.google.com/intl/ko/drive/download/

 

 

다운로드 페이지에서 [데스크톱용 Drive 다운로드] 버튼을 클릭합니다.

아래 링크가 파일 다운로드 링크 입니다.

 

https://dl.google.com/drive-file-stream/GoogleDriveSetup.exe

 

다운받은 파일을 실행해서 설치를 진행 합니다.

 

 

바탕화면 바로가기를 사용하지 않을거면 체크를 해제하고 [설치] 버튼을 클릭해서 진행합니다.

 

 

잠시 후 설치가 완료되면 [닫기] 버튼으로 닫아주고

 

 

다른 창이 하나 뜨는데 여기서 [브라우저에서 로그인]을 클릭 합니다.

 

 

 

어떤 구글 계정을 사용해서 작업하려는지 선택하는 것으로 계정을 하나 클릭 합니다.

 

 

설명을 한번 읽어보시고 [로그인]을 클릭 합니다.

 

 

 

창을 닫으라는데 안닫아도 되고요.

 

파일 탐색기를 열어보면

 

 

Google Drive가 연결되어 있는걸 볼 수 있습니다.

 

 

예전에 테스트해본 문서들이 보이는 군요.  구글 드라이브도 파일 탐색기에서 일반 디스크와 동일하게 사용이 가능 합니다.

 

 

[드라이브]를 선택하면

 

 

[내 드라이브] 메뉴에서 파일 탐색기에서 본 것과 같은 파일들을 볼 수 있습니다.

 

 

2. Windows Batch파일 생성

 

이제 Windows에서 구글 드라이브로 백업 하는 배치 파일을 만들어 봅니다.

기능은 컴퓨터 작업을 완료하고 배치 파일을 실행해 주면 수정된 파일만 백업을 하고 윈도우를 자동 종료하는 기능 입니다.

그냥 정해진 시간이 되면 자동 백업하게 하려면 스캐줄러에 등록 합니다.

 

배치 파일 내용은 다음과 같습니다.

 

@Echo Off
 
mkdir "G:\내 드라이브\databackup\연습1"
mkdir "G:\내 드라이브\databackup\연습2"
 
robocopy D:\temp\연습1 "G:\내 드라이브\databackup\연습1"
robocopy D:\temp\연습2 "G:\내 드라이브\databackup\연습2"
 
shutdown -s -t 0

 

mkdir는 구글 드라이브에 폴더를 생성하는 명령입니다.

robocopy는 파일을 백업위치에 복사 하는 명령입니다.

shutdown은 시스템을 종료 합니다.

 

배치파일의 작동을 보면 먼저 복사할 위치에 폴더를 생성합니다(폴더가 있으면 생성안함).

robocopy명령으로 복사를 하는데 처음에는 모두 복사하고 다음부터는 변경파일만 복사합니다.

 

robocopy의 자세한 옵션은 콘솔에서 찾아볼 수 있습니다.

>명령어/?  이렇게 명령어에 슬래쉬와 무름표를 하면 사용법 설명을 볼 수 있습니다.

 

 

배치 파일을 만들었으니 저장 합니다.

 

배치 파일을 저장할때에는 확장자는 bat으로 하고 인코딩을 ANSI로 해야 한글을 인식하게 됩니다. 안그러면 오류나면서 복사가 되지 않습니다.

 

 

3. 테스트

 

테스트는 컴퓨터를 매번 종료하고 켜야하니 rem을 이용해서 종료는 주석처리 해줍니다.

rem shutdown -s -t 0

그리고 나중에 실제 사용할 때는 rem을 삭제하고 저장합니다.

 

 

배치파일을 클릭해서 실행하면 구글 드라이브에 파일이 복사 됩니다.

 

 

만일 폴더내에 파일이 많다면 처음 복사하는 시간이 좀 소요 됩니다.

이제 원본 문서를 하나 수정하고 다시 배치를 실행해 봅니다.

 

수정한 첫번째 파일이 복사 되었습니다.

배치파일을 클릭하지 않고 명령 프롬프트에서 실행해보면서 명령 창에서의 로그를 보겠습니다.

 

D:\temp>
D:\temp>backup_배치
하위 디렉터리 또는 파일 G:\내 드라이브\databackup\연습1이(가) 이미 있습니다.
하위 디렉터리 또는 파일 G:\내 드라이브\databackup\연습2이(가) 이미 있습니다.
 
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows용 견고한 파일 복사
-------------------------------------------------------------------------------
 
  시작됨: 2022 5 16일 월요일 오후 5:18:36
        원본 : D:\temp\연습1\
        대상 = G:\내 드라이브\databackup\연습1\
 
        파일 : *.*
 
        옵션 : *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30
 
------------------------------------------------------------------------------
 
                           2    D:\temp\연습1\
100%          최근                     7        새 텍스트 문서1.txt
 
------------------------------------------------------------------------------
 
                  전체       복사됨      건너 뜀       불일치        실패        추가
    디렉터리 :         1         0         1         0         0         0
         파일 :         2         1         1         0         0         0
       바이트 :         7         7         0         0         0         0
      시간 :   0:00:00   0:00:00                       0:00:00   0:00:00
 
 
      속도 :                 134 바이트/
      속도 :               0.007 메가바이트/
   종료됨: 2022 5 16일 월요일 오후 5:18:36
 
 
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows용 견고한 파일 복사
-------------------------------------------------------------------------------
 
  시작됨: 2022 5 16일 월요일 오후 5:18:36
        원본 : D:\temp\연습2\
        대상 = G:\내 드라이브\databackup\연습2\
 
        파일 : *.*
 
        옵션 : *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30
 
------------------------------------------------------------------------------
 
                           2    D:\temp\연습2\
 
------------------------------------------------------------------------------
 
                  전체       복사됨      건너 뜀       불일치        실패        추가
    디렉터리 :         1         0         1         0         0         0
         파일 :         2         0         2         0         0         0
     바이트 :    10.0 k         0    10.0 k         0         0         0
      시간 :   0:00:00   0:00:00                       0:00:00   0:00:00
   종료됨: 2022 5 16일 월요일 오후 5:18:36
 
 
D:\temp>

 

로그가 좀 길고 복잡해 보이기는 하지만 붉은색으로 된 부분을 보면

- 폴더들은 모두 있으니 건너 띄고

- 연습1 폴더의 두개 파일 중 하나만 수정되어 복사하였고

- 연습2 폴더의 두개 파일은 파일은 복사하지 않았다.

이런 내용 입니다.

 

백업 받으려고 기다리지 않고 그냥 배치 파일만 실행시켜 놓고 퇴근하면 종료가 되니 저는 편할것 같습니다.

 

- copy coding -

 

개발자에 따라 다양한 이름으로 불리기도 하는데 사용법이 간단해서 if문을 사용하기 번거로운 경우에 자주 사용하곤 합니다.  

그러다 보니 많은 언어에서 사용 되고 있는데 조건이 복잡해지면 그냥 if문을 사용하는게 좋을 때도 있는데 if문을 사용할 수 없는 상황에서는 직관적이지 않은 경우도 발생 합니다.

 

 

기본적인 삼항 연산자 표현은 다음과 같습니다.

조건식 ? 반환값1 : 반환값2

조건식이 참이면 반환값1을 조건식이 거짓이면 반환값2를 넘겨주는 단순한 연산자 입니다.

 

예제를 하나 만들어 보는게 제일 이해하기 쉽죠.

var nAA = 1;
var nBB = 2;
 
var nZZ = (nAA > nBB) ? 10 : 20;
 
console.log(nZZ);
console.log((nAA > nBB) ? 10 : 20);
결과 20

 

그러나 조금 더 복잡하게 삼항 연산자가 중복되게 작업을 해야 하는 경우도 있습니다. 

var nAA = 1;
var nBB = 2;
var nCC = 3;
 
var nFF = (nAA != nBB) ? nCC < 5 ? 6 : 7 : 4;
 
console.log(nFF);
console.log((nAA != nBB) ? nCC < 5 ? 6 : 7 : 4);
결과 : 6

예제는 간단하게 표시했지만 실제 사용할때는 조건과 반환값이 길어져서 눈동자를 왔다갔다 하게 만드는데 이런 경우에는 보기가 쉽지 않으니 괄호를 이용해 조금 단순하게 표시해 주면 이해하기 편합니다.

 

var nFF = (nAA != nBB) ? (nCC < 5 ? 6 : 7) : 4;

 

이렇게 하면 첫번째 예문과 동일한 구조이고 내부에 하나가 추가된것을 확인할 수 있습니다.

추가된 조건문이 복잡해지는 경우에도

var nAA = 1;
var nBB = 2;
var nCC = 3;
 
var nFF = (nAA != nBB) ? nCC < 5 && nBB == 3 ? 6 : 7 : 4;
 
console.log(nFF);
console.log((nAA != nBB) ? nCC < 5 && nBB == 3 ? 6 : 7 : 4);
결과 : 7

 

var nFF = (nAA != nBB) ? ((nCC < 5 && nBB == 3) ? 6 : 7) : 4;

 

이렇게 괄호를 이용하면 좀더 쉽게 구조를 파악할 수 있습니다.

 

만일 조건이 좀더 많아진다면 

var nAA = 1;
var nBB = 2;
var nCC = 3;
var nDD = 4;
var nEE = 5;
 
var nGG = nAA == nBB ? 11 : nAA == nCC ? 22 : nAA == nDD ? 33 : 44;
 
console.log(nGG);
console.log(nAA == nBB ? 11 : nAA == nCC ? 22 : nAA == nDD ? 33 : 44);
결과 : 44

 

이런 경우는 if 조건문 처럼 줄바꿈을 해주면 보기가 편해집니다. 

var nAA = 1;
var nBB = 2;
var nCC = 3;
var nDD = 4;
var nEE = 5;
 
var nGG = nAA == nBB ? 11
        : nAA == nCC ? 22
        : nAA == nDD ? 33
        : 44;
 
console.log(nGG);
console.log(nAA == nBB ? 11
        : nAA == nCC ? 22
        : nAA == nDD ? 33
        : 44);
결과 : 44

 

이렇게 하고 보면

if(nAA == nBB) return 11

else if(nAA == nCC) return 22

좀더 친숙한 if ~ else 문과 비슷하게 인식하고 사용할 수 있습니다.

 

nexacro 작업하다 grid 표현식 때문에 사용할 때마다 기억이 가물거려 정리를 해봅니다.

숫자 대신 text, edit, combo등을 사용하면 되겠죠?

 

- copy coding -

 

우리나라는 지도를 해외로 반출할 수 없기 때문에 지도를 사용하려면 데이터를 사용해야 합니다.  그러나 해외에 나가서 현지의 지도를 사용하는 경우에는 미리 해당 지역을 다운로드 받으면 데이터를 사용하지 않고도 필요한 기능을 사용할 수 있습니다.  다운로드 방법도 매우 간단 합니다.

 

1. 저장 위치 검색

 

제일먼저 해야할 일은 구글에 로그인을 하고 구글 맵을 다운받아 실행하여 저장하려는 위치를 검색해서 지도 중앙에 놓이도록 합니다.

 

 

그리고 하단에 있는 뒤로가기(<)를 클릭해 줍니다.

 

 

2. 메뉴 활성화

 

뒤로가기를 했다면 아래와 같은 화면이 보여야 정상 입니다.

 

여기서 검색 입력창의 우측에 로그인 사용자 이름의 첫글자가 나오는 원을 클릭하면 다양한 메뉴가 나타 납니다.

 

 

메뉴의 중간쯤에서 지금 하려는 [오프라인 지도]를 선택해 줍니다.

 

 

3. 지도 다운로드

 

오프라인 지도 창으로 화면이 이동 되고

오프라인 지도 메뉴에서 [나만의 지도 선택]을 클릭 해주면

 

 

 

다운받으려는 지역 표시가 나타납니다.  여기서 필요한 지도의 영역을 선택하면 되는데 지도를 점점 축소 또는 확대 해서 오프라인으로 사용하려는 지도가 검은색 사각형 안쪽으로 들어가도록 합니다.  지도가 축소될 수록 다운받아야하는 양이 많아지고 하단에 용량도 표시가되니 적당하게 선택을 해줍니다.

사용할 영역을 선택했으면 하단에 있는 [다운로드] 버튼을 클릭하여 다운로드를 진행 합니다.

 

 

잠시후 다운로드가 완료 되었습니다. 

 

 

4. 오프라인 지도 사용 방법

 

다운받은 지도의 사용 방법은 오프라인 지도 화면에서 다운로드된 지도를 클릭 합니다.

 

 

여기서는 하나만 있으니 프랑크푸르트를 선택 합니다.

 

 

그리고 지도의 밝은 부분을 클릭하면 오프라인으로 사용이 가능 합니다.

 

 

 

5. 추가 기능

 

추가적인 기능을 사용하려면 우측의 점 3개를 클릭하면 됩니다.  저장된 지도에 대한 추가 기능은 4가지로 업데이트, 보기, 이름 변경, 삭제 입니다.

 

 

하나씩 메뉴에 대한 화면만 보도록 하겠습니다.

 

[업데이트]

 

다운로드 받은 지도의 내용이 변경되었을 수 있으니 최신 정보로 업데이트 하는 기능입니다.

 

 

[보기]

 

4번에서 살펴본 다운로드한 지도 사용법과 동일 합니다.

 

 

다운로드 받은 지도의 내용을 업데이트 할 수도 있고 음영 가운데 환한 부분의 지도를 클릭하면 오프라인으로 사용 가능한 화면으로 이동 합니다.

 

 

 

[이름변경]

 

 

저장한 지도의 이름을 변경합니다.

 

 

[삭제]

 

말 그대로 저장된 지도를 삭제합니다. 

 

 

팝업 창에서 []를 선택하면 저장된 지도가 바로 삭제됩니다.

 

- copy coding -

 

어제 GCPCentOS를 설치해 보았습니다.  오늘은 GCPVM으로 생성한 서버에 작업을 하기위한 FTP Telnet 접속 방법에 대해 알아봅니다.  SSH를 이용한 접속은 기본적으로 google cloud platform 에서 브라우저를 이용하여 바로 접속이 가능 합니다.

 

 

SSH를 선택하여 확장하면 접속 가능한 방법이 나오는데 

 

 

 

일단 [브라우저 창에서 열기]를 선택해 봅니다.

팝업이 나타나고 잠시 기다리면 접속이 완료 됩니다.

 

로그인은 처음에는 vm을 생성한 google id로 로그인이 되는데 root 권한을 얻으려면 아래 명령을 입력합니다.

sudo su -

 

 

 

이제 외부 프로그램 puttyfilezilla로 접속하는 방법에 대해 알아봅니다.

 

1. RSA 키 생성 및 저장

2. 공개키 GCP 등록

3. 개인키 filezilla 등록 접속

4. 개인키 putty 등록 접속

 

이와같은 순서로 진행하면 됩니다.

 

 

 

 

 

 

1. RSA 키 생성

 

키를 생성하기 위해 putty에 접속해서 프로그램을 하나 다운로드 받습니다.

putty 사이트에 접속하여 

 

https://www.putty.org/

 

 

[here] 텍스트를 클릭하면 다운로드 리스트가 나오는데

 

 

 

리스트 중에

puttygen.exe (a RSA and DSA key generation utility)

항목중 자신의 시스템에 적합한 파일을 다운로드 받습니다.  저는 Windows 10을 사용해서 첫번째 파일을 선택 했습니다.

 

 

 

다운받은 파일을 실행하고 [Generate] 버튼을 클릭 하면

 

 

 

키 생성이 진행 되고

 

 

잠시 후 키 생성이 완료 됩니다.

상단 텍스트 박스에 보이는 길게 보이는 키가 공개키 입니다.

Key Comment 에 있는 값이 로그인 ID가 됩니다.  여기서는 기본 값으로 키를 생성 하였는데 만일 ID를 정해주고 싶으면 Key CommentID를 기입하면 됩니다.  , Key Comment에 있는 값이 로그인 아이디가 됩니다.

 

생성된 키를 저장해야 합니다.  [Save private key] 버튼을 클릭해서 임의의 위치에 저장 합니다.

 

 

 

[Save public key] 버튼도 클릭해서 저장해 둡니다.

 

 

 

실제 사용하는 키는 private key 이고 public key는 다시 사용하게 되는 경우를 위해 저장을 합니다.

 

 

 

2. 공개키 GCP 등록

 

Key Generator 프로그램 상단에 생성된 공개키를 복사합니다.

그리고 Google Cloud Platform에서 좌측 [메타 데이터] 메뉴를 선택 합니다.

 

 

 

우측에 [SSH 키 추가] 버튼이 보이는데 클릭 해서 다음 화면으로 넘어갑니다.

 

 

 

복사한 키를 붙여넣기 하고 [저장] 버튼을 클릭합니다.

 

 

 

공개 키가 GCP에 저장 되었습니다.

 

 

3. 개인 키 filezilla 등록 접속

 

 

이제 개인 키를 이용하여 FTPGCP 서버에 접속을 하도록 합니다. 

 

 

먼저 filezilla에 개인 키를 등록하기 위해

편집 > 설정

메뉴를 선택 합니다.

 

 

 

설정 창이 나오면 좌측 메뉴에서

연결 > SFTP

메뉴를 선택 하구 우측에서 [키 파일 추가] 버튼을 클릭합니다.

 

 

 

저장해 놓은 개인 키를 선택하고 [열기] 버튼을 클릭 합니다.

 

 

 

키 파일을 추가하였으면 좌측 하단의 [확인] 버튼을 클릭하면 반영 됩니다.

 

Google Cloud PlatformVM 인스턴스에 있는 외부 IP를 이용하여 접속을 하면 되는데

 

 

 

호스트에 sftp://34.123.13.xxx 이런식으로 입력하고

사용자명에 기본 설정 또는 변경한 ID를 입력 합니다.

마지막으로 [빠른 연결] 버튼을 클릭하면

 

호스트 키에 대한 체크와 확인을 해줍니다.

 

 

서버에 접속이 완료 되었습니다.  ftp가 작동하는지 확인해 봅니다.

 

 

파일 2개를 올려보았는데 잘 작동이 되는군요.

home 밑에 vm을 생성한 IDkey를 생성할때 사용한 ID 두개의 사용자가 보입니다.  key 생성에서 ID를 어떻게 하느냐에 따라 사용자가 달라질 수 있습니다.

 

 

4. 개인키 putty 등록 접속

 

이제 putty를 이용해서 SSH로 접속해 보겠습니다.  filezilla를 해 보았으니 이건 너무 쉽겠네요.

 

 

 

putty를 실행하고 좌측 메뉴에서

Connection > SSH > Auth

를 선택 합니다.  그리고 우측에서 Private key... 부분의 [Browser] 버튼을 클릭 하고 개인 키를 선택해주면 위와 같이 키 설정이 완료 됩니다.

 

 

이제 좌측 메뉴 Session에서 IPSession 명을 입력하고 [Save]를 클릭해서 설정을 저장 합니다.

접속을 위해 [Open] 버튼을 클릭 합니다.

 

 

창이 나타나면 login as:key 생성시 사용한 key comment 명을 입력합니다.  만일 키를 생성할 때 key comment에 다른 ID를 입력하였으면 그것으로 입력해 줍니다.

엔터키를 클릭하면 password 필요 없이 바로 접속이 됩니다.

바로 전에 ftp로 업로드한 파일 2개가 보이는 군요.

 

- copy coding -


1···14151617181920···118

+ Recent posts