목록전체 글 (80)
210202
1차 서류에서 포트폴리오 제출칸에 깃주소 한줄을 써버리는 기행(?)을 저지르고도 다행히 면접기회를 얻어서 면접을 보게됐다. 면접은 다대일로 진행되었는데 굉장히 편한 분위기로 진행됐다. 이 대회가 프로젝트를 3개월간 진행하는 대회라서 끝까지 완수할 수 있는 사람을 뽑는거라고 설명해주시면서 기술적인 면접보다는 참여여부나 개인적인 부분들을 많이 본다고 하셨다. 면접 질문으로 기억나는것은 1. 갈등상황에서 대처방법? 2. 만들고 싶은 서비스가 있다면? 3. 사이드 프로젝트 경험에 관련된 것들? 4. 더 물어볼것들 있는지 이정도가 기억난다. 면접볼때 제일 중요한게 생각했던게 내가 했던 프로젝트, 경험, 나의 생각들을 논리적으로 말하고 그것을 면접관들이 납득할 수 있게 말하는것을 중점적으로 생각했는데 그게 꽤 효과..
DataBinding와 BindingAdapter를 사용하면 view의 id의 알파벳순에 따라서 먼저 진행되는 순서가 바꾼다. 나는 checkbox와 button에 Databinding을 사용했는데 checkbox의 id는 checkbox_~, button의 id는 complete_button으로 설정되어 있었다. 둘다 c로 시작해서 xml 상에서 먼저 표시되는 checkbox의 BindingAdapter부분이 실행되게 된다. 하지만 button의 id를 button_~으로 바꾸고나니 button의 BindingAdapter가 실행되어 checkbox에서 변수를 설정해주고 하는 작업이 꼬이게 되어서 에러가났다. id의 알파벳순에 따라서 실행되는 순서가 바뀌는 점을 주의하자.
이번에 더치 업데이트 과정에서 겪은 경험을 통해 코드의 퀄리티를 어느정도 보장하는 방식에 대해 써보려고한다. 다음은 실제 더치에서 동작하는 프로세스이다. 1. 버튼 추가 2. 버튼 클릭 -> 검색화면 이동 3. 검색 -> 검색된 결과 리스트표시 4. 검색결과 클릭 -> 위치확인화면 이동 5. 확인버튼 클릭 -> 메인화면 이동 여기서 버튼을 추가하는 기능이 버튼을 동적으로 추가하는 방식이라 만들어진 버튼 개수를 저장하는 버튼리스트를 만들어서 기능을 구현했었다. 여기서 들었던 의문은 '굳이 버튼리스트를 만들어야하나?'였다. 이미 사용자가 선택한 위치들을 저장하는 위치리스트가 있었고, 이를 활용하면 충분히 대체할 수 있을 것 같았다. 조금 더 생각해보니 '버튼을 동적으로 추가하는것이 필요한가?'라는 생각이 들..
Fragment간에 ViewModel 공유 시 LiveData의 값이 안바뀌는 경우를 경험해서 이를 어떻게 해결하는지 적어본다. 나는 ViewModel을 생성할때 ViewModelProvider(this).get(~)로 그냥 넘겼었는데 이렇게하면 ViewModel의 인스턴스를 생성할 때 각기 다른 ViewModel로 생성된다는걸 모르고있었다. 그래서 이름은 같은 ViewModel의 LiveData에 값을 넣었지만 인스턴스는 다르기때문에 값이 제대로 들어가지 않았다. Fragment 사용시에는 ViewModel의 인스턴스를 생성할때 다음과 같이 생성해야 같은 인스턴스로 ViewModel을 사용할 수 있다. ViewModelProvider(requireActivity().viewModelStore).get(~)
developer.android.com/codelabs/kotlin-android-training-view-model?index=..%2F..android-kotlin-fundamentals#0 ViewModelProvider이 작동하는 방식 - ViewModel이 존재하면 존재한 ViewModel 리턴 - 존재하지 않다면 새로 생성하고 리턴 - ViewModel을 생성할때 주어진 scope에 맞게 생성됨 - 생성된 ViewModel은 scope가 살아있는 동안 유지됨 - scope가 fragment라면 fragment가 떼어질때까지 유지됨 ViewModel에 UI 데이터를 저장하면 UI가 회전하거나 변경될때? 데이터가 유지됨
github.com/OneLine-IF/Class OneLine-IF/Class 강의자료 Repo. Contribute to OneLine-IF/Class development by creating an account on GitHub. github.com 들어가서 zip파일로 다운받은 후 서버와 통신하기 부분을 보면 된다. Retrofit 지식을 정리하는겸 강의형식으로 ppt와 설명, 그리고 실제 프로젝트에서 어떻게 적용되는지 예시까지 넣어봤다. Retrofit의 모든것을 알려주진 않지만, Retrofit을 통한 기초적인 서버통신에는 무리없이 사용할 수 있을 것 같다.
woowabros.github.io/experience/2020/02/02/jacoco-config-on-gradle-project.html Gradle 프로젝트에 JaCoCo 설정하기 - 우아한형제들 기술 블로그 안녕하세요. 상품시스템팀에서 서버 개발(..새발)을 하고 있는 연철입니다.프로젝트 세팅 중에 찾아보고 삽질했던 내용들이 도움이 될까 하여 남깁니다. woowabros.github.io www.androidhuman.com/2016-02-13-jacoco_unit_test_android JaCoCo를 사용하여 안드로이드 프로젝트 유닛 테스트 커버리지 측정하기 #Android, #Kotlin, and #Tesla www.androidhuman.com 위의 2번째 링크 [JaCoCo를 사용하여 안드..
지금까지 프로그래밍을 하는 방식을 생각해보니 내가 과연 체계적으로 프로그래밍하고 있는지 궁금했다. 차근차근 생각해보니 최근에 알고리즘 문제들을 풀어보고, 안드로이드 프로젝트를 계속 진행하면서도 그때그때 떠오르는 생각들로 코드를 짜고있었다. 그리고 매번 어제했던 일들이 무엇인지 바로바로 파악하기도 어렵고 코드를 정리하면서 논리적으로 설명하기 굉장히 어려웠다. 그래서 조금이라도 빠르게 집중하여 내가 구현하려는 것들에 대해 정확히 인지하고 완성도를 높일 수 있는 방법을 만들고 싶었다. 그래서 코드 루틴이라는 것을 만들어보게 되었다. 내가 생각한 코드 루틴이란 코드를 짜기전 규칙적으로 일의 순서를 정해놓고 정해진 순서를 따르면서 코드를 짜는 것을 말한다. 내가 생각한 루틴은 다음과 같다. 1. 설계 - 문제에서..