하루에 0.01%라도 성장하자
반응형

Develop 122

Kotlin 을 이용한 동적 setBackgroundColor

이번에 별로 어렵지도 않은 걸로 혼자 삽질한 케이스가 발생해서 기록 차원에서 남겨두려고 한다. ( 이러지 말자 ㅠㅠ ) 기본적인 앱 구조는 healder를 공통으로 만들어 놓고 이 header를 각 레이아웃에 include 해서 사용하려고 한다. 이때 include하는 activity 별로 header의 backgroundColor 값을 변경해줘야 하는 상황이었다. ( 어렵지 않은데 ?) 평소처럼 진행하였다. 대충 바인딩 하는 코드 .... binding.headerLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.white)) 그런데 변경이 안되는것이다!! 아무리 해도 변경이 안돼... 바인딩이 잘못되었나 해서 findViewById로도 별..

Develop/Android 2022.07.06

Duplicate Class Found in Android

앱 실행 도중 갑자기 위 에러가 발생하였다. 말 그대로 앱내 선언된 Class Name이 중복된다는 것인데... ( 난 그런적 없는데..? ) 확인 해보니 iresultreceiver 라는 클래스가 겹치는 것을 확인했다. Logcat 을 보면 이러한 경우 어떻게 트러블 슈팅 하면 좋을지 가이드 사이트를 제공한다. https://developer.android.com/studio/build/dependencies#resolution_errors 빌드 종속 항목 추가 | Android 개발자 | Android Developers Android 스튜디오에서 Gradle 빌드 시스템을 이용하여 빌드 종속성을 추가하는 방법에 관해 알아보세요. developer.android.com 우선 확인해 보니 실제로 두개의..

Develop/Android 2022.06.24

onTaskRemoved를 사용하는 방법

안드로이드 앱을 종료하면 onDestroy 가 발생하는것은 라이프 사이클을 공부한 사람이라면 알고있는 사실이다. 실질적으로 onDestroy는 앱종료, 액티비티 종료시 실행해야 하는 코드가 있으면 여기에 넣어주는 경우가 많다. 이번에 업무를 진행할 때도 앱 종료시 SharePreference에 값 저장을 해야하는 상황이 발생해서 onDestroy에 값을 넣어 줄까 하다가! onDestroy는 앱종료 외에 액티비티 종료에서도 발생하니까 이것만으로는 완벽한 코드가 되지 않았다. 그래서 Application에 Lifecycle을 이용한여 코드를 넣어보았는데... 이벤트가 발생되지 않는다.. @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun appDestroyed() { ..

Develop/Android 2022.06.22

Android - 앱 재실행 하기

특정 상황이 발생하면 앱을 종료하는 것 뿐만 아니라 종료 후 실행까지 해야 하는 경우가 있다. 이때 사용하는 코드를 공유하려고 한다. try { startActivity( Intent.makeRestartActivityTask( packageManager.getLaunchIntentForPackage( packageName )?.component ) ) exitProcess(0) } catch (e: Exception) { e.printStackTrace() } finish() 대신 exitProcess를 사용한 이유는, 앱이 실행했을 당시 activity가 여러개가 실행되고 있을 수도 있기 때문인데, 자세한 내용에 대해서는 아래 블로그가 잘 정리되어 있으니 이부분을 한번 읽어보면 좋을 것 같다. htt..

Develop/Android 2022.06.16

Timber와 Android Logger 개발 경험 공유 ( 긴 로그 기록, 로그 파일 저장 )

Android에서 많이 유명한 로그 라이브러리다. https://github.com/JakeWharton/timber GitHub - JakeWharton/timber: A logger with a small, extensible API which provides utility on top of Android's normal Log class. A logger with a small, extensible API which provides utility on top of Android's normal Log class. - GitHub - JakeWharton/timber: A logger with a small, extensible API which provides utility on... github...

Develop/Android 2022.06.13

단위테스트 스터디 시작

이번달 회사에서 지원해주는 교육비로 책을 구입했다. '단위테스트' 우리팀은 아직 단위테스트를 도입하지 않았다. Unit Test없이 서비스를 이어가고 있다는게 신기할 따름이고... 현재는 할 수 없는 분위기지만 언젠가 할 수 있는 분위기가 되면 도입을 할 예정이고, 그러기 위해서 미리 준비해두면 좋을 것 같아서 책을 구매 후 스터디를 해보기로 한다. 테스트에대한 실무 경험이 많이 떨어져있기 때문에 어떻게 보면 지겨운 이론 공부가 될 수도 있고, 아니면 아예 모르는 신세계를 경험 할 수도 있겠지만, 일주일에 1단원씩 찬찬히 정리해보려고 한다. ( 이제 다시 공부좀 해야지 .. 바쁜거 어느정도 정리되어 가니까 .. )

Develop 2022.05.02

Git - Branch 관리

서사 코드 관리에 있어서 제일 중요한건 형상관리 인거 같다.. 우리 회사는 지금 git을 사용하고 있고 Naver Cloud Platform 에서 제공하는 SourceCommit 을 이용하여 remote 관리를 하고 있다. 내가 처음 이 회사에 왔을 때 git을 사용할 수 있는 사람들이 많이 없었고, git이라는 걸 처음 듣는 사람들도 있었다.. ( 처음에 체계를 잘 잡았어야 했는데.. 연차가 너무 낮아서 ㅠ ) 우리의 현재 git branch 구조는 - master : 운영 배포 용 - dev : 개발용 - 그외 : 사이드 개발 + 버그 픽스 운영 되고 있다. 그렇다 보니 그외

Develop/Git 2022.02.07

SQL - 여러개의 로우 중 랜덤하게 로우를 가져오는 방법

최근에 본의아니게 SQL을 가지고 열심히 씨름중인데.. 이번에 랜덤하게 row를 가져와서 사용할 일이 생겼다.. 5만개 조금 넘어가는 row 였는데, 다른 블로그에서 가이드 준 대로 진행하보니 뭔가 문제가 있어 보였다. SELECT * FROM TEST ORDER BY RAND() LIMIT 10 먼저 TEST 라는 테이블에서 랜덤한 로우를 10개 가져오는 것인데, 위 쿼리로 하게되면 엄청나게 시간이 오래 걸린다.. 물론 위에는 내가 TEST로 썼지만, 실제 업무용 테이블은 텍스트가 많아서 그런지 더 그랬고.. 실제로 15초 이상이 걸렸다. 해당 문제는 단순하게 * 이 아니라 특정 컬럼을 하나 지정하면 바로 수정되긴 하더라.. 아마 텍스트가 엄청 나게 많았던 컬럼 때문에 그런거 같은 느낌.. SELECT..

Develop/Database 2022.01.12

Vue - Component 간의 Method 호출 방법

우선 Vue는 Component 를 많이 사용한다. 아주 기본적일 수 있지만 우선 Component 간의 통신에 대해서 간단하게 설명한다. 먼저 처음에 개념을 잘못 잡고 갈 수 있는 부분이 있어서 간단하게 설명한다. [ 예시 ] 화면에 UI가 저렇게 구현되어 있다고 하자. 저기서 헤더는 Component로 구현했다면 코드는 이렇게 구성된다. // page.vue 페이지 import TheHeader "@/component/Header.vue" export default{ component : { "the-header" : TheHeader, }, method:{ callPageMethod(){ console.log("저는 페이지 메소드 입니다.") } } } // TheHeader.vue 헤더 expor..

Develop/Vue.js 2021.12.01

Vue - select 태그에서 default Value 셋팅하기.

기본적으로 select 는 이렇게 쓴다. 보기를 선택하세요 프라우드먼 YGX Hook 라치카 코카N버터 웨이비 원트 이렇게 하면 보기를 선택하세요가 보여지고 하단에 셀렉트 박스가 보여지는데, vue에서는 v-model을 사용한다. 따라서 v-model을 사용하게 되면 이런 코드가 된다. 보기를 선택하세요 프라우드먼 YGX Hook 라치카 코카N버터 웨이비 원트 이렇게 v-model을 주는데, 그렇다면 우리는 어떻게 default value를 설정할 수 있는가? v-model을 사용하면 checked와 selected 속성을 무시한다! 따라서 우리는 초기데이터를 셋팅해 주어서 default value를 셋팅해야 한다. 보기를 선택하세요 프라우드먼 YGX Hook 라치카 코카N버터 웨이비 원트 {{ SWF...

Develop/Vue.js 2021.11.23
반응형