본문 바로가기
♞ | 공부일지/♝ | TIL

[Android, 내일배움캠프] 공부일지(2024-08-13)

by immgga 2024. 8. 13.
오늘 공부한 내용 정리(2024년 8월 13일)

 

출처: unsplash.com

 

코드카타 문제풀이

N과 M(1)(Silver 3, 15649번)

https://rkdrkd-history.tistory.com/195

 

[Kotlin, S3] 백준 15649번 N과 M(1)

N과 M(1)(15649번)Silver 3#백트래킹 문제 내용  문제 접근백트래킹을 이용해 해결 가능하다.완전탐색으로도 해결할 수 있지만 백트래킹을 쓰는 게 공부에 도움이 될 것 같다. 1부터 n까지의 자연수

rkdrkd-history.tistory.com

 

 

면접 용어 정리

면접 용어 정리 1일 차

운영 체제(Operating System)

운영 체제는 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스이다.
하드웨어와 소프트웨어를 관리하는 소프트웨어의 전체를 뜻함.

 

Android 4대 컴포넌트

Android 4대 컴포넌트는 Activity, Service, Broadcast Receiver, Content Provider가 있다.
Android 앱 구현에 필요한 필수적인 요소들로 이루어져 있다.

Activity: 사용자와 상호작용을 담당하는 인터페이스이다.
Service: 사용자와 직접적으로 상호작용하는 요소는 아니다. 다만, 백그라운드에서 어떠한 작업을 처리하기 위해 주로 사용됨.
Broadcast Receiver: 안드로이드 os에서 발생하는 각종 이벤트를 받아 핸들링한다.
Contetn Provider: 데이터를 관리하고 다른 Applicaton의 데이터를 제공하는 데 사용된다.

 

 

앱 개발 심화 팀 프로젝트

팀 프로젝트 검색 페이지 UI 구현

RecyclerView Decoration을 이용해 item spacing 적용 중 발생한 이슈 해결.

xml 안에서 padding을 주면 item들 사이의 padding이 원하는 padding의 2배가 되기 때문에 recyclerview decoration을 이용해 content spacing을 주려고 시도했다.

첫 item에는 오른쪽만, 마지막 item에는 왼쪽만 줘야 했는데 첫 데이터는 0으로 해주면 쉽게 구할 수 있었지만, 마지막 item을 구할 방법을 찾지 못했다.

 

결론으로 구글링해 마지막 값은 state.itemCount를 이용해 구할 수 있다는 것을 알게 되었다.

문제 해결 코드

class SearchCategoryItemDecoration(private val spaceSize: Int): RecyclerView.ItemDecoration() {
    override fun getItemOffsets(
        outRect: Rect,
        view: View,
        parent: RecyclerView,
        state: RecyclerView.State
    ) {
        with(outRect) {
            val childAdapterPosition = parent.getChildAdapterPosition(view)
            when (childAdapterPosition) {
                0 -> {
                    right = spaceSize
                }
                in 1 until state.itemCount -> {
                    left = spaceSize
                    right = spaceSize
                }
                else -> {
                    left = spaceSize
                }
            }
        }
    }
}

 

UI 구성 결과

 


 

오늘 공부 내용 정리 및 회고

팀 프로젝트 기능 구현 전 ui 구현을 먼저 진행해 주었다.

문제는 위에서 언급한 recyclerview decoration 문제 말고는 크게 없었다.

내일은 기능을 구현해야 한다.

내가 알고 있는 clean architecture와 조금 다른 부분이 있어서 디자인 패턴을 설계한 팀원에게 물어보면서 진행해야 할 듯하다.

728x90