포스팅 썸네일 이미지

TIL

240426 TIL - 내일배움캠프 숙련주차 팀프로젝트 완료

https://github.com/AndroidJeong/NBC_TwoOfUs GitHub - AndroidJeong/NBC_TwoOfUsContribute to AndroidJeong/NBC_TwoOfUs development by creating an account on GitHub.github.com 내일배움캠프 숙련주차 팀프로젝트가 끝났습니다. 이제 심화 주차(개인 학습 2주 + 팀프로젝트 2주), 실전 프로젝트(6주)가 남았는데, 이번 팀프로젝트를 통해 느낀점을 정리하고자 합니다. 1. 공통으로 사용하는 데이터는 엄격하게 관리하자커리큘럼 상에서 Repository를 배우지 않아 사용할 수 없었기에 어쩔 수 없이 Object class를 이용해 데이터를 관리했습니다. 이때, 데이터의 변화를 추적하..

2024.04.27 게시됨

포스팅 썸네일 이미지

코딩테스트

프로그래머스 모음사전 Kotlin

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  로직각 자릿수는 A E, I, O, U, 없음 총 6개가 가능합니다. 사전에서 문자열 사이의 공백을 허용하지 않으므로 A(없음)A와 같은 것은 불가능합니다. 경우의 수 5번째 자릿수까지 고정 시키고 가능한 경우의 수 = 1 4번째 자릿수 ~ = 1 + 5 3번째 자릿수 ~ = 1 + 5*1 + 5*5*1 2번째 자릿수 ~ = 1 + 5*1 + 5*5*1 + 5*5*5*1 1번째 자릿수 ~ = 1 +..

2024.04.25 게시됨

포스팅 썸네일 이미지

코딩테스트

프로그래머스 2개 이하로 다른 비트 Kotlin

https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  로직짝수인 경우에는 1을 더해줬고홀수인 경우에는 오른쪽에서 최초로 만나는 0 비트와 바로 뒤에 있는 1비트를 반전시켜줬습니다. 숫자의 비트를 확인하기 위해 string으로 변환하지 않고, 숫자 2에 2를 곱하면서 각 비트를 확인해줬습니다.비트를 반전시키기 위해 xor 연산을 이용했습니다. 2를 곱하는 대신 shl, 2를 나누는 대신 shr 함수를 이용해도 됩니다.class Solution { ..

2024.04.25 게시됨

포스팅 썸네일 이미지

학습

Fragment에서 ViewPager2 + TabLayout 사용하기

Fragment에서 ViewPager2를 사용하게 된 이유공식 문서 가이드(https://developer.android.com/develop/ui/views/animations/screen-slide-2)에 따라 Activity에서 ViewPager2를 사용했습니다. ViewPager에 있는 Fragment에서 새로운 Fragment 화면을 보여줘야 했습니다.  FragmentContainerView가 없다보니, 아래와 같이 Fragment의 root layout의 Fragment를 바꿔주도록 구현했습니다. // Fragment 최상위 Layout에 id를 설정val bundle = Bundle().apply { putParcelable(BUNDLE_KEY_FOR_CONTACT_INFO..

2024.04.24 게시됨

포스팅 썸네일 이미지

설정

ezgif !고속모드 -> ScreenToGif

ezgif ezgif 홈페이지를 이용하면 영상을 GIF로 간편하게 변환할 수 있습니다. 그런데, 영상을 업로드하고 변환하는 시간이 오래 걸리지 않았나요? F12를 누르고 Console 창에 !고속모드를 입력하면 좀 더 빨리 사용할 수 있습니다.😀 ScreenToGif 장난이구요😅 ezgif처럼 영상을 변환할 수 있는 무료 오픈소스 프로그램인 screenToGif를 이용하면 됩니다! 아래 사이트에 접속해서 프로그램을 받아주세요. 저는 Portable을 이용하고 있습니다. https://www.screentogif.com/ ScreenToGif를 그냥 사용하면 속도가 느립니다. GPU를 이용하도록 도와주는 FFMPEG를 다운받아 설정해줘야 합니다. 아래 링크에 접속해서 ffmpeg gpl 버전을 다운받아 주..

2024.04.19 게시됨

포스팅 썸네일 이미지

TIL

240417 TIL - Fragment Lifecycle, ListView와 RecyclerView 비교, 직렬화

Fragment Lifecycle Fragment View는 Fragment의 생명주기로부터 독립적인 생명주기를 가집니다. Fragment View의 생명주기는 LiveData observing과 같이 화면에 표시되어야만 의미 있는 행위들을 다루는데 유용합니다. Fragment의 생명주기는 Fragment Manager에 의해 관리되고 설정됩니다. FragmentManager는 Fragment의 생명주기와 더불어 Fragment를 Host Activity에 attach하고, detach 하는 행위를 수행합니다. Fragment는 onAttach, onDetach 콜백 메서드를 통해 이 이벤트가 발생했을 때의 동작 처리를 지원합니다. 따라서 XML에서 Fragment를 직접 사용해서는 안 되고, Fragm..

2024.04.18 게시됨

포스팅 썸네일 이미지

학습

직렬화란 무엇이고, 왜 필요하며, 어떻게 직렬화를 할 수 있을까?

직렬화란?직렬화란 Application에서 사용하는 데이터를 네트워크를 통해 전송할 수 있는 형태, 데이터베이스나 파일에 저장할 수 있는 형태로 변환하는 작업을 의미합니다. 역직렬화란 외부 소스로부터 읽어온 데이터를 runtime Object로 변환하는 작업을 의미합니다. 직렬화 포맷으로 자주 사용되는 형태는 JSON, Protocol buffers가 있습니다. 그 외에 CBOR, Properties, HOCON 등이 있습니다. 직렬화를 해주는 이유는?만약 Android와 IOS 간에 통신을 할 때, Android에서 사용하는 데이터 클래스 형태 그대로 IOS에게 전달하면, IOS는 수신한 바이트코드만으로는 데이터를 해석할 수 없습니다. 그래서 Android와 IOS가 통신하기 전에 서로 약속된 형태(그..

2024.04.18 게시됨

포스팅 썸네일 이미지

TIL

240415 TIL RecyclerView 성능 개선하기

RecyclerView 성능 개선하기 RecyclerView의 ViewHolder에서 입력된 데이터에 따라 View를 inflate하도록 구현했는데, inflate한 View들을 재활용하도록 수정함으로써 스크롤 시의 버벅거림을 해결했습니다. https://github.com/DoTheBestMayB/PlzStopRe/issues/5 경로 검색 결과 화면 성능 개선 · Issue #5 · DoTheBestMayB/PlzStopRe 현재 상황 경로 검색 결과 화면에서 CosntraintLayout이 중첩된 깊이가 매우 깊습니다. S23 울트라에서 네이버 지도 앱과 PlzStop 앱 화면을 비교한 결과, 측정, 레이아웃 시간이 압도적으로 오래 걸렸고 github.com ViewHolder가 보이지 않게 되면 ..

2024.04.15 게시됨

포스팅 썸네일 이미지

코딩테스트

Leetcode 42. Trapping Rain Water

https://leetcode.com/problems/trapping-rain-water 제가 생각한 아이디어는 다음과 같습니다. 왼쪽에서부터 오른쪽으로, 오른쪽에서 왼쪽으로 총 2번 탐색을 합니다. 이때, 처음과 끝은 채울 수 없으므로 첫 높이로만 지정하고 물을 채우지는 않습니다. 왼쪽에서 오른쪽으로 탐색할 때, 방문한 벽이 탐색하며 방문한 가장 큰 벽보다 작을 경우, 가장 큰 벽 높이 - 현재 벽 높이만큼 물을 채울 수 있다고 기록합니다. 방문한 벽이 이전 가장 큰 벽보다 크거나 같은 경우에는 가장 큰 벽의 높이만 갱신하고 넘어갑니다. 다시 오른쪽에서 왼쪽으로 탐색할 때, 방문한 벽이 오른쪽에서 왼쪽으로 탐색하며 방문한 가장 큰 벽보다 작을 경우, 가장 큰 벽 높이 - 현재 벽 높이 값과 왼쪽에서 오..

2024.04.12 게시됨

포스팅 썸네일 이미지

TIL

240411 TIL - 당근마켓 비슷한 앱 만들기

당근마켓 비슷한 앱 만들기 내일배움캠프 앱개발 숙련주차 개인 과제로 당근마켓과 비슷한 간단한 앱 만들기를 구현했습니다. https://github.com/DoTheBestMayB/NBC-AppleMarket GitHub - DoTheBestMayB/NBC-AppleMarket: 내일배움캠프 - 앱개발 숙련 개인 과제 - 당근마켓 내일배움캠프 - 앱개발 숙련 개인 과제 - 당근마켓. Contribute to DoTheBestMayB/NBC-AppleMarket development by creating an account on GitHub. github.com 당근마켓 매너온도 안내 문구 만들기 당근마켓에서 매너온도를 누르면 나오는 안내 팝업은 사각형의 TextView 위에 삼각형 View가 존재하는 형태..

2024.04.11 게시됨