이전 포스팅https://jinudmjournal.tistory.com/157 [Room 오류 해결] java.lang.IllegalStateException: Room cannot verify the data integrity.문제 상황 룸 데이터베이스를 활용하는 중에 아래와 같은 오류가 발생하였습니다. java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number.jinudmjournal.tistory.com이전에 Room Migration 관련해서 오류를 해결한 내용을 포스팅하였습니다.매번 기능 구현에 급..
Broadcast Receiver 안드로이드 4대 컴포넌트 중 하나로, 각종 앱에서 발생하는 이벤트를 캐치 후 리시버로 처리할 수 있도록 도와주는 컴포넌트입니다.전화, 문자 등의 행위가 왔다는 알림을 받고 방송을 해주는 기능입니다.Intent를 통해 발송하게 되고, 발송된 방송을 Broadcast Receiver 객체가 수신하게 됩니다.안드로이드 기기 내부에서는 각 상황에 따라 미리 정의된 발송을 하며, 해당 방송을 수신하여 적절하게 처리할 수 있습니다.https://developer.android.com/develop/background-work/services/alarms/schedule?hl=ko#boot 알람 예약 | Background work | Android Developers이 페이..
투 포인터두 개의 포인터를 사용하여 문자열이나 정렬 된 배열에서 원하는 값을 찾거나 구간 합을 구할 때 사용하는 알고리즘입니다.병합정렬(merge sort)의 counquer 영역(인접한 부분배열끼리 정렬하여 합침) 기초가 되는 알고리즘입니다.리스트에 순차적으로 접근해야 할 때, 두 개의 점의 위치를 기록하면서 처리합니다.슬라이딩 윈도우와 유사하나, 고정 된 구간이 아닌 가변적인 구간을 탐색한다는 차이가 있습니다. c.f> 슬라이딩 윈도우?투 포인터처럼 구간을 흝으면서 지나간다는 공통점이 있으나, 슬라이딩 윈도우는 어느 순간에도 구간의 넓이가 동일하다는 차이가 있습니다. 투 포인터 적용하기두 수의 합이 target을 만족하는 두 수를 찾는 문제가 주어졌을 때를 가정하여 투 포인터를 적용해 보겠습니다.ta..
4장시스템이 복구할 수 있는 오류와 복구할 수 없는 오류를 구분한다.신속하게 실패하고 분명하게 실패한다오류를 전달하기 위한 다양한 기법과 선택을 위한 고려 사항복구 가능성복구 가능한 오류네트워크 오류자신의 코드가 의존하는 서비스에 연결하지 못한 경우 사용자가 몇 초 기다렸다가 다시 시도하거나, 네트워크 연결을 확인하도록 요청할 수 있다.중요하지 않은 작업 오류서비스 사용에 대한 어떤 통계를 기록하는 부분에서 오류가 발생한다면 실행을 계속해도 무방하다.복구할 수없는 오류오류가 발생하고 시스템이 오류를 복구할 수 있는 합리적인 방법이 없는 경우코드와 함께 추가되어야 하는 리소스가 없다.다음 예와 같이 어떤 코드가 다른 코드를 잘못 사용한다.잘못된 입력 인수로 호출일부 필요한 상태를 사전에 초기화하지 않음신속..
3장 다른 개발자와 코드 계약자신의 코드와 다른 개발자의 코드개발자들의 코드는 서로 의존하게 된다.여러 가지 다른 기능을 위해 작성한 코드가 재사용되고 있음을 알 수 있다.요구사항이 항상 변한다는 점을 인지해야 한다.고품질 코드를 작성할 때 가장 중요한 고려 사항 중 하나는 다른 개발자가 변경하거나 코드와 상호작용할 때 발생할 수 있는 문제를 파악하는 것이다.아래 3가지를 고려하는 것이 유용하다자신에게 명백하다고 해서 다른 사람에게도 명백한 것은 아니다.다른 개발자는 무의식중에 여러분의 코드를 망가뜨릴 수 있다.시간이 지남에 따라 자신의 코드를 기억하지 못한다.자신에게 분명하다고 해서 다른 사람에게도 분명한 것은 아니다코드가 어떻게 사용되어야 하는지, 무엇을 하는지, 왜 그 일을 하고 잇는지를 설명하는 ..
Minimum Spanning Tree : 최소 신장 트리사용된 간선들의 가중치 합이 최소인 트리를 뜻합니다.그래프 내의 모든 정점을 포함하는 트리입니다.최소 신장 트리라고 하며, 그래프의 최소 연결 부분 그래프입니다.간선의 수가 가장 적음n개의 정점을 가지는 그래프는 (n-1)개의 간선으로 연결 됨그래프에서 일부 간선을 선택해서 만드는 트리입니다.최소 신장 트리의 특징DFS, BFS를 사용하여 그래프에서 신장 트리를 탐색할 수 있습니다.하나의 그래프에는 많은 신장 트리가 존재하며, 그 중 가장 작은 가중치의 트리가 최소 신장 트리입니다.사이클이 포함되어서는 안됩니다.이전의 신장 트리와는 상관없이 무조건 최소 간선만을 선택합니다.최소 신장 트리의 사용 사례도로 건설, 전기 회로, 통신, 배관 등 최소의 ..