삽입 정렬이란?
- 순차적으로 값을 읽어서 현재 값 이전에 위치한 정렬되어 있는 값들의 적절한 곳으로 삽입하는 정렬이다.
- 현재 값 이전에 위치한 값들은 이미 정렬되어 있으므로, 현재 값이 직전 값보다 크다면 삽입이 일어나지 않는다.
- 성능
- O(n²)
- 정렬되어 있을 수록 성능이 좋다.
- 이미 정렬 되어 있을 경우(최선의 경우) 비교 횟수 : N - 1
- 역순일 경우(최악의 경우) 비교 횟수 : N(N – 1)/2
자세한 내용은 여기로
삽입 정렬이란?
자세한 내용은 여기로
재귀 호출
꼬리재귀
안드로이드에서는 실행되는 어플리케이션의 상태를 시스템에서 직접 관리한다. 이는 대부분의 휴대단말용 OS에서 사용하는 방법으로 독립적인 어플리케이션이 시스템에 의해 관리되지 않을 경우 실행된 어플리케이션이 메모리를 과도하게 점유하거나 화면을 보여주는 권한을 과도하게 가지게 됨으로써 전화기의 원래 기능인 전화 수발신 기능 자체를 사용하지 못하게 될 수도 있기 때문이다.
안드로이드 어플리케이션을 구성하는 구성요소 중 하나인 액티비티(Activity)도 효율적인 메모리 관리를 위해 액티비티가 생성되고 소멸되는 조건인 생명주기(Lifecycle)을 가지고 있다.
액티비티의 상태는 크게 활성, 일시정지, 정지의 3가지로 나눌 수 있다.
활성
일시정지
정지
앱을 만들다 보면 인텐트를 통해 단순히 String, int, boolean 같은 기본 타입 뿐 아니고 커스텀 클래스나 오브젝트를 다른 컴포넌트에 전달해 줘야 할 경우가 많다. 그 경우 단순히 그냥 인텐트에 putExtra() 로는 넣어줄 수가 없다.안드로이드에서는 그런 경우를 위해 자바의 Serialization 개념과 유사한 Parcelable이라는 클래스가 있다.
자세한 내용은 여기로
이전에 올렸던 이클립스 테마 변경 링크는 edit window 부분만 테마가 적용되었는데 다른 window들도 적용되는 테마를 찾았다. MoonRise라는 테마이다. 아래 링크로 ㄱㄱ
낮은 결합도, 높은 결합도응집도
소프트웨어 공학의 전통적인 이론에 따르면, 유지보수성이 높은 소프트웨어는 프로그램의 각 요소들이 결합도는 낮게, 응집도는 높게 구성되어야 한다.
결합도(coupling)란?
소프트웨어 코드의 한 요소가 다른 것과 얼마나 강력하게 연결되어 있는지, 또한 얼마나 의존적인지 나타내는 정도이다. 프로그램의 요소가 결합도가 낮다는 것은 그것이 다른 요소들과 관계를 그다지 맺지 않은 상태를 의미한다.
결합도가 높은 클래스의 문제점
응집도란(cohesion)?
프로그램의 한 요소가 해당 기능을 수행하기 위해 얼마만큼의 연관된 책임과 아이디어가 뭉쳐있는지를 나타내는 정도이다. 일반적으로 프로그램의 한 요소가 특정 목적을 위해 밀접하게 연관된 기능들이 모여서 구현되어 있고, 지나치게 많은 일을 하지 않으면 그것을 응집도가 높다고 표현한다. 응집도가 높으면 프로그램을 쉽게 이해할 수 있으므로 유지보수성이 높아진다.
응집도가 낮은 클래스의 문제점
예)
다른 기능 영역의 메소드들을 다수 포함한 클래스
너무 많은 책임을 짊어진 클래스
응집도가 높은 클래스의 특징
2. Eclipse>Help>Install New Software
3. Work with란에 http://plugins.genymotion.com/eclipse 입력하고 엔터
4. Eclipse의 Genymotion 아이콘을 클릭하여 Genymotion 설치경로 설정