글쓴이 보관물: Toughman

안드로이드 에뮬레이터간 가상 전화 걸기 및 SMS 전송

개요

다른 휴대전화로 전화를 걸거나 메시지를 보내는 기능을 하는 안드로이드 앱을 개발하는 경우가 있습니다. 여분의 테스트 휴대전화가 없거나 혼자 작업하는 경우 정상적으로 동작하는지 확인이 어렵습니다. 최종적으로는 실제 휴대전화에서 확인 해야겠지만 개발시에 에뮬레이터 간 가상 전화 걸기 및 SMS 전송으로 테스트 해 볼 수 있습니다.

에뮬레이터 실행

두개의 에뮬레이터를 실행해서 테스트 해 보도록 하겠습니다. 에뮬레이터 실행한 후 전화앱을 실행합니다. 번호를 입력해야 하는데 우측상단에 보면 :5554 같은 숫자가 있습니다. 이 숫자를 입력하고 전화를 걸면 다른 에뮬레이터에서 전화가 온 것 처럼 작동합니다. 에뮬레이터의 전화번호로 전화를 거는 방법도 있습니다. 전화번호는 Settings > System : About emulated device > Status > SIM Status 선택하면 My phone number 항목에서 확인할 수 있습니다(메뉴 구성은 다를 수 있음).

에뮬레이터 번호
에뮬레이터 번호
에뮬레이터 두 개 실행한 화면
에뮬레이터 두 개 실행한 화면
다른 에뮬레이터로 전화를 건 상태
다른 에뮬레이터로 전화를 건 상태

에뮬레이터 자체에서 전화가 온것처럼 하기

에뮬레이터 자체에서 전화가 걸려온 상황을 흉내낼 수 있습니다. 우측메뉴 가장 하단에 … 항목을 클릭해보면 창이 나타나는데 Phone을 선택하면 전화가 온 번호를 지정할 수 있고 CALL DEVICE 를 클릭하면 전화가 옵니다.

에뮬레이터에서 전화가 온 것 처럼 흉내내기
에뮬레이터에서 전화가 온 것 처럼 흉내내기

메시지도 같은 방법으로 보내고 받을 수 있습니다.

이번 포스트에서는 안드로이드 개발 시 전화와 메시지를 에뮬레이터를 통해서 테스트하는 방법을 알아보았습니다.

MySQL 이벤트 스케줄러를 이용한 자료정리

개요

테이블에 자료가 쌓이다 보면 오래된 자료를 주기적으로 정리해야 할 경우가 있습니다. 로그같은 개념으로 계속 누적이 되거나 저장된지 오래되어 의미가 없어진 자료등이 그렇습니다. 관리가 필요한 자료를 확인해서 관리자가 수동으로 관리할 수도 있습니다. 하지만 그것보다는 자동화하는 것이 더 좋은 선택일 것 입니다. MySQL 이벤트 스케줄러 를 사용해서 원하는 작업을 주기적으로 실행할 수 있습니다.

MySQL 이벤트 스케줄러

MySQL 이벤트 스케줄러는 원하는 작업을 지정된 규칙에 따라 실행할 수 있는 기능입니다. 자세한 내용은 다음의 링크에서 확인하실 수 있습니다.

https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html

새벽 2시에 특정 프로시저를 수행하는 이벤트 생성 소스는 다음과 같습니다.

CREATE EVENT `system_log_delete_event`
	ON SCHEDULE
		EVERY '2' DAY_HOUR STARTS '2020-07-17 11:46:26'
	ON COMPLETION PRESERVE
	ENABLE
	COMMENT '30일 지난 로그 자료 삭제'
	DO call system_log_delete()

핵심은 스케줄과 수행할 명령을 지정하는 부분 입니다. 위 소스에서는 매일 2시에 system_log_delete 프로시저를 호출하도록 설정했습니다.

자세한 생성 문법은 다음 링크를 참조하시면 됩니다.

https://dev.mysql.com/doc/refman/5.7/en/create-event.html

시작과 끝을 지정할 수 있고 끝나면 이벤트 자체를 삭제할 수 도 있습니다. 만일 이벤트 스케줄러가 실행되지 않는다면 SET GLOBAL event_scheduler = ON; 명령을 수행하면 됩니다.

이번글에서는 MySQL 이벤트 스케줄러에 대해 알아보았습니다.