전체 글(355)
-
Android 앱 성능 최적화: 메모리 누수 해결하기
🌟 들어가기 전안드로이드 개발을 하면서 어쩌면 기본적이지만 가장 신경을 못쓰는 부분이 메모리이다.작은 앱 같은 경우는 메모리가 크게 쌓일 일이 없어 신경을 쓰지 않아도 크래시가 발생하지 않지만,채팅 앱과 같이 앱의 사이즈가 크고 데이터가 많은 경우에는 메모리 관리에 주의해야 한다. 내가 관리하는 앱에서도 계속 OutOfMemoryError 이슈가 발생하고 있고,오류를 수정하면서 메모리 관리의 중요성을 알게 되었다. 그 중 OOM 이슈가 가장 크게 발생하는 원인, 메모리 누수를 해결해보자. 🔍 세부 내용메모리 누수란?메모리 누수(memory leak)는 더 이상 사용되지 않는 객체가 GC(Garbage Collector)에 의해 해제되지 않고 메모리를 계속 차지하고 있는 상태이다.이는 앱 성능 저하와..
2025.01.15 -
보일러 플레이트 코드 (Boilerplate Code)
🌟 들어가기 전언젠가 언뜻 들어봤던 보일러 플레이트 코드.개발자가 가장 싫어한다는 중복된 코드라길래 막연하게 무의미하게 반복되는 코드를 예상했다.그러나 예시를 찾아보면 정작 필요한 소스코드였다.그래서 정확하게 어떤 느낌이며, 해소할 수 있는 방법은 무엇인지 찾아보았다.🔍 세부 내용보일러 플레이트 코드란?특정 기능을 구현하기 위해 반드시 작성해야 하는 형식적이고 반복적인 코드이다.보일러 플레이트라는 이름이 붙여진 이유보일러 플레이트는 철강 산업에서 보일러를 만들 때 사용되는 표준화 된 철판을 의미한다.이렇게 표준화 된 철판이 있으니 대량 생산이 가능하고, 크기나 형태가 일정해 여러 장비에서 재사용 될 수 있었다.그래서 소프트웨어 개발에서도 반복적이고 표준화 된 코드를 가리키는 용어로 사용되기 시작했다...
2025.01.14 -
RxJava 배압(Backpressure) 이슈와 Flowable
🌟 들어가기 전안드로이드 개발자라면 누구나 익숙한 라이브러리인 RxJava.RxJava는 비동기 데이터 처리와 반응형 프로그래밍을 위한 Java 라이브러리다.(참고 링크 👉 https://anovice-dp.tistory.com/179) 데이터를 통신하는 과정에서 앱이 멈추지 않고 자연스럽게 흘러가며, UI가 변경되도록 도와준다.이렇게 유용한 RxJava를 사용할 때 주의할 점 있다. 바로 배압 이슈.Backpressure라고도 한다.🔍 세부 내용1. 배압이란?데이터를 생산하는 속도와 데이터를 소비하는 속도가 불균형할 때 발생하는 문제이다.생산자가 데이터를 너무 빨리 발행하고, 구독자가 이를 처리하지 못하면 데이터가 계속 누적되어 OOM 이슈가 발생한다.2. Flowable로 관리하기Flowable..
2025.01.13 -
[프로그래머스/Kotlin]Lv2 - 광물 캐기
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문제 설명마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다.예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로도가 1씩 소모됩니다. 각 곡괭이는 종류에 상관없이 광물 5개를 캔 후에는 더 이상 사용할 수 없습니다.마인은 다음과 같은 규칙을 지키면서 최소한의 피로도로 광물을 캐려고 합니다.사용할 수 있는 곡괭이중 아무거나 하나를..
2025.01.10 -
[프로그래머스/Kotlin]Lv2 - 모음사전
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문제 설명사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다.단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.제한사항word의 길이는 1 이상 5 이하입니다.word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.입출력 예 word result "AAAA..
2025.01.03 -
[프로그래머스/Kotlin]Lv1 - 햄버거 만들기
오늘의 Kick StringBuilder를 이용하여 시간 복잡도 줄이기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재..
2024.11.08