안드로이드 19

[우테코 6기 - 안드로이드] 프리코스 3주차 로또 회고와 냄새나는 내 코드

3주차 미션은 로또 게임이다. 요구사항들은 아래 링크에서 확인할 수 있다. https://github.com/woowacourse-precourse/kotlin-lotto-6 GitHub - woowacourse-precourse/kotlin-lotto-6: 로또 미션을 진행하는 저장소 로또 미션을 진행하는 저장소. Contribute to woowacourse-precourse/kotlin-lotto-6 development by creating an account on GitHub. github.com 이번 미션에서는 아래와 같은 요구사항이 추가되었다. 함수 또는 메서드의 길이가 15라인을 넘어가지 않도록 구현한다. 함수(또는 메서드)가 한 가지 일만 잘 하도록 구현한다. `else` 를 지양한다. ..

[우테코 6기 - 안드로이드] 프리코스 2주차 자동차 경주 회고

2주차 미션은 자동차 경주이다. 기능에 대한 요구사항은 아래 링크에서 볼 수 있다. https://github.com/woowacourse-precourse/kotlin-racingcar-6 GitHub - woowacourse-precourse/kotlin-racingcar-6: 자동차 경주 미션을 진행하는 저장소 자동차 경주 미션을 진행하는 저장소. Contribute to woowacourse-precourse/kotlin-racingcar-6 development by creating an account on GitHub. github.com 이전 미션과는 다르게 새로 추가된 요구사항들이 있었다. 요구사항은 아래와 같았다. 메서드의 indent depth 를 2까지만 허용한다. 함수(또는 메서드)..

[우테코 6기 - 안드로이드] 프리코스 1주차 숫자야구 회고와 오브젝트

23년 10월 19일 (목)부터 시작한 우아한 테크 코스의 프리코스가 4주가 지나고, 11월 15일(수) 에 끝이 났다. 저번 기수인 5기 때는 프리코스를 3주동안 3개의 미션을 진행했다고 했지만, 이번 6기에는 4주동안 4개의 미션을 진행했다. 현재 이 글을 쓰고 있는 시점은 우테코 프리코스가 모두 종료한 시점이다. 미션이 모두 종료했으니 이제 1주차 미션부터 회고록을 작성하면서 배운 내용과 경험, 감정들을 정리해보고자 한다. 우테코에 참여하게 된 계기는 학교 동기의 친구의 추천이었다. 우테코는 객체지향의 정수를 배울 수 있으며 프리코스 때부터 관련 설계에 대해 많은 것을 배울 수 있었다 했다. 그래서 그 친구가 추천한 책인 '오브젝트 코드로 이해하는 객체지향 설계' 를 읽으면서 프리코스를 진행했다. ..

[안드로이드] 수명 주기 인식요소가 뭔데? - Lifecycle, LifecycleOwner

수명 주기 인식 구성요소. 안드로이드 개발자 공식 문서에서 Lifecycle-Aware Components 을 이렇게 번역하고 있습니다. 그런데 Lifecycle-Aware 컴포넌트가 정확히 뭘까요? Lifecycle-Aware 컴포넌트란? 먼저 정의부터 바로 하겠습니다. Activity 나 Fragment 같은 다른 컴포넌트의 `Lifecycle` 이 변경될 때 이에 대응하는 컴포넌트. 이 컴포넌트는 `lifecycleOwner` 의 상태 변화를 `observe` 해서 필요한 작업을 스스로 할 수 있다. (이때 컴포넌트는 안드로이드 component 만을 의미하는 게 아닌, 자신의 역할을 할 수 있는 컴포넌트를 의미함) 일반적인 패턴에서는 액티비티나 프래그먼트의 lifecycle 메서드 내에서 데이터를..

Android/Theory 2023.10.18

안드로이드 테스팅 (3-3) 코루틴 테스트 - viewModel 에서 디스패처 만들면?, DipatcherProvider, pauseDispatcher, resumeDispatcher

이전 글에서 이어집니다 https://sh1mj1-log.tistory.com/175 https://sh1mj1-log.tistory.com/176 https://sh1mj1-log.tistory.com/177 https://sh1mj1-log.tistory.com/178 안드로이드 테스트 코드를 배워보자 (3 - 2) - viewModelScope.launch 에서 테스트, 메인 디스패처 설정, 이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스 sh1mj1-log.tistory.com 먼저 테스트할 ViewModel ..

Android/테스팅 2023.10.17

안드로이드 테스트 코드를 배워보자 (3 - 2) 코루틴 테스트 - viewModelScope.launch 에서 테스트, 메인 디스패처 설정,

이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티 sh1mj1-log.tistory.com https://sh1mj1-log.tistory.com/176 안드로이드 테스트 코드를 배워보자 (2) - Room Unit Test https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드..

Android/테스팅 2023.10.17

안드로이드 테스트 코드를 배워보자 (3 - 1) 코루틴 테스트 - runTest, TestDispatcher, 디스패처 주입

이전 글에서 이어집니다. https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티 sh1mj1-log.tistory.com https://sh1mj1-log.tistory.com/176 안드로이드 테스트 코드를 배워보자 (2) - Room Unit Test https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드..

Android/테스팅 2023.10.13

안드로이드 테스트 코드를 배워보자 (2) Room Unit Test

https://sh1mj1-log.tistory.com/175 안드로이드 테스트 코드를 배워보자 (1) - liveData 테스트, 비동기 테스트 기본 안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티 sh1mj1-log.tistory.com 이전 글에서 이어집니다. Room Unit Test - ViewModel, LiveData 등 사용 Room DB 는 안드로이드 Jetpack Components 입니다. 그러므로 안드로이드 종속성이 필요합니다. 안드로이드 개발자 문서 - Room 지속성 라이브러리는 SQLite에 추상화 계층을 제공하여 SQLite를 ..

Android/테스팅 2023.10.10

안드로이드 테스트 코드를 배워보자 (1) liveData 테스트, 비동기 테스트 기본

안드로이드 앱을 개발할 때 여러 기업에서, 프로젝트에서 테스트 코드를 작성하는 것은 중요하다고 말합니다. 아예 앱을 개발할 때 Test code 를 먼저 작성하는 경우도 있죠. 실제로 카카오에서 티스토리 앱을 개발하시는 개발자 분의 기술 글에서 테스트를 해야 하는 이유를 이렇게 말하고 있습니다. (기술 글 출처) 개발 과정에서 문제를 미리 발견할 수 있다. 리팩토링을 안심하고 할 수 있다. 빠른 시간 내에 코드의 동작 방식과 결과를 확인할 수 있다. 좋은 테스트 코드를 연습하다 보면 자연스럽게 좋은 코드가 만들어진다. 의도한 대로 동작되는 것을 자신감 있게 말할 수 있다. 애자일 방법론의 도입! 로버트 C. 마틴은 이렇게 말했습니다. 기술 실천 방법 없이 애자일을 도입하려는 시도는 실패할 수밖에 없다.”..

Android/테스팅 2023.10.08

MVC, MVP, MVVM 봐도 봐도 조금씩 헷갈리면 모르는 거임

안드로이드에서 유명한 패턴인데 봐도 봐도 조금씩 헷갈리는 것 같아서 제대로 정리를 할 필요성을 느껴 정리합니다. MVC(Model - View - Controller) 패턴 MVC 패턴은 다른 소프트웨어 개발에서 많이 사용되는 디자인 패턴입니다. 당연히 안드로이드 앱 개발에서도 많이 사용됩니다. MVC 패턴은 앱을 세 가지의 주요 컴포넌트로 나누어서 관리하며, 각 컴포넌트는 다른 역할을 수행합니다. Model - MVC Model 은 데이터와 데이터 관련 로직을 포함하는 컴포넌트. 데이터는 앱의 핵심 데이터나 상태. 안드로이드 앱에서의 Model 은 데이터베이스나 네트워크 요청 결과, 앱의 상태 등을 포함할 수 있음. Model 은 주로 데이터를 가져오고 저장하며, 데이터의 유효성 검증을 하고 가공할 수..

Android/Theory 2023.10.02