앱인벤터(app inventor)에는 스크린(Screen)을 추가할 수 있는 기능이 있지만 복사하는 기능은 없다.

그리고 스크린을 만들 때 이름을 지정할 수 있지만 수정하는 기능 또한 없다.




하지만 방법이 있다.


준비물


1. 노트패드 : https://notepad-plus-plus.org/


2. 7zip : https://www.7-zip.org/


굳이 노트패드가 아니라도 다른 편집기를 사용해도 된다. 메모장을 사용하지 않는 이유는 간혹 글자가 깨지는 등 인코딩 문제가 발생하기 때문이다.


7zip을 사용하는 이유는 aia 파일 내용을 수정하기 위해서이다.



1. 'Export selected project (.aia) to my computer' 을 클릭하여 수정할 aia 파일을 다운 받는다.




2. AIA 파일을 우클릭하여 [7-Zip] -> [압축파일열기] 을 한다.


3. [src] -> [appinventor] -> [ai_ID] -> [project name] 순서로 들어가면 아래와 같을 것이다. (스크린명이나 갯수, 아이콘 모양은 차이가 있을 수 있다.)



이제 파일을 간단한 수정을 통해 스크린을 복사, 수정할 수 있고 덤으로 블록, 디자이너들을 복사할 수 있다.

이는 여러 스크린에서 반복되는 블록, 디자이너가 있을 경우 매우 유용한 방법이다.


ex) Screen1의 디자이너와 블록을 Screen2에서도 사용하고 싶다.


Screen1의 내용은 아래 사진과 같다.




방법


1. 7zip안의 파일을 밖으로 끌어낸다.

2. Screen1.bky 파일을 노트패드를 이용하여 실행한 후 소스들을 전부 복사한다. ('Ctrl + a' 단축키를 사용하면 전체 선택을 할 수 있다)

3. Screen2.bky 파일에 붙여넣기를 한다.

4. Screen1.scm 파일을 노트패드를 이용하여 실행한 후 소스를을 전부 복사한다.

5. Screen2.scm 파일에 있는 내용을 지우고 위에서 복사한 소스를 붙여넣기를 한다.

6. Screen2.scm에서 $Name을 찾고 스크린 명을 고쳐준다. 

(Screen1에서 소스를 복사했기 때문에 Screen1이라 써있지만 우리가 사용할 스크린은 Screen2이기 때문이다.)

7. 수정된 Screen2.bky, Screen1.scm 파일을 다시 7zip 안으로 넣어준다. 파일을 압축파일로 복사 하시겠습니까? 란 문구가 나오면 '예(Y)' 를 선택한다.


이제 test.aia 파일을 다시 앱인벤터에 저장해주면 되는데 현재 test.aia 라는 프로젝트가 존재하기 때문에 수정 전 프로젝트를 삭제하고 저장을 해야한다.

또는 프로젝트 수정을 위해 aia 파일을 컴퓨터로 저장하기 전 'save project as' 를 사용하여 다른 이름으로 저장하고 사용해도 된다.


컴퓨터에 저장된 aia 파일을 'improt project (.aia) from my computer'을 클릭하여 가져와준다.



그리고 프로젝트를 열어보면 스크린, 디자이너, 블록 모두 복사 된 것을 확인할 수 있다.


이를 응용하여 스크린 이름 변경, 스크린 추가 및 수정 등을 할 수 있다.

그누보드를 사용하면서 alert 경고창으로 이런 문구를 본 적이 있을 것이다.



'정상적으로 로그인하여 접근하시기 바랍니다.'


이것은 그누보드의 관리자 화면에 접속할 때 몇몇 사람들에게 생기는 현상인데 처음 접한 사람이라면 당황할 수 밖에 없을 것이다.


뿐만 아니라 관리자 화면에 접속하고서도 메뉴 등 버튼을 눌렀을 때 로그아웃 되는 현상이 발생할 수 있다.


이것에는 여러가지 이유가 있을 수 있으나 필자가 해결한 방법은 아래와 같다.


우선 필자는 처음에 데스크톱으로 ftp를 활용하여 서버에 그누보드를 설치했는데 다른 PC와 노트북으로 사이트에 접속하여 adm페이지, 관리자화면에 접속했을 때 오류가 발생하였다.


'정상적으로 로그인하여 접근하시기 바랍니다' 라는 경고창의 소스는 admin.lib.php 파일에서 찾을 수 있는데 이를 통하여 오류의 발생 원인 또한 이 파일에 있다는 것을 알 수 있다. 참고로 admin.lib.php 파일은 gnuboard/adm 폴더에 있다.


문제가 발생하는 원인을 추측해보자면 누군가가 해킹 등 나쁜 목적으로 관리자 페이지에 접근하는 것을 막기 위해 관리자 pc와 정보가 다를 때 접근을 막는 것이 이러한 문제를 일으키는 것 같다.


해결 방법

: 오류의 원인이 되는 소스를 삭제, 변경하거나 주석처리한다.



그누보드4

admin.lib.php (변경 전)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

$admin_key = md5($member[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

admin.lib.php  (변경 후)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

// $admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']); 

$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . preg_replace('/; ; NCLIENT50\S*\)/',')',$_SERVER['HTTP_USER_AGENT']));

//출처 5.0.30 버전 보안툴로 인한 문제 해결 (정상적으로 로그인하여 접근하시기 바랍니다.)|작성자 질풍이


 그누보드5

 admin.lib.php (변경 전)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if (get_session('ss_mb_key') !== $admin_key) {


    session_destroy();


    include_once(G5_LIB_PATH.'/mailer.lib.php');

    // 메일 알림

    mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);


    alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');

}

 admin.lib.php  (변경 후)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

/*$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if (get_session('ss_mb_key') !== $admin_key) {


    session_destroy();


    include_once(G5_LIB_PATH.'/mailer.lib.php');

    // 메일 알림

    mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);


    alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');

}*/



지원하지 않는 모드입니다. HDMI/DVI:PC

현재 해상도는 지원하지 않습니다. 외부기기에서 해상도를 변경하세요.




평소에 잘 쓰던 모니터에서 갑자기 이런 문구가 나왔다. 컴퓨터를 부팅할 때 화면이 반응하는 것을 보면 분명 모니터가 연결은 되있는 것인데 윈도우 화면에 접근할 때 저런 문구가 나오는 현상이었다.

처음에는 재부팅을 해보았고 화면에 나온 말처럼 해상도를 지원하지 않는 것이 원인일까 싶어서 해상도 조절을 해봤지만 고쳐지지 않았다.

어제까지만해도 잘 쓰던 모니터가 이렇게 된 것이니 실제로 해상도 문제는 아닐 것 같다라는 생각을 했다.

필자는 윈도우 업데이트를 한 후에 저렇게 됬다. 그렇다면 업데이트 과정에서 무언가가 오류가 생긴 것은 아닐까? 

그 후 아래와 같은 방법으로 해결하게 됬다.


그래픽 드라이버 업데이트




인텔 내장그래픽을 사용하는 사람은 위 사진에 있는 다운로드 링크를 따라가면 되며 다른 그래픽 카드를 사용하는 사람은 각자에 맞는 그래픽 드라이버를 찾아서 업데이트 해주면 된다. 3DP 같은 자동으로 드라이버를 잡아주는 프로그램을 사용해도 좋다.



+ Recent posts