목록분류 전체보기 (115)
코린이 탈출기
개발한 앱을 Play 스토어에 배포하여 설치하려고 검색해보니 나오지 않는 경우가 있었습니다.구글링한 결과 개발자가 배포한 앱 자체(Play 스토어 설정)의 문제가 있는 경우도 있었지만, Play 스토어에 캐시의 문제로 앱이 검색이 되지 않는 경우도 있다고합니다. 저의 경우에는 2개의 폰 중 1개만 검색이 안되기 때문에, Play 스토어 설정의 문제는 아니라고 생각하여 캐시를 삭제하는 방법을 사용하니 앱이 잘 검색되는 것을 확인하였습니다. 불필요한 데이터로 인해 앱 실행 시 오류가 발생할 수 있다고합니다. 캐시 및 데이터 삭제 방법 해당 앱 길게 누르기 -> i 아이콘 클릭 -> 저장공간설정 -> 애플리케이션 -> 해당 앱 클릭 -> 저장공간
코드의 재활용과 유지보수를 쉽게 하기 위해 다양한 기법들이 있습니다. 그중 하나가 코드를 여러 개의 파일로 분리하는 것입니다. 즉, 관심사의 분리를 할 수 있는 여러 방법 중 하나입니다.코드를 재활용하면서 더 빠른 속도로 안정적으로 개발하게 되고, 앱의 무결성 및 유지보수성이 향상됩니다. 결론을 먼저 말하면 안드로이드에서의 라이브러리와 모듈 모두 동일한 개념으로 재사용이 가능한 코드의 집합이라고 볼 수 있습니다.라이브러리와 모듈 모두 소스 코드, 리소스파일, Android 매니페스트 등 앱을 빌드하는데 필요한 모든 것이 포함될 수 있습니다. 모듈소스 및 리소스 디렉터리와 같은 모듈 디렉터리와 기기 유형에 적합한 기본 파일을 자동으로 생성합니다.기존에 코드를 개발할 때, 하나의 모듈로 많은 코드가 추가..
메모리... 참 비전공자인 저에게는 코딩을 할 때 생각하기 제일 어려운 부분이더라구요.. ㅠㅠ 기본의 중요성을 매번 느낍니다... 코드를 작성하다 보니 enum class 이것이 저에게는 매우 골칫덩어리였습니다!! 가시성을 좋게 하려고 아무 생각 없이 막 사용하고 있더라구요!!! 그래서 enum class에 대해 사용법과 예시를 보다가 메모리 관련하여 공부를 해보았습니다!! 많은 블로그 글을 읽어보면 안드로이드 개발이 오랫동안 enum class를 권장하고 있지 않다는 글을 접할 수 있었습니다. 하지만 현재에는 열거형을 사용하지 말라는 공식 지침은 더 이상 존재하지 않습니다!!! 과거의 enum class를 지양하던 이유에 대해 자세하게 알고 싶으시다면 해당 동영상(4:48)을 시청해 보세요!! 아주 친..
net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master; 위와 같은 에러가 발생하는 이유는 데이터베이스를 변경했을 때 마이그레이션을 하지 않아서 생기는 문제입니다. 제가 발생한 경로를 설명해 드리겠습니다. 저는 기존의 앱에 Room을 새롭게 추가하는 작업을 진행 중이었습니다. Room에 관한 코드를 작성 후 테스트 시에는 문제가 없었습니다. 그 후 Room에 암호화를 추가하였습니다. 그리고 암호화가 잘 되었는지 테스트를 위해 암호화한 부분을 지웠다가(이때가지는 에러 발생하지 않음) 다시 추가하니 위와 같은 에러가 발생하였습니다. 알고 보니 데이터베이스..
02-3 자료형 검사하고 변환하기 코틀린은 변수를 사용할 때 반드시 값이 할당되어 있어야 한다는 원칙이 있지만, 만약 변수에 값이 없는 상태를 만들고 싶을 경우에는 어떻게 해야 할까요?? ‘값이 없는 상태’를 null이라는 용어를 사용합니다. null을 할당하여 변수에 값이 없는 상태를 만들 수 있습니다. 코틀린에서는 null 상태인 변수를 허용하려면 물음표(?) 기호를 사용해 선언해야 합니다. null을 허용하는 변수를 사용하려면 null을 검사하고 처리하는 방법까지 고려해야 하고, 필요한 자료형을 변환할 수도 있습니다. null을 허용한 변수 검사하기 프로그램이 실행되는 도중에 값이 null인 변수에 접근하려 하면 NullPointException(NPE) 예외 오류가 발생합니다. 코틀린은 변수에 n..
shuffle()과 shuffled()는 리스트의 값들을 섞고 싶은 경우 사용하는 것입니다. 밑의 사진과 코드는 shuffle()과 shuffled()의 코드입니다. 코드를 보며 설명한 후 사용 예시를 작성하겠습니다. /** * Randomly shuffles elements in this mutable list. */ @kotlin.internal.InlineOnly @SinceKotlin("1.2") public actual inline fun MutableList.shuffle() { java.util.Collections.shuffle(this) } /** * Returns a new list with the elements of this list randomly shuffled. */ @Sinc..
java.net.UnknownHostException: Unable to resolve host : No address associated with hostname 위와 같은 에러가 발생하는 이유는 테스트 기기의 인터넷 연결이 되어있지 않을 경우 발생합니다. 테스트 시 테스트 기기의 설정을 잘 확인합시다!!!
메모리는 흔히 RAM을 지칭합니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 코드, 데이터, 힙, 스택이 있습니다. 메모리 구조를 보기 전 메모리 공간에 대해 PC를 사용할 때 동작하는 것을 예시로 설명하겠습니다. 사용자가 프로그램을 실행하기 위해 클릭하는 동작은 운영체제에 실행파일을 실행하도록 요청하는 것입니다. 운영체제는 프로그램의 정보를 읽고 메모리 공간을 할당해주면 코드를 메모리에 등록하고 실행하며 동작하게 됩니다. 코드(Code) / 텍스트(Text) 프로그램의 코드가 실행하기 위해 저장되어 있는 영역으로 '텍스트(Text) 영역'이라고도 부릅니다. 저장되는 코드는 기계어 형태(0, 1)로 저장됩니다. 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수..
우선 프로세스와 스레드를 설명하기 전에 프로그램에 대해 알아보면 좀 더 쉽게 이해할 수 있습니다. (저는 처음에 접했을 때 아래 설명을 보면 '~작업의 단위' 이런 식으로 설명이 되어있는데, 이해가 안 가면 그냥 무시하고 실행해주는 아이구나 이런 식으로 공부했습니다.) 프로그램 프로그램은 파일이 저장 장치에 저장되어 있지만 메모리에 올라가 있지 않은 정적인 상태를 의미합니다. 쉽게 풀면 아직 운영체제가 프로그램에게 독립적인 메모리 공간을 할당해 주지 않아 실행되기 전의 상태를 의미합니다. 그냥 코드 덩어리라고 생각하시면 됩니다. 그저 코드가 있을 뿐 이것을 실행하지 않은 것입니다. 프로세스 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위를 의미합니다. 프로세스는 정적인 프로그램을 동적으로 만들어 주..
4년 된 중소기업 회사입니다. 자사 앱이 있는 회사입니다. 이력서 -> 과제 -> 1차 면접(기술 면접) -> 2차 면접(인성 면접?) -> 최종 발표 1차 면접은 3:1, 2차 면접은 1:1로 진행하였습니다. 저의 스펙은 비전공자, 개발 경험 8개월, 블로그 및 Github 관리, 개인 어플 출시, 이력서는 노션으로 지원하였습니다. 자기소개 장점 공부를 하게 된 이유 어떤 개발자가 되고 싶은지 공부 방법 스터디 경험 협동 프로젝트 경험 앱 출시 경험 액티비티 생명주기 Firebase 사용 경험 customView를 사용해 보았는지 bindingAdapter ScopeFunction의 장점 postValue VS setValue Lateinit var과 val by lazy 새로운 기술을 사용해 보았는지..