240321 TIL - Kotlin Weekly

DoDoBest

·

2024. 3. 21. 22:19

Kotlin Weekly

 

Lint를 이용해 코드 리뷰의 redundant 제거하기

https://proandroiddev.com/stop-debating-in-code-reviews-start-enforcing-with-lint-rules-6632c907ea94

 

Stop Debating in Code Reviews. Start Enforcing with Lint Rules.

How to enforce architecture and best practices as unit tests with Konsist

proandroiddev.com

 

코드리뷰를 하다보면, 코딩 convention과 관련된 내용을 언급할까 말까 고민되는 부분이 있다.

예를 들어, Kotlin Coding Convetion에서는 forEach를 단독으로 쓰고 싶다면 for문 사용을 권장한다. 2개 이하의 조건문에서는 if문이 권장되며, 3개 이상의 조건문이 필요하면 when 절이 권장된다.

 

https://kotlinlang.org/docs/coding-conventions.html#loops

https://kotlinlang.org/docs/coding-conventions.html#if-versus-when

 

이러한 것을 언급하는 것은 사소한 것을 지적하는 것처럼 보이기도 하고, 다른 더 중요한 것들을 코드 리뷰할 시간을 뺏어가는 일이 된다.

 

이럴 때, lint rule을 사용하여 코딩 컨벤션을 준수하지 않으면 컴파일 되지 않도록 강제할 수 있다.

https://proandroiddev.com/implementing-your-first-android-lint-rule-6e572383b292

 

Implementing your first Android lint rule

By the end of this article you should be able to write your first Android lint rule. But first …

proandroiddev.com

 

글에서는 Konsist라는 것을 활용하여 유닛 테스트 코드 작성을 통해 아키텍처 컨벤션을 준수했는지 확인하는 방법을 소개한다.
ex) ViewModel이 usecase를 거치지 않고 repository에 직접 접근했는가?

 

 

앱을 일부러 느려지게 하는 방법은 무엇이 있을까? 

https://www.amanjeet.me/stressing-the-jvm-gc-on-android/

 

Stressing the JVM GC on Android

This post talks about a way to stress Java garbage collector.

www.amanjeet.me

 

간혹 앱을 사용하다보면 프레임이 뚝뚝 끊기는 현상을 보곤 한다. 이것을 해결하는 것도 어렵지만, 우아한 방법으로 일부러 발생시키는 것 또한 어렵다고 생각한다. 이 글은 가비지 컬렉터를 활용한 방법을 소개한다.

 

방법은 아래와 같다.

 

1. 2백 만개의 공간을 가진 LinkedHashMap을 만든다.

2. 0 ~ (2,000,000 - 1) 사이의 랜덤한 값을 고르고, 그 값에 해당하는 Key가 LinkedHashMap에 존재하는지 확인한다.

3. 값에 해당하는 key가 존재하지 않으면 0~255 사이의 랜덤한 크기를 가지는 ByteArray를 만들고, 앞선 key에 해당하는 value로써 map에 저장한다.

4. 값에 해당하는 key가 존재할 경우, map에서 key에 해당하는 값을 지운다.

 

이것을 반복하면서 heap 공간에 Fragmentation을 생성하고, GC가 자주 동작하도록 유발하는 것이다.

 

Fragmentation : 메모리 공간을 연속으로 모두 사용하지 않고, 뜨문 뜨문 사용하여 중간에 빈 공간이 생긴 것을 말한다. 이것은 GC가 동작하도록 유발한다.

 

이전에 깔끔한 방법으로 일부러 느리게 동작하는 앱을 만들어보고자 생각만 했었는데, 개발에 대한 경험이 어느정도 쌓이면 꼭 해보고 싶다.

 

최근에 헤이 딜러 앱을 사용하다가 프레임이 끊기는 현상을 발견했다.

차구경에서 차 카테고리로 들어간 다음, 아래로 스크롤하여 나오는 사진 더보기 탭에서 이미지를 눌렀다가 닫았다가를 반복하면 느려진다.

 

 

'TIL' 카테고리의 다른 글

240325 TIL  (0) 2024.03.25
240322 TIL  (1) 2024.03.22
240320 TIL - 학습한 내용 목차만 작성하는 이유  (0) 2024.03.21
240319 TIL  (0) 2024.03.19
240318 TIL  (0) 2024.03.18