전체 글

개발기록 / 공부한 내용을 정리하는 블로그
· Develop
MVVM이란? MVVM( Model View ViewModel )은 Microsoft 설계자 인 Cooper & Peters에 의해 탄생된 디자인 패턴 John Gossman에 의해 2005년 발표 되어 클라이언트 기반의 플랫폼에서 조금씩 사용되기 시작 Model : MVC의 Model과 동일한 역할 Network, DB, SharedPreferences 등 다양한 Data Source로부터 필요한 데이터를 준비 ViewModel에서 데이터를 가져갈 수 있게 데이터를 준비하고 그에 대한 이벤트를 보냄 View : 레이아웃을 정의 기본적으로 데이터를 보여주기만 하기 때문에 비즈니스 로직을 포함하지 않지만 UI 변경과 관련된 일부 로직은 포함될 수 있음 (Android는 생명주기라는 플로우를 가지고 있기 때..
· Java/Basic
indexOf int indexOf( int x ) 문자열 객체에서 x(아스키 코드 문자의 위치)가 첫번째로 발견된 위치를 반환, 없을시 -1반환 int indexOf( String x ) 문자열 객체에서 str를 찾아서 존재하면 첫째문자 위치를 반환, 없을시 -1반환 lastIndexOf int lastIndexOf( int x ) 뒤에서 부터 x(아스키 코드 문자의 위치)가 첫번째로 발견된 위치를 반환 int lastIndexOf( String x ) 뒤에서 부터 괄호 사이 들어간 문자의 위치를 반환 substring String substring(x) 문자열의 x위치 부터 끝까지 문자열 추출 String substring(x,y) x위치 부터 y위치 전까지의 위치의 문자열 추출 Char charAt..
· Java/Etc
자바 설치 파일 필요시 아래 링크에서 운영체제에 맞는 버전을 다운 자바(JDK, JRE) 모든 버전 다운로드(6,7,8,9,10,11,12,13,14,15,16,17) https://www.oracle.com/java/technologies/downloads/archive/ 자바 1.1버전부터 1.2, 1.3, 1.4, 1.5 ~ 최신버전까지 모두 다운로드 할수 있는 링크 Java SE Java EE Java ME Java FX Java SE 17 J2EE SDK Downlo.. bumjae.tistory.com 자바(JDK, JRE) 설치 설치진행 선택사항 및 경로설정 설치완료 자바(JDK, JRE) 환경변수 설정 윈도우 단축키 win + Pause 키를 누르거나 제어판 -> 시스템 및 보안 -> 시스..
StringFormat Android에서 String.xml을 동적으로 사용하고 싶은 상황이 있을 수 있다. 계속해서 변하는 값을 알려주기 위해서는 String Formatter 를 사용한 Format String 으로 표현될 수 있다. 서식 문자열의 앞에 "%"를 붙여 문자열에 기술해 두면 그 그위치에 변수의 값을 형식화하여 넣을 수 있다. %1$s 는 첫 번째 파라미터에 String 값이 들어오고, %2$d 는 두 번째 파라미터에 십진수 숫자가 들어온다는 뜻의 인자이다. Dynamic Text, %1$s! Change %2$d count. 위 Resource를 코드에서 사용 var text = getString(R.string.dynamic_text, printMsg, count) Databindin..
간혹 Emulator를 사용하다 보면 System UI isn't responding이라는 오류 팝업이 뜬다. 찾아보니 컴퓨터 하드웨어 성능 문제가 제일 크다고 한다. 남은 하드 용량, 전반적 컴퓨터 성능(CPU, GPU, RAM 등등), 에뮬에 할당한 메모리 용량 등이 원인이 될 수 있다고 한다. PC가 에뮬을 가상 머신으로 돌리는데 성능이 딸린다는 것 (회사 노트북이 안좋다..) 간단한 해결방법을 찾았지만 이 방법을 사용 시 Emulator에 저장한 설정, 데이터가 전부 삭제되니 주의 1. Android Emulator 종료 특별히 따로 설정을 하지 않았다면 에뮬레이터에 대한 정보는 아래 경로에 저장된다. 2. 아래 경로에 가서 파일 삭제 C드라이브 -> 사용자 or User -> "현재 사용자명" ..
· Kotlin/Basic
Coroutine 이란 동시성 프로그래밍 개념을 코틀린에 도입 Coroutine은 시작된 스레드를 중단하지 않으면서 비동기적으로 실행되는 코드이다. 기존의 복잡한 AsyncTask 또는 다수 스레드 관리를 직접 해주지 않아도 되며, 기존 다중 스레드 보다 훨씬 더 효율적으로 동작한다. 특징으로는 스레드 위에서 실행되는 여러가지 코루틴이 존재한다고 할 때 Coroutine1,2,3 이 있다고 칠 때 1을 실행하던 중 2가 실행돼도 실행 중인 스레드를 정지하면서 컨텍스트 스위칭 개념으로 다른 스레드로 전환하는 것이 아니라 기존 스레드를 유지하며 기존 스레드에서 2를 실행하게 된다. 이후 1을 다시 실행할 때 저장해둔 1 상태를 불러와 다시 스레드에서 1을 실행하게 된다. 한마디로 스레드의 멈춤없이 루틴을 돌..
Google에서 제공하는 ORM(Object-relational mapping) SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하며 SQLite를 완벽히 활용함 실행 기기에 앱 데이터 캐시를 만들고 네트워크 연결 여부와 관계없이 사용자가 콘텐츠를 탐색할 수 있음 ORM - Object Relational Mapping, 객체-관계 매핑 객체 지향 프로그래밍은 클래스를 사용하고 관계성 데이터 베이스에서는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간에 불일치가 발생함 ORM은 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결함 즉, 객체를 통해 간접적으로 데이터 베이스의 데이터를 다룸 Persistant API라고도 할 수 있음 Persistence(..
· Develop
확정되지 않은 기능의 Test를 위해 apk를 추출할 일이 생겨 Android 기기에 설치된 프로그램의 apk 파일을 얻고자 adb를 통해 apk를 추출해보았다. ADB ADB(Android Debug Bridge)는 Unix shell을 제공. 사용자는 emulator나 안드로이드 연결장비에 다양한 명령어를 보낼 수 있다. Android 기기와 PC를 연결한 후 (Android Studio에서 진행) APK 추출 1. ADB Shell 실행 adb shell 간혹 가다 아래처럼 device unauthorized.라는 오류가 뜨는데 USB 디버깅 허용을 하지 않아서 뜬다고 한다. 2. su 명령어 실행 (필수 아님) su 루팅 된 폰에서 adb 쉘에 진입했다면 해주어야 한다는데 su 명령으로 Super..
· Java/Etc
설치링크 자바 1.1버전부터 최신버전까지 모두 다운로드 할수 있는 링크 Looking for an Older Java Release? Access the historical java release archive that includes JRE and JDK to help developers debug issues in older systems. www.oracle.com 아래 표를 눌러 원하는 링크로 바로 가도 좋다 Java SE Java EE Java ME Java FX Java SE 17 J2EE SDK Download Java ME SDK Download Java SE 16 Java SE 15 Java SE 14 Java SE 13 Java SE 12 Java SE 11 Java SE 10 Java..
bumjae
Android Technote