Kotlin의 연산자 기본적인 산술 연산자(+,-,*,/,%), 복합 대입 연산자(+=, -=, *=, /=, %=), 증감 연산자(++,--), 논리 연산자(&&,||,!), 비교 연산자(, =)는 자바와 똑같기 때문에 설명을 생략한다. - 전개 연산자 전개 연산자는 배열 데이터를 단순 나열할 때 사용한다. 곱하기 기호인 * 를 사용하고, 배열 앞에 붙이면 배열 값을 나열할 때 사용한다. 예를 들면, array[0], array [1], array [2] 이런 식으로 작성해야 하는 것을 *array로 작성하여 간단하게 배열 값을 나열할 수 있다. 마지막으로, 전개 연산자는 List의 데이터에 바로 이용할 수 없다. 사용하려면 리스트를 배열로 변환시킨 뒤 사용해야 한다. - 일치 연산자 일치 연산자도 자..
전체 글
Android 주니어 개발자
앱 개발을 하다 보면, 실제 플레이스토어를 통해 배포하는 경우가 생길 것이다. 배포를 하고 나서 유지보수를 하는 과정에서 운영/개발 소스를 따로 분리하는 경우도 생길 것이고, 유료/무료 버전을 구분할 경우가 생길 것이다. 위와 같은 경우 하나의 소스 파일을 동일하게 사용하지만 그 안의 값들을 바꿔서 다른 버전들을 만들어 내는 것이다. 이러한 버전 관리를 알아보기 전에 앱 버전이 어떤 것인지 먼저 살펴보자. 1. App Version? 앱의 버전은 보통 1.2.3과 같은 형식으로 작성한다. 앞에서부터 Major, Minor, Patch 순의 숫자로 표기한다. 기존 버전과 호환되지 않게 API가 바뀌면 "Major" 버전을 올려준다. 기존 버전과 호환되면서 새로운 기능을 추가할 때는 "Minor" 버전을 올..

MVC/MVP/MVVM 패턴 학습 디자인 패턴을 사용하는 이유는 이러한 패턴 없이 자유롭게 코드를 작성하게 되면 규모가 커질수록 하나의 액티비티가 복잡하고 비대해져 문제가 생길 수 있고, 유지보수 즉면에서도 어려움이 있을 수 있고, 액티비티 특성상 LifeCycle에 따른 영향도 있을 것이며 데이터도 안전하게 다루지 못하기 때문이다. 따라서 LifeCycle의 영향, 코드의 복잡, 비대에 대한 영향, 앱 사용 환경 등 다양한 이유와 문제점을 바탕으로 좀 더 안전하고 깔끔한 개발을 위해 아키텍처 패턴이 생겨났다. MVC(Model View Controller) MVC 패턴에서 사용자 입력은 컨트롤러(Activity)를 통해 들어오며 컨트롤러는 모델과 상호작용을 통해 View(xml)을 업데이트한다. 이 때..

RecyclerView란? RecyclerView는 ListView와 유사한 형태로 대량의 데이터 세트를 효율적으로 표현할 수 있는 요소이다. 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 RecyclerView 라이브러리가 필요할 대 요소를 동적으로 생성한다. 이름에서 알 수 있듯이 RecyclerView는 개별 요소를 재활용한다. 항목이 스크롤되어 화면에서 벗어나더라도 RecyclerView는 뷰를 제거하지 않고 새 항목의 뷰를 재사용한다. 이렇게 뷰를 재사용하면 앱의 응답성을 개선하고 전력 소모를 줄이기 때문에 성능이 개선된다. 위의 설명이 RecyclerView와 ListView의 가장 큰 차이점이다. 그래서 실제로 안드로이드 개발을 하다 보면 RecyclerView가 많이 사용된다. Re..

1. SDK란? Android SDK(Android Software Development Kit)는 포괄적인 개발 도구를 포함하는 소프트웨어 개발 키트이다. SDK에는 API, 디버거, 라이브러리, QEMU 기반 핸드셋 애뮬레이터, 설명서, 샘플 코드 및 튜토리얼이 포함된다. 현재 지원되는 개발 플랫폼에는 리눅스, 맥, 윈도우가 포함된다. 2. SDK Version? Android Studio에서 프로젝트를 새로 생성할 시, Minimum SDK를 선택해야 한다. 이때 Android Studio에서 사용자들이 어떤 API 버전을 얼마나 사용하고 있는지 확인할 수 있다. 안드로이드에서는 버전 이름을 오레오, 레드벨벳 케이크, 티라미슈 등으로 지정해두었다. 3. Google Play와 targetSDK? 실..

Toast나 Dialog를 사용할 때 Activity 클래스에서는 this, 클래스명.this, getApplicationContext()를 사용하고, Fragment에서는 getContext()를 사용하곤 했다. 그런데 이들의 차이점을 알아야 할 필요가 있어서 정리를 해보려고한다. 1. Context - 추상 클래스 - 앱의 resource나 Android 시스템에서 제공하는 API에 대한 정보에 접근하기 위한 인터페이스 - 구현은 안드로이드 시스템에 의해 제공 Context는 액티비티 단위인 ActivityContext와 앱 단위인 ApplicationContext 두 가지로 나뉜다. 2. ApplicationContext ApplicationContext는 단어 그대로 Application과 관련된..
1. 변수 - 자바와 다르게 코틀린에서는 타입 지정을 생략하는 경우도 많다. - 변수는 변경이 가능한 변수, 변경이 불가능한 변수로 나뉜다. val -> 변경 불가능한 변수(Value) var -> 변경이 가능한 변수(Variable) - 만약, 초기화 식을 사용하지 않고 변수를 선언하려면 변수 타입을 반드시 명시해야 한다. 2. Nullable - 코틀린은 null이 될 수 있는 변수와 될 수 없는 변수를 구분해서 변수로 선언하기 때문에 null로부터 안전성을 갖는다. - 코틀린에서는 null 값을 대입하려면 명시적으로 null이 될 수 있는 변수로 선언해야 한다. 변수에 null을 대입하려면 타입에 물음표(?) 기호를 이용하여 표현한다. - A?: B -> A가 null이면 B 실행 - A?. len..

안녕하세요. 오늘은 요즘 새로 공부 중인 Kotlin에 대한 글을 작성해보려 합니다. Kotlin은 현재 안드로이드에서 활발하게 사용되는 언어이고, 안드로이드 외에도 웹 / 서버 개발 등 다양한 분야에서 사용한다고 합니다. 1. Kotlin 간단 소개 Kotlin(코틀린)은 크로스 플랫폼 범용 프로그래밍 언어로, 자바와 완벽하게 호환되게 설계되었으며 일반적으로 JVM에서 사용되거나 자바스크립트, LLVM 그리고 데이터 사이언스 영역에서 사용하는 언어이다. 안드로이드 프로그래밍을 하는 사람이라면 알고 있겠지만, 2019년 5월 이후로 구글이 안드로이드 앱 개발에서 코틀린을 권장하고 있다. 그래서 현재 많은 안드로이드 개발이 코틀린으로 이루어지는 추세이다. 코틀린은 위에 설명처럼 자바와 완벽하게 호환되게 설..

안드로이드 개발자라면 들어봤을 법한 Thread와 ANR에 관해 이야기해보려고 한다. 위의 주제에 앞서 먼저 프로세스에 대해 설명하면, 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 기본적으로 같은 애플리케이션의 모든 구성 요소는 같은 프로세스와 스레드에서 실행되고, 대부분 애플리케이션은 이를 바꿔서는 안 된다. 그럼 스레드란 무엇일까? 1. Thread(스레드) - 스레드란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. - 애플리케이션이 시작되면 시스템이 애플리케..

REST란? - REST(Representational State Transfer)란 자원을 이름으로 구분하여 해당 자원의 정보(상태)를 주고받는 모든 것을 말한다. 여기서 자원은 해당 소프트웨어가 관리하는 모든 것을 의미한다. REST는 www(월드 와이드 웹)과 같은 분산 하이퍼 미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식이다. 이러한 제약들을 준수했을 때 시스템이 RESTful 하다고 말한다. - REST의 기본 개념은 리소스다. 리소스의 예로는 잘 정의된 상태와 관계, 표준화된 작동방식과 형식을 가지고 전송되는 문서를 들 수 있다. 종종 타입이나 문서를 수정해야 할 때, API 혹은 그 서비스 어딘가에서 액션을 불러일으키지 않고 스스로 RESTful을 호출한다. - REST는 기본적으..