전체 글(110)
-
JUnit4를 사용한 Viewmodel , usecase , repository 패턴 Unit Test
안녕하세요 이번 편에서는 JUnit4를 베이스로 mockk와 함께 mvvm 패턴이 적용된 프로젝트를 unit test 하는 방법에 대해 알아보도록 하겠습니다. 부족한 점이 많아 이해가 안 되시거나 잘못된 점이 있다면 감사히 듣겠습니다! 간단한 Note 앱을 가지고 유닛테스트를 어떻게 적용해야 하는지 실습하면서 겪었던 오류나 어려웠던 점들을 함께 공유하며 성장하는 시간이 되길 바랍니다. 아키텍처 패턴은 MVVM 패턴 Gradle Plugins version (Groovy): 8.0.0 kotlin version : 1.7.20 room version : 2.5.1 mock version : 1.10.1 Gradle JDK : jetbrains Runtime 17.0.6 Dependency dependenc..
2023.04.21 -
한 번의 글로는 이해가 안 가는 안드로이드 테스트 ( 유닛 테스트 & 계측 테스트 )
이번에는 유닛 테스트에 대해 알아보는 시간을 가져보겠습니다. Q. 단위 테스트가 무엇인가요?? 유닛 테스트는 소프트웨어 개발에서 개별적인 코드 조각 또는 모듈의 기능을 테스트하는 것입니다. 유닛 테스트는 작은 단위의 코드 조각을 테스트하기 때문에 "단위 테스트"라고도 불립니다. 안드로이드 기준으로 설명을 드릴게요. 코드를 하나 보실까요??? @Test fun `viewModel이 시작되면, 모든 노트들을 불러옴`() = runTest { viewModel.getAllNotes() assertEquals(notesTest, viewModel.state.value.notes.sortedBy { it.id }) } 위의 코드는 적혀있는 그대로 getAllNotes()를 확인하기 위해 작성한 함수입니다. 상황에..
2023.04.21 -
한 번의 글로 이해하는 소프트웨어 아키텍처 패턴 ( MVC, MVP, MVVM )
안드로이드 개발자가 되기 위해 채용 공고를 보면 자주 보이는 게 하나 있습니다. mvvm 패턴 기반의 앱?? mvvm 패턴?? 여기서 말하는 mvvm 패턴은 무엇일까요?? 구글에 검색해 보겠습니다. 구글에 검색해 보니 아주 많은 글들이 존재합니다. 그중에 하나를 살펴보니 mvvm은 아래와 같다고 합니다. 위의 한 단락의 글을 정리해 보면, MVVM은 아키텍처 패턴이고 궁극적인 목표는 뷰를 애플리케이션의 비즈니스 로직과 완전히 독립적으로 만드는 것이라고 합니다. 여기서 또 의문이 듭니다. 아키텍처 패턴이 무엇이고 비즈니스 로직은 무엇일까? mvvm 패턴에 대해 알기 위해선 선행적으로 위의 두 가지를 알아야 할 것 같습니다. Q. 아키텍처 패턴( Architecture Patterns )이란 무엇인가요???..
2023.04.18 -
프로그래머스 Level2 프린터
프린터 출처: 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제에 대해 간단히 설명드리면 인쇄 요청을 하는 배열이 들어옵니다. 이제 인쇄 요청대로 맨 앞의 문서부터 프린터하려고 하는데 각 문서마다 고유한 우선순위가 있습니다. 맨 처음 순서에 인쇄하려는 문서를 확인해보니 이 문서보다 우선순위가 높은 문서가 목록에 있으면 이 손에 들고있는 문서를 요청 목록 맨 뒤에 다시 넣습니다. 그리고 다시 맨 앞에서 문서 하나를 꺼내..
2023.04.14 -
프로그래머스 Level2 기능 개발
기능 개발 출처: 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단하게 설명드리면, progresses 배열에 현재까지 진행된 각 프로젝트의 진척도가 있습니다. speeds 배열에서는 progresses와 index가 같은 위치의 프로젝트가 하루에 얼마큼 일할 수 있는지 하루 당 진행속도가 들어있습니다. 주의할 점은 뒤에 더 빨리 배포가 가능한 일이 있어도 앞에서 일이 끝나지 않으면 배포가 불가능합니다. 즉, 앞에서 ..
2023.04.13 -
프로그래머스 Level2 연속 부분 수열 합의 개수
연속 부분 수열 출처: 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 위의 링크에서 확인 부탁드립니다. 간단하게 설명드리면, 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 나올 수 있는 경우는 길이가 1인 연속 부분 수열로부터 [1, 4, 7, 9] 네 가지의 합이 나올 수 있습니다. 길이가 2인 연속 부분 수열로부터 [2, 5, 10, 11, 16] 다섯 가지의 합이 나올 수 있습니다. 길이가 3인 연속 부분..
2023.04.13