336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

은행 계좌를 어릴적에 만들고, 대학교가서 만들고, 군대가서 만들고, 취업해서 만들고.... 


저렇게 만든 계좌가 다 동일한 은행이면 좋겠지만, 만들때마다 다른 은행에서 만들게되었다. 


잊고있었던 은행계좌도 존재하지만 확인할 방법이 없었다.


이렇게 잊고있었던 비활성 계좌를 조회하고 해지해주고, 만약 잔고가 있다면 이전까지 해주는 서비스가 있다. 



계좌정보통합관리서비스 (http://www.accountinfo.or.kr/)


이용 방법은 간단하다. 홈페이지로 이동하고 공인인증서를 이용해서 로그인하면 아래와 같은 화면을 볼 수 있다. 



여기서 비활동성계좌 있는 은행의 상세조회를 하고, 개좌해지/잔고이전 을 실행하면 된다. 


묵혀있던 1,300원 벌었다. 


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

일반적으로 프로그래밍에서 서비스를 아래와 같이 말 할 수 있다. 


사용자는 모르지만 사용자에게 필요한 기능을 제공하거나, 프로그램에 필요한 기능을 안보이는 곳에서 주기적으로 제공해주는 것


안드로이드 시스템에서 예를 들어, 음악 플레이어 같은 기능을 말할 수 있다. 사용자가 음악을 플레이하고 다른 앱을 구동하여 웹 서핑이라던가 문서 작업을 해도 백그운드에서는 지속적으로 사용자에서 음악을 플레이해주고 있다. 


안드로이드 시스템에서 서비스를 구현하기 위해서는 아래와 같은 절차가 필요하다. 

  1. Service 클래스를 상속받아 새로운 기능을 제공하는 MyService 구현
  2. AndroidManifest.xml 파일에 구현한 MyService 선언
  3. 선언한 MyService 실행


1. Service 클래스를 상속받아 새로운 기능을 제공하는 MyService 구현 


android.app.Service 클래스를 상속받은 MyService 를 구현한다. onBind(...) 메소드에 대한 내용은 다음에 자세히 설명하도록 하겠다. 

안드로이드 서비스를 구현할 때, 아래 안드로이드 서비스 생명주기를 보면 onCreate, onStartCommand, onDestroy의 세 가지 메소드를 생각하여 구현해야 한다. 


  • onCreate(): 서비스를 실행하기 전에 초기화하는 기능을 구현하며, 최초 일회성으로 이미 한번 실행된 상태에서는 다시 호출되지 않는다.
  • onStartCommand(): 서비스가 시작할때 호출되는 메소드로 서비스의 실제 코드를 이곳에 구현하면 된다. 
  • onDestroy(): 서비스가 종료될 때 호출되는 메소드로 서비스가 종료되면 더이상 사용되지 않는 스레드나 리소스를 정리한다.    

여기서 주의해야 할 점이 있는데, 서비스는 기본적으로 메인 스레드에서 동작한다. 서비스가 엑티비티와 상호 작용을 하거나 시간이 오래걸리는 작업을 수행할 경우 해당 서비스때문에 엑티비티가 느려지거나 ANR 에러가 발생할 수 있다. 그러므로 해당 앱의 성능에 영향을 주는것을 방지하기 위하여 새로운 Thread 를 생성하여 시작해야 한다. 


public class MyService extends Service {

	@Override
	public IBinder onBind(Intent intent) {
		throw new UnsupportedOperationException("Not yet implemented");
	}
	
	@Override
	public void onCreate() {
		// 서비스를 실행하기 전에 필요한 초기화를 수행
		super.onCreate();
	}

	@Override
	public void onDestroy() {
        	// 서비스가 종료되면 더이상 사용되지 않는 스레드나 리소드를 정리
        	super.onDestroy();
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		// 해당 서비스가 실제로 제공하는 코드를 구현
		return super.onStartCommand(intent, flags, startId);
	}
}


2. AndroidManifest.xml 파일에 구현한 MyService 선언


위에서 구현한 서비스가 실행하기 위해서는 아래와 같이 매니페스트 파일에 선언되어 있어야 한다. 


	
		
	


3. 선언한 MyService 실행


이렇게 구현되고 선언된 서비스를 실행하는 방법은 다른 Activity와 같이 context 정보를 유지하는 곳에서 아래와 같이 작성하면 MyService 를 실행할 수 있다. 

Intent intent = new Intent(this, MyService.class);
startService(intent);


[참고] https://developer.android.com/guide/components/services.html?hl=ko

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

JAVA 프로그래밍(객체지향프로그래밍)을 하다보면 클래스 및 메소드, 변수에 접근을 제어하기 위하여 public, private, protected 선언을 사용한다. 


그렇다면 이러한 선언에 따른 접근 권한이 어떻게되는지 알아보도록 하겠다. 


  • 접근 제어자
    • public: 모든 클래스에서 접근가능함
    • private: 클래스 내에서만 접근가능함
    • protected: 동일한 패키지에 속하는 클래스에서 접근가능함. 또, 자신을 상속받은 클래스에서 접근가능함.
    • (default): 아무것도 선언하지 않은 상태를 표현하며, 동일한 패키지에 속한 클래스에서만 접근 가능함.