분류 전체보기254 [Android] Unit 테스트 (1) - Mock 개념(Mockito) 단위 테스트를 하기 위해서는 한번에 메서드 하나만을 실행해 보는 것인데 이러한 메서드가 다른 네트워크, 데이터베이스 등등 제어하기 어려운 것들에 의존하고 있다면 어떻게 단위 테스트를 해야할까? 즉, 코드가 해당하는 Flow가 아닌 시스템의 다른 부분에 많이 얽혀 있고 의존해있다면 단위 테스트를 하기에는 매우 어려울 것이다. 따라서 이러한 것을 돕기위해 Mock이라는 것이 나타났다 Mock이란?실제 객체를 만들어 사용하기에 시간, 비용 등의 Cost가 높거나 혹은 객체 서로간의 의존성이 강해 구현하기 힘들 경우 가짜 객체를 만들어 사용하는 방법이다. Mock 객체는 언제 필요한가?테스트 작성을 위한 환경 구축이 어려운 경우테스트가 특정 경우나 순간에 의존적인 경우테스트 시간이 오래 걸리는 경우개인 P.. 2024. 2. 9. [Android] 테스트 코드 (2) - JUnit 이란? 1. JUnit이란?어느 정도 개발이 진행되면 프로그램에 대한 단위 테스트는 반드시 수행해야 하는데, JUnit은 보이지 않고 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 Framework다. JUnit이 비록 유닛 테스트로 유명하긴 하지만 instrumentation testing 또한 완벽하게 지원해준다. 따라서, 이런 JUnit을 이용하여 UI테스트 도구인 Espresso testing library또한 구동된다. JDK 1.4에서 추가된 assert...를 사용하여 Test를 진행 할 수있다.JUnit은 테스트 결과를 단순한 텍스트로 남기는 것이 아니라 Test클래스로 남긴다. 따라서 개발자에게 테스트 방법 및 클래스의 History를 넘겨줄 수도 있다. 2. 특징.. 2024. 2. 9. [Android] 테스트 코드 (1) - 왜 작성해야 할까? 안드로이드에서 테스트 코드 "왜" 작성해야 할까?코드를 작성하여 기능을 구현하고, 그 기능이 제대로 작동하는지 에뮬레이터 혹은 디바이스에서 직접 결과를 정성스럽게 확인 -> 에러가 발생하면 로그를 찍어 파악 -> 다시 수정하고 테스트 반복.위와 같은 방법으로 기능의 결함을 체크해도 문제없지 않을까? 하지만 이러한 작업은 규모가 작을 경우 문제 되지 않을 수 있지만, 앱의 규모가 커진다면 빌드하는 시간 + 테스트를 UI로 직접 입력하는 시간 등으로 시간이 점점 길어질 것입니다. 즉 테스트하기 위해 전체 앱을 매번 빌드하는 것은 비효율적인 작업이 되어버립니다.그래서 테스트 코드는 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증과 신뢰성 높은 코드의 생산성을 높이기 위해 작성한다고 생각이 듭니다... 2024. 2. 9. [flutter] Flutter (1) - 개요 CH.1 플러터 Chapter Point • 플러터란? • 다트란? • 플러터의 동작원리 • 플러터가 다트를 사용하는 이유는 무엇인가 • 플러터를 언제 사용해야할까? 1.0 플러터란 구글에서 만들어 오픈소스로 공개한 모바일 SDK 앱을 만들기위한 기존의 방식은 안드로이드와 IOS를 별도로 구현해 배포해야하기에 요구되는 기술스펙과 비용이 컸지만, 플러터를 사용하면 한 번의 구현으로 양쪽 진영에 모두 배포가 가능하다. 플러터는 렌더링 엔진, UI 컴포넌트, 테스트 프레임워크, 도구, 라우터 등 앱 제작에 필요한 기능을 모두 제공한다. 그 덕에 개발자는 앱 구현에 집중하여 생산성을 높힐 수 있다. 1.1 플러터에서 다트를 사용하는 이유 스프링이나 안드로이드에서는 자바 혹은 코틀린을 사용한다. IOS에서는 Ob.. 2024. 2. 7. Git 커밋 메시지 컨벤션 커밋 메시지 구조 1. 제목 태그설명 Feat 새로운 기능을 추가한 경우 Fix 에러를 수정한 경우 Design CSS 등 UI 디자인을 변경한 경우 BREAKING CHANGE 중대한 API를 변경한 경우 HOTFIX 급하게 치명적인 에러를 고친 경우 Style 코드 포맷 변경을 하거나 세미 콜론 누락하여 추가하면서 코드 수정이 없는 경우 Refactor 코드를 리팩토링한 경우 Comment 주석을 추가하거나 변경한 경우 Docs 문서를 수정한 경우 Test 테스트 코드를 추가, 변경, 리팩토링한 경우 Chore 기타 변경사항 (빌드 스크립트 수정, 패키지 매니징 설정 등) Rename 파일 or 폴더명 수정하거나 옮기는 경우 Remove 파일을 삭제하는 작업만 수행한 경우 > : > 형식으로 작성합니.. 2024. 2. 6. [Android] 안드로이드 저장소(3) - 카메라/갤러리 저장하기 예제(Q Scoped Storage) Android 11 타겟팅을 위한 권한 설정 (Manifest)앱이 Android 11을 타겟팅하는 경우 WRITE_EXTERNAL_STORAGE 권한 및 WRITE_MEDIA_STORAGE 독점 권한은 더 이상 추가 액세스를 제공하지 않는다. 따라서, MediaStore를통한 파일 접근 방식이 필요하다.MANAGE_EXTERNAL_STORAGE 권한 선언앱에 관해 모든 파일 관리 허용 옵션을 사용 설정할 수 있는 시스템 설정 페이지로 사용자를 안내함 MANAGE_EXTERNAL_STORAGE 권한은 다음을 허용한다.공유 저장소 내의 모든 파일에 관한 읽기 액세스 및 쓰기 액세스MediaStore.Files 테이블의 콘텐츠에 관한 액세스--> 저장소에 읽기/쓰기를 해야하는 .. 2024. 1. 7. 이전 1 ··· 17 18 19 20 21 22 23 ··· 43 다음