본문 바로가기

Programming48

[Android-java] 여러 Fragment에 한 ViewModel 공유하기 구글링을 열심히 하다가, 코틀린 코드는 많은데 자바 버전이 별로 없어서 남겨본다. 아래와 같이 뷰모델을 정의한다. // SharedViewModel.java public class SharedViewModel extends ViewModel { private MutableLiveData data = new MutableLiveData(); public void setData(String input) { data.setValue(input); } public LiveData getData() { return data; } } 위에서 정의한 ViewModel을 여러 Fragment에서 사용하도록 하자. 먼저, Fragment A에서 ViewModel을 생성하고 데이터를 설정하는 방법은 다음과 같다. // F.. 2023. 3. 13.
[Android] Cannot find identifier 'viewModel' 오류 해결 MVVM 패턴에서 livedata + databinding을 적용할 때 xml 단에서 이런 에러가 발생할 수 있다. 확인사항 1. xml에 viewModel을 아래와 같이 불러왔는지 확인한다. 참고로, 의 root는 이어야 한다. 2. 올바른 이름으로 바인딩 했는지 확인한다. 3. build.gradle (:app) 에 dataBinding 설정을 했는지 확인한다. (바인딩 설정 후 Sync를 해주어야 한다.) 2023. 2. 16.
[Android-java] MVVM Activity 안에 Fragment 넣기 (+ 버튼 적용) 아래와 같이 Activity 안에서 Radio Button에 따라 Fragment 표기를 해보자. (이 포스팅은 Activity 내 Fragment를 구성한다. Fragment 내 Fragment를 구성할 경우 다음 포스팅 참조) 1. 먼저 Activity와 Fragment를 생성해 준다. MVVM 패턴을 적용하기 위해 Fragment (with ViewModel)을 선택한다. 2. xml을 간단히 작성한다. activity_main.xml ** 주의 ** FragmentContainerView에 layout이나 name을 지정하지 않는다. 왜냐면 radio button에 따라 유동적으로 변할 값이니까. 지정하지 않을 경우 경고가 뜰 수 있는데, 경고 무시하기 클릭하면 된다. fragment_first... 2023. 2. 15.
[Android] Default Activity not found 에러 해결법 앱을 실행하면 이렇게 Default Activity를 찾을 수 없다는 에러가 뜰 때가 있다. 해결법 1. 대부분 아래와 같이 기본이 되는 Activity의 메인 액션과 런처 카테고리에 문제가 있는 경우였다. 별 문제가 없을 경우 intent-filter 안에 해당 라인을 추가하거나 주석을 풀어주면 잘 동작한다. ※주의 : 해당 앱이 바탕화면에 아이콘 미표시 되어야 하는 경우 위와 같이 주석처리 되어있을 수 있다. 이럴 경우 아래 방법을 사용하거나, 아니면 주석을 풀었다가 소스 반영 시에는 다시 주석처리 해주자. 2. 위 방법으로 안될 경우엔 아래와 같이 임의로 Default Activity를 지정해 준다. 상단 app이라고 되어있는 박스에 드롭다운 버튼을 클릭하면 Edit Configurations..... 2023. 2. 14.
[Java] java로 구현한 코드 bat 스케쥴링 - 서론 - 얼마 전에 타사 api를 호출해와서 DB에 저장하는 로직을 java로 구현하고 일 1회 실행시키는 업무가 주어졌다. java 파일에 로직을 다 짜고 실행시키면 DB에 들어가는 것까지 확인했는데, 이 파일을 어떻게 스케쥴링하면 좋을까 고민이 되었다. 고민된 이유 : 이전에 작성한 게시글 ( https://in0-pro.tistory.com/62 )에서 cron으로 스케쥴링을 구현했는데, [Spring] cron으로 스케쥴링 구현하기 (쉽고 자세한 설명) 회사에서 스케쥴링 구현으로 4시간 동안 삽질해서 알아냈다.. 초등학생도 알기 쉽게 차근차근 설명해드림! (spring 프로젝트를 생성했다는 가정 하에 시작함) 1. 스케쥴러 로직이 들어갈 자리를 만 in0-pro.tistory.com 다음에는 .. 2022. 3. 7.
[ORACLE] SQL문 처리 과정 parse -> bind -> execute -> fetch SQL문이 사용자 프로세스에서 실행되었을 때 결과값을 리턴하기 까지의 과정 1. 서버프로세스(PGA-program global area)로 전달됨 2. parse 과정 2-1. syntax 확인 2-2. shared pool에 같은 SQL이 있는지 확인 (있을경우 parse 멈추고 다음 과정으로 넘어감) ----여기서 멈추고 다음 과정 넘어가면 soft parse, 계속 진행하면 hard parse---- 2-3. 테이블, 칼럼 등에 대한 validation 체크, 권한 체크 2-4. 옵티마이저(어느방법으로 처리하는게 빠를지 결정하는 네비게이션 역할)로 실행계획 결정 2-5. shared pool에 SQL문+parse tree(=p-code=컴.. 2022. 1. 18.