TIL

240214 TIL

Parcelable 코드를 자동으로 생성해주는 Annotation을 활용하면 편리하다. 모듈 수준의 build.gradle 파일에 아래 플러그인을 추가한 후 plugins { id("kotlin-parcelize") } 변환하려는 클래스에 @Parcelize 어노테이션을 추가해주기만 하면 Parcelable을 위한 코드를 알아서 처리해준다. import kotlinx.parcelize.Parcelize @Parcelize class User(val firstName: String, val lastName: String, val age: Int): Parcelable https://developer.android.com/kotlin/parcelize Parcelable 구현 생성기 | Kotlin | An..

2024.02.15 게시됨

포스팅 썸네일 이미지

학습

RecyclerView 공백 ViewHolder 문제

ConstraintLayout 내부에 ConstraintLayout을 topToBottom=parent 설정으로 숨겼다. 특정 버튼을 선택하면 이 Constraintlayout의 Top 제약 변경해서 사용자에게 보이도록 구현했다. 제약을 update 하는 함수만 있고, delete 하는 함수는 없는데, UNSET은 기존에 설정된 제약 설정을 없애는 것과 동일한 효과를 준다. findViewById(R.id.lyric_view).updateLayoutParams { topToTop = binding.root.id topToBottom = ConstraintLayout.LayoutParams.UNSET } ConstraintLayout이 보일 때, 아래에서 올라오는 효과를 주기 위해 android:anima..

2024.02.14 게시됨

포스팅 썸네일 이미지

학습

Android에서 Retrofit은 왜 사용하는 걸까

REST란 무엇인가요즘의 웹 서버들은 REST라고 불리는 stateless web architecture를 이용해서 서비스를 제공한다. REST는 REpresentational State Transfer의 약자로, REST 아키텍처는 다음과 같은 원칙을 준수해야 한다.일관된 인터페이스(uniform Interface)- 서버가 전송하는 정보는 표준적인 형태여야 하고 일관된 형태여야 된다.- 클라이언트는 정보를 요청할 때, URI 형태를 이용한다.무상태(stateless)- 각 요청은 독립적이어야 한다. 서버는 클라이언트로부터의 요청을 처리하기 위해 과거에 그 클라이언트가 어떤 요청을 했는지를 알 필요가 없다.- 서비스 수준에서 state를 쓸 수 있으나, 서버가 이 state를 알 필요가 없다. 클라이언..

2024.02.08 게시됨

코딩테스트

전역 변수를 활용해서 시간 단축하기

https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제에 대한 해답은 주어진 문제의 로직을 따라 작성하면 어렵지 않게 구할 수 있다. 다만 8,000,000에 3을 6번 곱하면 2,147,483,647을 넘기 때문에, Long으로 변환한 후 계산해줘야 한다. class Solution { fun solution(num: Int): Int { var answer = 0 var n = num.toLong() while (n != 1L && ans..

2024.02.06 게시됨

포스팅 썸네일 이미지

코딩테스트

프로그래머스 두 정수 사이의 합

https://school.programmers.co.kr/learn/courses/30/lessons/12912# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 작은 값부터 큰 값까지 for loop으로 더하려고 했습니다. 그런데 작은 값이 0보다 작은 경우, +- 합에 의해 사라지므로 0보다 작은 값을 더할 필요가 없다는 생각이 들었습니다. 그래서 작은 값과 큰 값의 부호에 따른 분기를 나눴습니다. -100, -10 -> bigNum bigNum > 0, abs(smallNum) > abs(bigNum) -100, 1000 -> bigNum ..

2024.02.05 게시됨