본문 바로가기

분류 전체보기239

[안드로이드] - Android Compatibility (앱 호환성) 앱 호환성 앱이 플랫폼의 특정 버전(일반적으로 최신 버전)에서 올바르게 실행 버전마다 개인 정보 보호와 보안을 향상하는 필수 변경사항과 OS 전반적인 사용자 환경을 개선하는 변경사항 구현을 포함한다. 플랫폼 동작 변경사항 유형 앱은 새 플랫폼 버전에서 실행될 때 두 가지 유형의 변경사항으로 영향을 받을 수 있다. 모든 앱의 변경사항 이러한 변경사항은 앱의 targetSdkVersion 과 관계없이 변경사항이 적용된 버전의 Android 에서 실행되는 모든 앱에 영향을 준다. 새로운 Android 버전이 출시될 때마다, 개발자 프리뷰 및 베타 버전으로 사전에 이러한 변경사항에 관해 앱 호환성을 테스트 해야한다. Pixel 및 다른 기기의 업데이트는 새로운 Android 버전이 Android 오픈 소스 프로.. 2022. 7. 18.
[Kotlin IN ACTION] - Kotlin 함수 정의와 호출(확장함수) 코틀린 컬렉션 (List, Set, Map) val list = arrayListOf(1, 7, 53) val set = hashSetOf(1, 7, 20) val map = hashMapOf(1 to "one", 2 to "seven", 3 to "fifty-three") 위와 같이 Java 라는 언어와 비슷한 방법으로 List, Set, Map을 만들 수 있다. Map 자료구조만 생김새가 좀 다르게 생겼다. 여기서 to 가 언어가 제공하는 특별한 키워드가 아니라 일반 함수라는 점에 유의해야 한다. 호출부분 println(list.javaClass) println(set.javaClass) println(map.javaClass) 출력부분 class java.util.ArrayList class jav.. 2022. 7. 18.
[프로그래머스 *Java] - 배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한 시간 : 1시간 간만에 그래프 문제를 풀어서 그런지, 그냥 공부하듯이 문제를 푼 거 같다. 이 문제는 그래프 문제에서 다익스트라, 플로이드 와샬 알고리즘을 이용해서 풀수 있었다. 플로이드 와샬 알고리즘을 접해본 적이 없어, 관련 알고리즘을 찾아보며 공부한 뒤 문제에 적용해서 문제를 풀었다. 알고리즘 기법 Flow 1. 초기 세팅 해주기. (0, INF) 2. Input 값(양방향)으로 .. 2022. 7. 16.
[알고리즘] - 플로이드-와샬 알고리즘 그래프에서 정점끼리의 최단 경로를 구하는 방법은 여러가지가 있다. 하나의 정점에서 다른 하나의 정점까지의 최단 경로를 구하는 문제 하나의 정점에서 다른 모든 정점까지의 최단 경로를 구하는 문제 하나의 목적지로 가는 모든 정점까지의 최단 경로를 구하는 문제 모든 최단 경로를 구하는 문제 (플로이드-와샬) 플로이드-와샬(Floyd-Warshall Algorithm) 플로이드 와샬 알고리즘은 동적 계획법(DP)의 한예로, 로버트 플로이드가 1962년에 발표했다. 이 알고리즘의 삼중 for 반복문의 공식은 Peter Ingerman 이 설명했다. 변의 가중치가 음수 또는 양수인 (음수 사이클이 없는) 가중 그래프에서 최단 경로들을 찾는 알고리즘이다. 알고리즘을 한 번 수행하면, 모든 정점 쌍간의 최단 경로의 길.. 2022. 7. 16.
[프로그래머스 *Java] - 괄호 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 40분 이내 시간 내에 푼 문제입니다. 로직은 전체적으로 두 가지로 나눌 수 있었습니다. 1. 왼쪽으로 shift 하면서 shift 한 값을 다시 문자열 끝에 붙여주는 작업, 2. shift 문자열을 가지고 올바른 괄호인지 판별 괄호 종류가 총 세 가지라, 괄호 쌍을 맞추게 된 건 집어 넣지 않고 pop() 하는 과정이 있는데, 그 부분은 HashMap 자료구조를 이용해서 괄호 .. 2022. 7. 15.
[안드로이드] - Android Architecture (안드로이드 아키텍처) 일반 아키텍처 원칙 애플리케이션 데이터와 상태를 저장하는 앱 구성요소를 사용할 수 있다면, 앱을 대신 어떻게 설계를 해야할까? 안드로이드 앱은 크기가 커지기 때문에 앱을 확장하고 앱의 견고성을 높이며 앱을 더 쉽게 테스트할 수 있도록 아키텍처를 정의하는 것이 중요하다. 앱 아키택처는 앱의 부분과 그 각 부분에 필요한 기능 간의 경계를 정의한다. 관심사 분리 Activity 또는 Fragment 에 모든 코드를 작성하는 실수는 흔히 일어난다. 이러한 UI 기반의 클래스는 UI 및 운영체제 상호작용을 처리하는 로직만 포함해야 한다. 이러한 클래스를 최대한 가볍게 유지하여 컴포넌트 생명주기와 관련된 많은 문제를 피하고, 그러한 클래스의 테스트 가능성을 개선할 수 있다. Activity 또는 Fragment 구.. 2022. 7. 15.
[안드로이드] - Android APK(Android Package Kit) APK APK 또는 Android Package Kit 이라고 불린다. Google의 Android OS에 애플리케이션을 배포하는 데 사용되는 Android 패키지 파일의 확장이다. 소프트웨어 실처에 사용되는 Window OS의 .exe 파일과 같다. APK 파일에는 리소스 및 Manifest 에서 애플리케이션의 컴파일된 코드에 이르기까지 모든 데이터가 포함된다. Play Store 에서 우리는 보통 APK라는 단어를 몰라도 애플리케이션을 다운 받는다. Android 시스템 Background 에서 앱 설치 프로세스를 처리하기 때문이다. 2022. 7. 15.
[안드로이드] - Android Main Thread & Handler 안드로이드 애플리케이션이 실행되면 안드로이드 시스템은 하나의 실행 스레드로 애플리케이션의 프로세스를 실행한다. 하지만, 애플리케이션의 구성요소가 생성될 때도 별도의 스레드가 생성되는 것은 아니다. 구성요소가 생성될 때에도 앞서 애플리케이션 실행될 때 실행된 스레드에서 실행된다. 이 스레드를 Main Thread 라고 한다. 안드로이드 시스템에 의해 생성된 Main Thread 는 화면 구성에 관한 역할을 담당한다. 예를 들어 UI도구 키트 구성 요소(TextView, EditText, Button, 등)를 생성과 조작할 때 움직이는 스레드가 Main Thread 이다. 그래서, Main Thread 를 UI Thread 라고도 한다. Main Thread 화면의 UI를 그리는 처리 담당을 한다. UI와 .. 2022. 7. 15.