
안드로이드의 4대 컴포넌트 초간단 요약!! TL;DR; - Too Long; Don`t Read; 액티비티(Activity) : UI를 구성하기 위한 컴포넌트 서비스(Service) : UI 없이 백그라운드에서 장시간 수행되는 컴포넌트 콘텐츠 프로바이더(ContentProvider) : 애플리케이션 간 데이터를 공유하기 위한 컴포넌트 브로드캐스트 리시버(BroadcastReceiver) : 이벤트 모델로 수행되는 컴포넌트 액티비티(Activity) 사용자 화면을 제공하는 컴포넌트!! 안드로이드 앱은 클라이언트 측 애플리케이션이므로 화면 구성이 중요하다. 따라서 가장 많이 작성하는 컴포넌트 서비스(Service) 화면과 전혀 상관없이 백그라운드에서 장시간 무언가를 수행할 수 있는 컴포넌트!! 대표적으로 채..

깡쌤의 말에 따르면 앱 개발자 관점에서 안드로이드 플랫폼의 아키텍처를 자세히 이해하거나 응용할 필요는 없다고 한다. 다만 안드로이드 플랫폼이 어떻게 설계되었는지, 앱이 어떤 환경에서 수행되는지 등 상식 수준에서만 알아두면 좋다고 하여 이렇게 간략하게 나마 정리하려고 한다. 안드로이드 플랫폼은 리눅스 커널 기반이다. HAL(Hardware Abstraction Layer)은 자바 API 프레임워크에 하드웨어 기능을 이용하는 표준 인터페이스를 제공한다. 자바 API 프레임워크에서 하드웨어 기기(카메라, 블루투스 등)를 이용하기 위한 코드가 실행되면 내부적으로 HAL의 라이브러리 모듈이 로딩되어 처리된다. 안드로이드 런타임(Android Runtime)은 ART 가상 머신을 이용하여 그 위에 일반 애플리케이션..

이 글은 단순히 책의 내용을 제 입맛에 맞게 요약 정리한 글에 불과합니다. 고로 이 글로 안드로이드를 공부하겠다는 생각은 접어두시는 걸 추천하는 바입니다. 책 좋아요!! 추천합니다!! 1. 안드로이드의 특징 안드로이드는 공개 운영체제인 리눅스 기반이다. 안드로이드 앱 개발은 자바(Java) 및 코틀린(Kotlin)을 이용해 개발한다. 운영체제의 핵심 코드, 라이브러리 코드, 스마트폰에 기본으로 탑재된 구글에서 만든 앱 코드 등 대부분 코드가 오픈되어 있다. 개발자가 만든 앱은 구글 Play 스토어뿐만 아니라 다양한 방법으로 사용자에게 배포될 수 있다. 안드로이드 플랫폼 기반의 스마트폰을 여러 제조업체에서 만들 수 있다. 안드로이드 기반의 모든 애플리케이션은 평등하다는 사상으로 스마트폰에 기본 탑재된 앱과..
코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 처음에 어떻게 풀어가야할지 너무 막막했다. 무엇을 기준으로 정렬을 수행해야 할지 몰랐기 때문이다. 우선 각 숫자의 앞자리 숫자부터 비교해나가야 하는 것은 알 수 있는데 테스트 케이스로 주어진 34, 30, 3의 경우에는 무슨 기준으로 정렬해야 할지 고민하다가 결국 타인의 도움을 빌리기로 했다. [프로그래머스] 가장 큰 수 문제 가장 큰 수 (https://programmers.co.kr/learn/..
코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 처음은 그냥 내장 함수 sorted()를 활용해서 풀어봤다. 하지만 정렬 알고리즘을 직접 구현해보는 것도 좋을 것 같아서 선택 정렬과 삽입 정렬을 구현해보기로 했다. 1. 내장함수 sorted 활용 1 2 3 4 5 6 7 8 def solution(array, commands): answer = [] for command in commands: temp_array = array[command[0]-1:command[1]] temp_array = sorted(temp_array) answer.append(temp_array[co..
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 노란색 사각형의 경우의 수를 모두 고려하고 그 노란 사각형을 갈색 격자로 한 층씩 덮어가는 식으로 구현하였다. 남은 갈색 격자의 수가 정확히 0이라면 answer로 반영한다. 1234567891011121314151617181920212223242526272829303132333435def solution(brown, yellow): answer = [] f..
코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 주어진 카드로 만들수 있는 경우의 수를 고려하기 위해 순열을 활용하였다. 순열을 직접 구현할 수도 있지만 이번에는 편하게 itertools를 활용해봤다. 만든 숫자에서 소수를 골라내기 위해서도 단순하게 2부터 (만든 숫자 - 1)까지를 나눠서 나머지 0이 안 되게 모든 반복문을 모두 순회하면 answer를 1 추가 시켜줬다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ..
코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 코드는 총 3파트로 활용할 데이터를 추려내는 파트, 점수 계산 파트, 고득점자 추려내는 파트가 있다. 점수 계산하는 파트에서 찍는 번호 순서가 담은 리스트를 계속 반복해서 참조해야 하기 때문에 answers의 idx인 a에서 순서 리스트의 길이를 나눈 후 나머지를 인덱스로 지정하였다. 고득점자를 추려내는 파트에서는 현재 최고 점수보다 더 큰 점수가 나오면 answer를 초기화시키고 고득점자를 추가하고 최고 점수와 같은 점수가 나오면 고득점자 한 명을 추가시키는 ..