본문 바로가기

전체 글239

[안드로이드 면접] - 6 : 1. 왜 언어를 코틀린으로 선택했을까? 더보기 결론적으로 자바와 호환도 잘되면서 실용적이고 간결하며 안전한 언어이기 때문이다. 또한, 자바 플랫폼에서 돌아가기 때문에 기존 자바 라이브러리나 프레임워크에서 잘 동작하며 성능도 자바와 같은 수준이기 때문에 대체하여 좋은 이점을 더 갖은 상태로 개발할 수 있다. 그러한 이유는 코틀린이 갖는 언어적 특징 때문이다. 코틀린 특징 정적 타입 지정언어 : 컴파일 시점에서 객체 타입이 결정된다. 이를 정적 타입이라고 일컫는다. 이와 반대로 런타임 시점에서 객체 타입이 결정되는 동적타입은 파이썬, 자바스크립트가 존재한다. Null 안정성 : Java 는 NullPointer Exception 을 많이 경험했을 것이다. 이 점을 개선하여 Nullable 과 non-null.. 2023. 1. 29.
[안드로이드 면접] - 5: 1. Activity 클래스의 onSaveInstanceState(), onRestoreInstanceState() 메소드의 역할은 무엇인가? onSaveInstanceState() 더보기 해당 메소드는 Activity 가 onPause 되기 전에 데이터를 저장하게 된다. onRestoreInstanceState() 더보기 Activity 가 파괴되고 다시 재생성될 때, Activity 가 가지고 있는 Bundle 로부터 데이터를 회복할 수 있다. 또한 onCreate() 와 onRestoreInstanceState() 콜백 메서드는 같은 번들 객체를 전달 받는다. 그래서 보통은 데이터를 회복하는 코드를 onRestoreInstanceState() 에 많이 작성하는 편이다. onCreate() 에서 sa.. 2023. 1. 28.
[안드로이드] - 클린아키텍처 - 0 클린 아키텍처에 대해서 공부하기 이전에 왜 아키텍처를 공부해야 하는지 알아보자. 쓴이는 안드로이드 개발을 하면서 정말 다양한 디자인 패턴과 아키텍처를 접했다. MVC, MVP, MVVM, MVI 패턴 등등 또는 클린 아키텍처에 이르기까지 정말 다양하게 접했다. 블로그에서 트렌드라고 많이 나와있고 모르면 안된다는 생각에 그냥 사용법 익히면서 이런거구나 하고 넘어 갔었다. 섣부른 판단일 수 있겠지만 나와 같은 사람이 있을 것이다. 그래서 한 번 제대로 알아보려고 한다. 차근차근 정리해가며 알아가보자. 의문점 하나! Design 과 Architecture 는 무엇인가? 설계와 아키텍처 설계(design) : 특정 유형의 문제를 해결하는 방법으로 아키텍처보다는 좁은 개념이다. 아키텍처(architecture) .. 2023. 1. 27.
[안드로이드] - ShardPreferences, Datastore 차이 왜 Datastore 에 대해 알아보는 걸까? 우리는 안드로이드 개발을 하다보면, 간단한 데이터에 대해 로컬에 저장하여 사용한다. 가볍게 SharedPreferences 를 설명하자면 Key-Value 형태로 값을 저장하여 읽고 쓰는 간단한 방법이다. 데이터는 xml 파일로 로컬 저장소에 저장된다. 우리는 왜? Datastore 를 알아볼까 Datastore 는 Kotlin 코루틴 및 Flow 를 사용하여 비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장한다. 그리고 Andorid Developer 사이트에서 Datastore 사용을 권장한다. 또한 SharedPreferences 를 사용하는데에 여러 문제점이 존재한다. 그래서 권장하는 것 같고, 이제는 SharedPreferences 에서 Datas.. 2023. 1. 27.
[안드로이드 면접] - 4 : 1. 조인(join)의 역할은 무엇인가? 조인이란? 더보기 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 말한다. 조인의 역할이란? 더보기 테이블을 데이터 용량 낭비를 줄이고 데이터 관리하기 편하기 위해 테이블을 분리를 하는데, 이로써 얻는 단점인 데이터가 보기 힘들다는 부분을 여러 테이블의 데이터가 조합된 읽기 편하게 만들기 위함이다. 다양한 Join 방식 더보기 INNER JOIN : 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다. OUTER JOIN : 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다. CROSS JOIN : 한 쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다. SELF JOIN : 자.. 2023. 1. 27.
[안드로이드 면접] - 3 : 1. 트랜잭션이란? 더보기 데이터베이스의 상태를 변화(SELECT, INSERT, DELETE, UPDATE)시키는 하나의 논리적인 작업 단위이다. 하나의 트랜잭션 안에서 여러 개의 연산이 수행될 수도 있다. 또한, 트랜잭션은 수행중에 한 작업이라도 실패하면 전부 실패하고, 모두 성공해야 성공이라고 할 수 있다. 2. ACID 란 무엇인가? 더보기 동시성 프로그램 또는 그러한 프로그램에서 데이터에 대한 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 특징이다. 그 특징 네 개를 일컫는 게 ACID 이다. [Atomicity, Consistency, Isolation, Durability] Atomicity : 트랜잭션의 연산은 모든 연산이 완벽히 수행되어야 하며, 한 연산이라도 실패하면 트랜잭션이 실패.. 2023. 1. 26.