KR20140117061A - 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법 - Google Patents

싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법 Download PDF

Info

Publication number
KR20140117061A
KR20140117061A KR1020130031924A KR20130031924A KR20140117061A KR 20140117061 A KR20140117061 A KR 20140117061A KR 1020130031924 A KR1020130031924 A KR 1020130031924A KR 20130031924 A KR20130031924 A KR 20130031924A KR 20140117061 A KR20140117061 A KR 20140117061A
Authority
KR
South Korea
Prior art keywords
data
instance
class
command
executing
Prior art date
Application number
KR1020130031924A
Other languages
English (en)
Other versions
KR101474115B1 (ko
Inventor
이정민
이진
김정선
Original Assignee
한양대학교 에리카산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 에리카산학협력단 filed Critical 한양대학교 에리카산학협력단
Priority to KR20130031924A priority Critical patent/KR101474115B1/ko
Publication of KR20140117061A publication Critical patent/KR20140117061A/ko
Application granted granted Critical
Publication of KR101474115B1 publication Critical patent/KR101474115B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법이 개시된다. 그 방법은 데이터베이스 클레스가 액티비티의 데이터 저장 명령을 수신하는 단계, 상기 데이터베이스 클레스에 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재하는지 판단하는 단계, 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재하는 경우, 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장하는 단계 및 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재 하지 않는 경우, 상기 데이터 저장 명령을 수행하기 위한 새로운 인스턴스를 생성하고, 상기 새로운 인스턴스를 이용하여 데이터를 저장하는 단계를 포함한다.

Description

싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법{METHOD OF MANAGING APPLICATION DATA FLOW USING SINGLETON PATTERN}
아래 실시예들은 안드로이드 플랫폼에 있어서 어플리케이션의 데이터 흐름 관리 방법에 관한 것이다.
스마트폰이 대중화 되면서 자신만의 어플리케이션 개발에 관심을 가지는 사용자가 늘어나고 있다. 어플리케이션 개발을 하다 보면, 다수의 액티비티에서 공통적으로 사용하는 데이터를 하나의 액티비티에서 다른 액티비티로 전달해야 하는 경우가 발생한다. 이 경우, 안드로이드의 인텐트 클래스를 이용해 데이터를 전달하는 방법은 같은 데이터에 대해 반복적인 작업을 해주어야 하기 때문에 번거롭고 복잡하다.
본 발명의 실시예들은 싱글톤 패턴을 이용하여 데이터를 클래스로 정의한다. 싱글톤 패턴이란, 어떤 클래스의 인스턴스는 오직 하나임을 보장하며, 다른 클래스들이 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 패턴이다. 싱글톤 패턴을 이용할 경우, 다수의 액티비티가 클레스로 정의된 데이터를 공유하기 때문에 효율적인 데이터 관리가 가능하다.
본 발명의 실시예에 따른 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 데이터베이스 클레스가 액티비티의 데이터 저장 명령을 수신하는 단계; 상기 데이터베이스 클레스에 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재하는지 판단하는 단계; 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재하는 경우, 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장하는 단계; 및 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재 하지 않는 경우, 상기 데이터 저장 명령을 수행하기 위한 새로운 인스턴스를 생성하고, 상기 새로운 인스턴스를 이용하여 데이터를 저장하는 단계를 포함한다.
상기 저장 명령을 수행하기 위한 인스턴스는 다른 클래스가 접근 할 수 있지만 상기 다른 클래스가 직접 생성할 수 없는 것일 수 있다.
싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 복수의 스레드가 동시에 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장하려고 하는 경우, 어느 하나의 스레드만이 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장할 수 있도록 처리하는 단계; 및 상기 어느 하나의 스레드가 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장 한 후에 다른 하나의 스레드가 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장할 수 있도록 처리하는 단계를 더 포함할 수 있다.
상기 데이터베이스 클레스에 데이터를 저장한 액티비티들로 구성된 어플리케이션의 종료 시, 상기 데이터베이스 클레스에 저장된 데이터를 제거하는 단계를 더 포함할 수 있다.
싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 상기 액티비티의 데이터 저장 명령 중 일부분을 인텐트 클래스 통해 수행하는 단계를 더 포함할 수 있다.
싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 사용자 인터페이스를 통해 상기 액티비티의 데이터 저장 명령의 수행 방식을 제어하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 데이터베이스 클레스가 액티비티의 데이터 로드 명령을 수신하는 단계; 및 상기 데이터 로드 명령에 대응하는 데이터를 로드할 때 이용했던 인스턴스를 이용하여 데이터를 로드하는 단계를 포함한다.
상기 로드 명령을 수행하기 위한 인스턴스는 다른 클래스가 접근 할 수 있지만 상기 다른 클래스가 직접 생성할 수 없는 것일 수 있다.
싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 복수의 스레드가 동시에 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드하려고 하는 경우, 어느 하나의 스레드만이 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드할 수 있도록 처리하는 단계; 및 상기 어느 하나의 스레드가 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드 한 후에 다른 하나의 스레드가 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드할 수 있도록 처리하는 단계를 더 포함할 수 있다.
싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 상기 액티비티의 데이터 로드 명령 중 일부분을 인텐트 클래스 통해 수행하는 단계를 더 포함할 수 있다.
싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 사용자 인터페이스를 통해 상기 액티비티의 데이터 로드 명령의 수행 방식을 제어하는 단계를 더 포함할 수 있다.
본 발명의 실시예들은 싱글톤 패턴을 이용하여 데이터를 클래스로 정의한다. 싱글톤 패턴이란, 어떤 클래스의 인스턴스는 오직 하나임을 보장하며, 다른 클래스들이 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 패턴이다. 싱글톤 패턴을 이용할 경우, 다수의 액티비티가 클레스로 정의된 데이터를 공유하기 때문에 효율적인 데이터 관리가 가능하다.
도 1은 인텐트를 통한 액티비티간 데이터 전달 과정을 나타낸 도면이다.
도 2는 싱글톤 패턴을 UML로 나타낸 도면이다.
도 3은 안드로이드 어플리케이션 내에서 쓰일 데이터베이스를 싱글톤 패턴을 적용해 클래스로 생성하기 위한 소스 코드이다.
도 4는 Database에 데이터를 저장, 로드하기 위한 소스 코드이다.
도 5는 두 개 이상의 스레드가 동시에 생성 메소드를 사용하려고 하는 경우 하나의 스레드만이 인스턴스를 생성할 수 있게 하는 소스 코드이다.
도 6은 액티비티들이 싱글톤 패턴을 이용하여 데이터를 공유하는 것을 나타낸 도면이다.
도 7은 싱글톤 클래스 로드시 바로 객체가 생성되는 싱글톤 클래스의 소스 코드이다.
도 8은 싱글톤 클래스 로드시 객체를 생성하지 않고, 메소드 호출로 생성하는 싱글톤 클래스의 소스 코드이다.
도 9는 싱글톤 클래스 로드시 바로 객체가 생성되는 소스 코드와, 싱글톤 클래스 로드시 객체를 생성하지 않고, 메소드 호출로 생성하는 소스 코드의 장점을 조합한 싱글톤 클래스의 소스 코드이다.
도 10은 내부 클래스에서 객체가 생성되도록 한 싱글톤 클래스의 소스 코드이다.
도 11은 단일의 인스턴스를 유지하기 위한 판단 과정을 나타낸 플로우 차트이다.
도 12는 본 발명의 일실시예에 따른 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 시스템을 나타낸 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
스마트폰이 대중화 되면서 어플리케이션의 수요와 공급이 증가하고 있고, 자신만의 어플리케이션 개발에 관심을 가지는 사용자 또한 늘어나고 있다. 특히 안드로이드 스마트폰의 경우 관련 정보가 방대하고 찾기 쉬우며 무료로 제공되기 때문에 많은 개발자들이 직접 어플리케이션을 제작하고 있다.
어플리케이션 개발을 하다 보면, 여러 액티비티에서 공통적으로 사용하는 데이터를 하나의 액티비티에서 다른 액티비티로 데이터를 전달해야 하는 경우가 발생한다. 개발 경험이 부족한 초보 개발자나 비전공자의 경우 이런 부분에 있어서 데이터 흐름을 관리하는데 불편함을 겪고 있다.
본 발명은 개발자들이 쉽게 데이터 흐름을 관리할 수 있도록, 디자인 패턴 중 하나인 싱글톤(Singleton) 패턴을 이용하여, 데이터를 하나의 클래스로 관리함으로써, 어느 액티비티에서도 데이터를 쉽게 생성 및 수정할 수 있는 데이터 관리 기법을 제시한다.
액티비티란 사용자가 이용하는 활성화된 화면을 말하고, 여러 개의 액티비티들은 어플리케이션을 형성한다. 안드로이드에서 액티비티들 사이의의 데이터 전달은 인텐트(Intent) 클래스를 통해 수행된다.
도 1은 인텐트를 통한 액티비티간 데이터 전달 과정을 나타낸 도면이다.
도 1을 참조하면, 먼저 액티비티에서 서브 액티비티로 넘겨주는 인텐트를 생성(110)하고, startActivityForResult 메소드를 이용해 서브 액티비티를 호출(120)하면서 대응하는 파라미터를 포함하는 인텐트를 전달한다. 그리고 서브 액티비티에서 그 인텐트를 호출(130)해 데이터를 저장한 뒤 setResult 메소드를 이용해 인텐트를 리턴(140)한다. 그리고 onActivityResult 메소드를 이용해 인텐트를 통해 데이터를 받은 뒤 액티비티를 수행(150)한다.
싱글톤 패턴이란, 어떤 클래스의 인스턴스는 오직 하나임을 보장하며, 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 패턴이다.
도 2는 싱글톤 패턴을 UML로 나타낸 도면이다.
도 2를 참조하면, 먼저 private static으로 Singleton 인스턴스를 선언해 외부에서 접근할 수 없고 static에 올려진 인스턴스는 중복해서 생성되지 않는다는 특징을 이용한다. 그리고 나서 private로 생성자를 선언해 다른 클래스에서 new를 이용해 인스턴스를 생성할 수 없게 만든다. 하지만 이렇게 하게 되면 자기 자신도 사용할 수 없게 되므로, public static으로 모든 곳에서 접근할 수 있고, instance가 null인 경우 새로운 인스턴스를, null이 아닌 경우 기존의 생성되었던 인스턴스를 반환하는 getInstance() 메소드를 생성한다.
여러 액티비티에서 공통적으로 사용하는 데이터의 흐름을 관리할 경우 안드로이드의 인텐트 클래스를 이용해 데이터를 전달하는 방법은 같은 데이터에 대해 반복적인 작업을 계속 해주어야 하기 때문에 다소 번거롭고 복잡한 절차를 가진다. 싱글톤 패턴을 이용해 클래스로 데이터를 정의하게 되면 어떤 액티비티 클래스에서 호출 하더라도 같은 데이터를 가져올 수 있고 수정이 가능하다.
싱글톤 패턴을 적용했을 때 얻어지는 장점은 다음과 같다. 먼저 static이기 때문에 스택 영역에 할당되어 프로그램 종료 시 알아서 제거되고, 해당 인스턴스가 선언되지 않아도 이미 static으로 메모리가 할당되어있어 접근이 가능하다.
도 3은 안드로이드 어플리케이션 내에서 쓰일 데이터베이스를 싱글톤 패턴을 적용해 클래스로 생성하기 위한 소스 코드이다.
도 3을 참조하면, 안드로이드 어플리케이션 내에서 쓰일 데이터베이스를 싱글톤 패턴을 적용해 클래스로 생성한 부분이다. private static으로 Database 클래스의 인스턴스를 생성하였고, 생성자를 private로 선언하여 다른 클래스에서 직접 인스턴스를 생성할 수 없게 하였다. 그리고 생성자 내부에는 이 클래스가 호출되었을 때 동작해야 할 메소드들이 들어있다. 그리고 이 클래스의 인스턴스를 생성하기 위한 전역 메소드가 있어서 인스턴스가 없으면 생성자를 호출해주고 있다면 기존의 인스턴스를 리턴 해주게 된다.
도 4는 Database에 데이터를 저장, 로드하기 위한 소스 코드이다.
도 4를 참조하면, 다른 클래스에서 Database에 있는 데이터를 생성하고 생성된 데이터를 또 다른 클래스에서 사용할 수 있다. LoadingActivity라는 클래스는 실질적으로 프로그램을 로드하면서 데이터베이스를 생성한다(410). PredictiveMessageApp이라는 클래스에서는 생성된 데이터베이스를 이용해 데이터를 받아온다(420).
매번 인텐트를 생성해 액티비티간의 데이터를 넘겨주는 것과 달리, 한 클래스를 생성해 모든 부분에서 사용할 수 있으므로 더 간단하고 편리하다.
반면에 전역적으로 여러 군데를 참조하여 싱글톤 패턴을 많이 사용하게 되면 전역변수가 증가하는 것과 같이 프로그램의 복잡도가 증가하게 된다. 두 스레드가 동시에 접근하게 되면 객체를 두 개 생성하며, 그 중 하나는 버려지기 때문에, 다중 스레드 환경에는 적합하지 않다.
각각의 액티비티에서 생성되는 데이터를 전달해야 할 경우에는 싱글톤 패턴을 적용하는 것이 메모리나 프로그램 복잡도 측면에서 불리하다. 싱글톤 패턴을 적용했을 때의 장단점과 어떤 상황에서 적용하는 것이 적절한지 파악하여, 싱글톤 패턴을 이용한 데이터 관리 방법을 앞서 언급한 intent를 이용한 데이터 관리 방법과 혼용하여 사용할 수 있다. 싱글톤 패턴을 이용한 데이터 관리와 intent를 이용한 데이터 관리를 혼용하는 경우, 미리 설정된 조건에 따라 어떤 방법을 이용할지 판단하거나, 사용자 인터페이스를 통해 어떤 방법을 이용할지 사용자가 직접 설정할 수 있다.
도 5는 두 개 이상의 스레드가 동시에 생성 메소드를 사용하려고 하는 경우 하나의 스레드만이 인스턴스를 생성할 수 있게 하는 소스 코드이다.
도 5를 참조하면, 스레드 환경에서 사용할 경우, 동기화가 필요하기 때문에, synchorinized를 이용해 객체를 얻어올 수 있는 메소드를 선언한다.
도 6은 액티비티들이 싱글톤 패턴을 이용하여 데이터를 공유하는 것을 나타낸 도면이다.
도 6을 참조하면, MainActivity(610)와 SubActivity들(620)이 각각 Singleton(630)에 데이터를 저장, 로드함으로써, 데이터를 공유하는 것을 알 수 있다.
도 7은 싱글톤 클래스 로드시 바로 객체가 생성되는 싱글톤 클래스의 소스 코드이다.
도 7을 참조하면, 액티비티가 싱글톤 클래스를 로드하면 바로 객체가 생성되도록 코딩했다.
도 8은 싱글톤 클래스 로드시 객체를 생성하지 않고, 메소드 호출로 생성하는 싱글톤 클래스의 소스 코드이다.
도 8을 참조하면, 액티비티가 싱글톤 클래스를 로드해도 바로 객체가 생성되지 않고, 매소드를 호출하면 객체가 생성되도록 코딩했다.
도 9는 싱글톤 클래스 로드시 바로 객체가 생성되는 소스 코드와, 싱글톤 클래스 로드시 객체를 생성하지 않고, 메소드 호출로 생성하는 소스 코드의 장점을 조합한 싱글톤 클래스의 소스 코드이다.
도 9를 참조하면 싱글톤 클래스 로드시 바로 객체가 생성되는 소스 코드와 싱글톤 클래스 로드시 객체를 생성하지 않고, 메소드 호출로 생성하는 소스 코드를 조합하여 코딩했다.
도 10은 내부 클래스에서 객체가 생성되도록 한 싱글톤 클래스의 소스 코드이다.
도 10을 참조하면, Singleton 클래스 내부에 SingletonHolder 클래스를 선언하여, 내부 클래스에서 객체를 생성하도록 코딩했다.
도 11은 단일의 인스턴스를 유지하기 위한 판단 과정을 나타낸 플로우 차트이다.
도 11을 참조하면, 본 발명의 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 데이터베이스 클래스가 데이터 저장 명령을 수신한다(1110).
데이터베이스 클래스가 데이터 저장 명령을 수신하는 단계(1110)는 액티비티가 데이터를 저장하기 위해 전송한 명령을 데이터베이스 클래스가 수신하는 단계이다. 싱글톤 클래스 로드 시 바로 인스턴스가 생성되거나, 싱글톤 클래스가 로드 되어도 바로 인스턴스가 생성되지 않고 별도의 호출로 생성될 수 있다.
본 발명의 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 데이터를 저장하기 위한 인스턴스가 존재하는지 판단한다(1120).
데이터를 저장하기 위한 인스턴스가 존재하는지 판단하는 단계(1120)는 싱글톤 클래스 로드 시, 또는 별도의 호출에 의하여 데이터베이스 클래스의 인스턴스가 생성되었는지 판단하는 단계일 수 있다. 인스턴스가 null에 해당하는지 판단하여 본 판단 과정을 수행 할 수 있다.
싱글톤 클래스의 인스턴스는 다른 클래스에서 접근 가능하지만, 다른 클래스를 통해 직접 생성될 수는 없는 인스턴스이다.
본 발명의 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 인스턴스가 존재하는 것으로 판단된 경우, 인스턴스를 이용하여 데이터를 저장한다(1130).
인스턴스가 존재하는 것으로 판단된 경우, 인스턴스를 이용하여 데이터를 저장하는 단계(1130)는 기존에 생성된 인스턴스를 이용하여 데이터를 저장하는 단계일 수 있다. 싱글톤 클래스 로드 시, 또는 별도의 호출에 의하여 데이터베이스 클래스의 인스턴스가 이미 생성된 경우, 본 인스턴스를 이용하여 데이터를 저장한다.
본 발명의 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법은 인스턴스가 존재하지 않는 것으로 판단된 경우, 새로운 인스턴스를 생성한 뒤(1140), 인스턴스를 이용하여 데이터를 저장한다(1130).
인스턴스가 존재하지 않는 것으로 판단된 경우, 새로운 인스턴스를 생성한 뒤(1140), 인스턴스를 이용하여 데이터를 저장하는 단계(1130)는 새로운 인스턴스를 생성하여 데이터를 저장하는 단계일 수 있다. 싱글톤 클래스 로드 시, 또는 별도의 호출에 의하여 데이터베이스 클래스의 인스턴스가 생성되지 않은 경우에, 새로운 인스턴스를 생성하고, 본 인스턴스를 이용하여 데이터를 저장한다.
액티비티가 데이터를 로드 하는 경우에는, 데이터를 저장할 때 이용된 인스턴스를 이용하여 데이터 로드에 이용할 수 있다. 상기 방법에 의하여 단일의 인스턴스 유지가 실현될 수 있다. 데이터 로드 시 인스턴스를 이용한 데이터 관리 방법은 데이터 저장 시 데이터 관리 방법이 적용될 수 있으므로 보다 상세한 설명은 생략한다.
도 12는 본 발명의 일실시예에 따른 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 시스템을 나타낸 블록도이다.
도 12를 참조하면, 시스템은 안드로이드 단말기(1200)를 통해 실시되며, 안드로이드 단말기(1200)는 표시부(1210), 처리부(1220), 입력부(1230), 저장부(1240), 통신부(1250)를 포함한다.
표시부(1210)는 다양한 종류, 사이즈를 갖는 디스플레이 패널을 포함할 수 있으며, 안드로이드 단말기(1200)에서 사용자를 위한 유저 인터페이스를 제공한다. 표시부(910)에는 어플리케이션 데이터 흐름 관리를 위해 필요한 정보들이 다양한 환경으로 제공될 수 있다.
처리부(1220)는 본 발명의 실시를 위해 필요한 연산을 처리하는 다양한 프로세서가 포함할 수 있다. 처리부(920)는 어플리케이션 데이터 흐름 관리를 위해 필요한 연산이나 데이터를 처리한다.
입력부(1230)는 어플리케이션의 사용자가 데이터를 입력하거나 유저 인터페이스를 제어하기 위한 다양한 장치가 포함할 수 있다. 키보드, 마우스, 터치 패드, 디지털 펜 등의 입력장치가 포함될 수 있다.
저장부(1240)는 하드 디스크와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체 및 롬(ROM), 램(RAM), 플래시 메모리 등의 저장 장치가 포함될 수 있다. 안드로이드 플랫폼의 각종 클래스, 메소드, 어플리케이션 등이 저장된다.
통신부(1250)는 컴퓨터 또는 스마트 기기간의 통신을 위한 LAN/WAN, 유무선, RFID, NFC 등을 포함하며, 데이터의 송수신이나 업데이트 등을 수행할 수 있다.
도 1 내지 도 11를 통해 설명된 내용은 도 12에 도시된 각 유닛에 그대로 적용될 수 있으므로, 도 15에 대한 보다 상세한 설명은 생략한다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (11)

  1. 데이터베이스 클레스가 액티비티의 데이터 저장 명령을 수신하는 단계;
    상기 데이터베이스 클레스에 상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재하는지 판단하는 단계;
    상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재하는 경우, 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장하는 단계; 및
    상기 데이터 저장 명령을 수행하기 위한 인스턴스가 존재 하지 않는 경우, 상기 데이터 저장 명령을 수행하기 위한 새로운 인스턴스를 생성하고, 상기 새로운 인스턴스를 이용하여 데이터를 저장하는 단계
    를 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  2. 제1항에 있어서,
    저장 명령을 수행하기 위한 인스턴스는 다른 클래스가 접근 할 수 있지만 상기 다른 클래스가 직접 생성할 수 없는 것인 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  3. 제1항에 있어서,
    복수의 스레드가 동시에 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장하려고 하는 경우, 어느 하나의 스레드만이 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장할 수 있도록 처리하는 단계; 및
    상기 어느 하나의 스레드가 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장 한 후에 다른 하나의 스레드가 상기 데이터 저장 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 저장할 수 있도록 처리하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  4. 제1항에 있어서,
    상기 데이터베이스 클레스에 데이터를 저장한 액티비티들로 구성된 어플리케이션의 종료 시, 상기 데이터베이스 클레스에 저장된 데이터를 제거하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  5. 제1항에 있어서,
    상기 액티비티의 데이터 저장 명령 중 일부분을 인텐트 클래스 통해 수행하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  6. 제5항에 있어서,
    사용자 인터페이스를 통해 상기 액티비티의 데이터 저장 명령의 수행 방식을 제어하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  7. 데이터베이스 클레스가 액티비티의 데이터 로드 명령을 수신하는 단계; 및
    상기 데이터 로드 명령에 대응하는 데이터를 저장할 때 이용했던 인스턴스를 이용하여 데이터를 로드하는 단계
    를 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  8. 제7항에 있어서,
    로드 명령을 수행하기 위한 인스턴스는 다른 클래스가 접근 할 수 있지만 상기 다른 클래스가 직접 생성할 수 없는 것인 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  9. 제7항에 있어서,
    복수의 스레드가 동시에 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드하려고 하는 경우, 어느 하나의 스레드만이 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드할 수 있도록 처리하는 단계; 및
    상기 어느 하나의 스레드가 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드 한 후에 다른 하나의 스레드가 상기 데이터 로드 명령을 수행하기 위한 인스턴스를 이용하여 데이터를 로드할 수 있도록 처리하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  10. 제7항에 있어서,
    상기 액티비티의 데이터 로드 명령 중 일부분을 인텐트 클래스 통해 수행하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
  11. 제10항에 있어서,
    사용자 인터페이스를 통해 상기 액티비티의 데이터 로드 명령의 수행 방식을 제어하는 단계
    를 더 포함하는 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법.
KR20130031924A 2013-03-26 2013-03-26 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법 KR101474115B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130031924A KR101474115B1 (ko) 2013-03-26 2013-03-26 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130031924A KR101474115B1 (ko) 2013-03-26 2013-03-26 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법

Publications (2)

Publication Number Publication Date
KR20140117061A true KR20140117061A (ko) 2014-10-07
KR101474115B1 KR101474115B1 (ko) 2015-01-02

Family

ID=51990528

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130031924A KR101474115B1 (ko) 2013-03-26 2013-03-26 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법

Country Status (1)

Country Link
KR (1) KR101474115B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169110B2 (en) * 2016-03-25 2019-01-01 Google Llc Navigation application programming interface

Also Published As

Publication number Publication date
KR101474115B1 (ko) 2015-01-02

Similar Documents

Publication Publication Date Title
US9946525B2 (en) Extracting source code
EP3537286A1 (en) Configuration for application using microservices
US9658890B2 (en) Runtime agnostic representation of user code for execution with selected execution runtime
US8418190B2 (en) Responsive user interface with background application logic for working on an object
US20120324454A1 (en) Control Flow Graph Driven Operating System
US20140325432A1 (en) Second screen view with multitasking
US20170192761A1 (en) Dynamic data and compute resource elasticity
US10853049B2 (en) Methods for enabling a computer to migrate microservices and to perform microservice templating
CN105183547A (zh) 一种用户界面的任务调度方法和装置
US20120089969A1 (en) Declarative programming model with a native programming language
CN108431768A (zh) 应用特征的受控部署
US20070143335A1 (en) Partition-based undo of partitioned object graph
CN101091166A (zh) 保存多个执行上下文的方法和装置
Min et al. A UML metamodel for smart device application modeling based on Windows Phone 7 platform
US9553761B2 (en) Dynamic server to server configuration and initialization
US10002401B2 (en) Method and apparatus for efficient processing of graphics commands
US8433830B2 (en) Systems and methods for using a shared buffer construct in performance of concurrent data-driven tasks
KR101474115B1 (ko) 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법
CN113313353A (zh) 一种持续交付流水线管理方法及装置
CN109462663A (zh) 一种限制系统资源占用的方法、语音交互系统及存储介质
US20230289648A1 (en) Generating validated quantum function invocations
US10558639B2 (en) Objects comparison manager
CN110908573B (zh) 算法模型训练方法、装置、设备及存储介质
EP2813944A1 (en) Versioning of electronic data in software management system
JP2011516970A (ja) オペレーティング・システム高速実行コマンド

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee