애플리케이션 테스트 01. 자동테스트란?
개발/안드로이드2024. 5. 9. 19:01애플리케이션 테스트 01. 자동테스트란?

JetpackCompose의 튜토리얼 codelabs을 하면서 자동 테스트와 ViewModel의 단위 테스트 작성을 해보게 되었다.내가 해본 테스트라곤 학부생 토이프로젝트 수준이었기 때문에 코드를 작성해보고 테스트로 변수 부분을 바꿔가며 에뮬레이터나 기기에 연결해 직접 부딪혀 LogCat에서 잡고 수정하는 것이었다.   자동 테스트란? 소프트웨어의 테스트는 소프트웨어가 예상대로 작동하는지 확인하는 구조화된 방법이다. 자동 테스트는 개발자가 작성한 코드의 또 다른 부분이 올바르게 작동하는지 확인하는 코드이다. 테스트는 앱 개발 프로세스에서 중요한 부분으로, 앱 테스트를 일관되게 실행하여 앱을 공개적으로 출시하기 전에 앱의 기능 동작과 사용성을 확인할 수 있다. 변경사항이 도입될 때 테스트를 통해 기존 코드..

20529번: 가장 가까운 세 사람의 심리적 거리
백준/문제2024. 5. 9. 04:0220529번: 가장 가까운 세 사람의 심리적 거리

문제 출처 : https://www.acmicpc.net/problem/20529 언어 : Kotlin 문제 설명 :여러분은 요즘 유행하는 심리검사인 MBTI에 대해 들어보았는가?MBTI(Myers-Briggs Type Indicator)는 C.G.Jung의 심리유형론을 근거로 하여 Katharine Cook Briggs와 Isabel Briggs Myers가 보다 쉽고 일상생활에 유용하게 활용할 수 있도록 고안한 자기보고식 성격유형지표이다. (출처: 위키백과) MBTI는 아래와 같이 네 가지 척도로 사람들의 성격을 구분한다.외향(E) / 내향(I)감각(S) / 직관(N)사고(T) / 감정(F)판단(J) / 인식(P)각 척도마다 두 가지 분류가 존재하므로, MBTI는 총 2^4 = 16가지 유형이 있음을..

11403번: 경로 찾기
백준/문제2024. 5. 9. 02:5011403번: 경로 찾기

문제 출처 : https://www.acmicpc.net/problem/11403 언어 : Kotlin 문제 설명 :가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래프의 인접 행렬이 주어진다. i번째 줄의 j번째 숫자가 1인 경우에는 i에서 j로 가는 간선이 존재한다는 뜻이고, 0인 경우는 없다는 뜻이다. i번째 줄의 i번째 숫자는 항상 0이다. 출력 :총 N개의 줄에 걸쳐서 문제의 정답을 인접행렬 형식으로 출력한다. 정점 i에서 j로 가는 길이가 양수인 경로가 있으면 i번째 줄의 j번째 숫자..

6064번: 카잉 달력
백준/문제2024. 5. 9. 01:476064번: 카잉 달력

문제 출처 : https://www.acmicpc.net/problem/6064 언어 : Kotlin 문제 설명 :최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 x 은 그들 달력의 마지막 해로서, 이 해에 세상의 종말이 도래한다는 예언이 전해 온다. 예를 들어, M = 10 이고 N = 12라고 하자. 첫 번째 해는 로 표..

앱 아키텍처 알아보기
개발/안드로이드2024. 5. 8. 15:56앱 아키텍처 알아보기

앱 아키텍처는 클래스 간에 앱 책임을 할당하는 데 도움이 되는 가이드라인을 제공한다. 앱 아키텍처가 잘 디자인되어 있다면 앱을 확장하고 더 많은 기능을 추가하는데 도움이 된다. 아키텍처는 팀 공동 작업을 간소화시킬 수도 있다. 가장 일반적인 아키텍처 원칙은 관심사 분리와 모델에서 UI 만들기이다.관심사 분리란, 디자인 원칙은 각각 별개의 책임이 있는 여러 함수 클래스로 앱을 나눠야 한다는 원칙이다.모델에서 UI 만들기란, 모델에서 UI를 만들어야한다는 원칙으로, 모델은 앱의 데이터 처리를 담당하고 앱의 UI 요소 및 앱 구성요소와 독립되어 있으므로 앱의 수명 주기 및 관련 문제에 영향을 받지 않는다. 아키텍처 원칙에 대한 더 자세한 내용은 다음을 참고하라.https://developer.android.c..

rememberSaveable이란
개발/안드로이드2024. 5. 8. 14:09rememberSaveable이란

Compose는 리컴포지션 중에 상태를 기억하지만, 구성 변경 중에는 이 상태를 유지하지 않는다.그렇기에 상태를 유지하기 위해서는 remeberSaveable을 사용해야 한다. https://small-stepping.tistory.com/880 Jetpack Compose에서의 StateJetpack Compose에서의 State란?상태는 어떤 타입이든 될 수 있다. Int, Float, Double, Boolean, String, 여러 값을 포함한 data class 등Jetpack Compose에서는 이 상태 값이 변경될 때마다 UI는 업데이트 된다.  Composesmall-stepping.tistory.com 이전에 공부했던 상태를 저장하는 remember와 mutableStateOf()는 상태..

1036번: 36진수
백준/문제2024. 5. 8. 03:331036번: 36진수

문제 출처 : https://www.acmicpc.net/problem/1036 언어 : Kotlin 문제 설명 :36진법의 숫자는 0부터 9까지의 수와 알파벳 A에서 Z로 나타낸다. A부터 Z까지 알파벳은 10부터 35에 차례대로 대응한다. 36진법의 수 N개가 주어진다. 36진법 숫자(0-9, A-Z) 중에서 K개의 숫자를 고른다. 그러고 나서 N개의 수 모두에서 나타난 그 숫자를 Z로 바꾼다. 그 이후에 N개의 수를 모두 더한다. 이때 가능한 합의 최댓값을 구하는 프로그램을 작성하시오. 합의 최댓값도 36진수로 출력한다. 입력 :첫째 줄에 수의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 수가 주어진다. N은 최대 50이고, 수의 길이도 최대 50이다. 마지막 줄에 K가 주어진다. K는 36보다 ..

30501번: 관공... 어찌하여 목만 오셨소...
백준/문제2024. 5. 8. 02:3830501번: 관공... 어찌하여 목만 오셨소...

문제 출처 : https://www.acmicpc.net/problem/30501 언어 : Kotlin 문제 설명 :천하제일의 장수 관우도 결국 죽음을 맞이했다. 유비와 장비는 관우의 복수를 위해 N명의 용의자 중 관우를 죽인 범인을 찾으려 한다. 관우와 함께 있었던 장수의 말에 따르면 관우를 죽인 범인의 이름에는 S가 들어간다. 관우를 죽인 용의자 이름의 리스트에서 관우를 죽인 범인의 이름을 찾는 프로그램을 작성하시오. 입력 :첫째 줄에 용의자의 수를 뜻하는 정수 N이 주어진다. (1 둘째 줄부터 N개의 줄에 걸쳐 용의자의 이름이 한 줄에 하나씩 주어진다. 이름은 영어 대문자로만 이루어져 있으며, 이름의 길이는 100글자를 넘지 않는다. 항상 답이 유일하게 존재하는 경우만 입력으로 주어진다. 출력 :첫..

2993번: 세 부분
백준/문제2024. 5. 8. 02:362993번: 세 부분

문제 출처 : https://www.acmicpc.net/problem/2993 언어 : Kotlin 문제 설명 :독서를 싫어하는 원섭이는 책에서 단어 하나를 임의로 선택한다. 그 다음, 단어를 세 부분으로 나눈다. 세 부분으로 나눈 단어를 각각 순서를 뒤집는다. (첫 번째 글자와 마지막 글자의 위치를 바꾸고, 두 번째 위치와 뒤에서 두 번째 글자의 위치를 바꾸고... 이런 식으로 계속) 마지막으로, 이 세 단어를 나누기 전과 같은 순서로 합쳐 하나로 만든다. 원섭이는 사전순으로 가장 앞서는 단어를 만들려고 한다. 원섭이가 고른 단어가 주어졌을 때, 만들 수 있는 단어 중 가장 앞서는 단어를 출력하는 프로그램을 작성하시오. 입력 :첫째 줄에 원섭이가 고른 단어가 주어진다. 고른 단어는 알파벳 소문자로 이..

2890번: 카약
백준/문제2024. 5. 8. 01:142890번: 카약

문제 출처 : https://www.acmicpc.net/problem/2890 언어 : Kotlin 문제 설명 :상근이는 카약 대회를 개최했다. 대회는 전세계에 생중계되고, 위성이 경기장 전체를 촬영하고 있다. 상근이는 위성 사진을 바탕으로 실시간 순위를 계산하는 프로그램을 만들려고 한다. 위성 사진은 R행 C열이다. 모든 줄의 첫 번째 글자는 'S'이고 출발선을 의미한다. 또, 마지막 글자는 'F'이고 이것은 결승선을 의미한다. 대회에 참가한 팀은 총 9팀이고, 각 팀은 1부터 9까지 번호가 매겨져 있다. 카약은 항상 열에 대해 연속하는 세 칸을 차지하며, 카약 번호로 표시한다. 마지막으로 물은 '.'로 나타나 있다. 팀의 순위는 결승선으로부터 떨어진 거리로 측정한다. 가까울수록 순위가 높다. 만약,..

image