일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- android
- 아키텍쳐패턴
- 유스케이스다이어그램
- 클래스다이어그램
- stateflow
- SoftwareArchitecture
- MVVM
- Kotlin
- ClientServerArchitecture
- SDLC
- ImageView
- 싱글톤패턴
- scaletype
- 전역상태관리
- SharedFlow
- LazyInitialization
- 시퀀스다이어그램
- DistributedSystems
- NetworkCommunication
- 이미지찌그러짐
- decoding
- LayeredArchitecture
- 이미지짤림
- 구조패턴
- SystemDesign
- RxJava
- 행위패턴
- ArchitecturePatterns
- threadsafety
- 옵서버
- Today
- Total
목록분류 전체보기 (118)
Kyung_Development
안드로이드 개발에서 데이터를 리스트 형태로 보여주는 방법은 다양합니다. 성능, 확장성, 유지보수성을 고려하여 적절한 방식을 선택하는 것이 중요합니다. 이번 글에서는 Android에서 사용할 수 있는 리스트의 종류, 장단점, 그리고 어떤 상황에서 추천하거나 비추천하는지를 정리해보겠습니다.1️⃣ Android에서 리스트를 구현하는 방법1. RecyclerView (✅ 강력 추천)📌 장점성능 최적화 (ViewHolder 패턴 사용)다양한 레이아웃 지원 (Linear, Grid, StaggeredGrid 등)애니메이션 효과 제공📌 단점구현이 다소 복잡하며 Adapter, ViewHolder 작성 필요📌 사용 추천✅ 대량의 데이터를 효율적으로 표시할 때✅ 채팅 앱, 뉴스 피드, 소셜 미디어 피드2. List..
안드로이드 개발을 하다 보면 DialogFragment 내부에서 또 다른 다이얼로그를 띄워야 하는 경우가 생깁니다. 하지만 잘못된 방식으로 show()를 호출하면 IllegalStateException 등의 에러가 발생할 수 있습니다. 이 글에서는 DialogFragment 내부에서 다른 다이얼로그를 띄우는 방법과 FragmentManager의 차이점을 정리해 보겠습니다.1. DialogFragment 내부에서 또 다른 Dialog 띄우기✅ 1.1 새로운 DialogFragment 호출하기DialogFragment 내부에서 또 다른 DialogFragment를 띄우려면 parentFragmentManager를 사용해야 합니다.예제 코드class FirstDialogFragment : DialogFragm..
안드로이드에서 다이얼로그를 띄우는 방법은 여러 가지가 있지만, DialogFragment는 가장 유연하고 강력한 옵션 중 하나입니다. 이번 포스팅에서는 Fragment, DialogFragment, BottomSheetDialogFragment의 차이점과 DialogFragment를 사용하는 이유를 정리해보겠습니다.1. Fragment, DialogFragment, BottomSheetDialogFragment의 차이점1) Fragment역할: 액티비티 내에서 UI를 재사용할 수 있도록 돕는 독립적인 UI 컴포넌트특징:여러 개의 프래그먼트를 하나의 액티비티에서 활용 가능ViewPager 또는 Navigation Component에서 활용됨Activity의 생명주기에 종속됨사용 예시:class MyFrag..
소프트웨어 개발을 공부하거나 설계할 때, 전체 구조를 이해하는 것이 쉽지 않을 때가 있습니다. 특히, 각 구성 요소들이 어떻게 연결되고 역할을 수행하는지를 파악하는 것이 중요하죠. 이를 생물학의 계층 구조와 비교하면 훨씬 직관적으로 이해할 수 있습니다.생물학에서는 세포(Cell)부터 시작해 조직(Tissue), 기관(Organ), 기관계(Organ System), 그리고 완성된 개체(Organism)까지 단계적으로 구성됩니다. 마찬가지로 소프트웨어 개발에서도 가장 작은 코드 단위부터 완성된 앱까지 계층이 존재합니다. 이를 비교하며 정리해보겠습니다.1. 세포 (Cell) → 클래스(Class), 함수(Function), 변수(Variable)세포는 생물체를 구성하는 가장 기본적인 단위입니다. 마찬가지로, ..
안드로이드 앱을 개발할 때, 특정 데이터를 저장하고 불러오는 기능이 필요할 때가 많다. 특히 같은 데이터를 여러 번 추가하면 그 개수를 누적하는 방식으로 관리하고 싶을 때가 있다. 예를 들어, 특정 이벤트(A, B, C 등)가 몇 번 발생했는지 기록하고 싶을 때 SharedPreferences를 활용하면 간단하게 해결할 수 있다.이번 글에서는 기존 데이터가 덮어씌워지는 문제가 발생하지 않도록 하고, 각 항목이 몇 번 저장되었는지 카운트하는 방법을 정리해본다.1. 기존 SharedPreferences 문제점보통 SharedPreferences에 리스트를 저장하는 방법은 다음과 같다.fun setList(context: Context, key: String, values: ArrayList) { val..
import androidx.lifecycle.Observerimport androidx.work.WorkInfoimport androidx.work.WorkManagerfun checkWorkStatus(context: Context, uniqueWorkName: String) { val workManager = WorkManager.getInstance(context) // 고유한 작업 이름으로 상태 확인 workManager.getWorkInfosForUniqueWorkLiveData(uniqueWorkName).observeForever { workInfos -> if (workInfos.isNullOrEmpty()) { println("해당 이름의..
Firebase 이벤트 이름 규칙Firebase 이벤트 이름은 다음과 같은 규칙을 따라야 합니다:소문자만 사용 가능이벤트 이름은 소문자로 작성되어야 합니다.예: event_name띄어쓰기 불가이벤트 이름에 공백이 포함되면 Firebase에서 무시될 수 있습니다.대신 _(언더스코어)를 사용하세요.잘못된 예: event name올바른 예: event_name최대 40자 제한이벤트 이름은 40자를 초과할 수 없습니다.알파벳, 숫자, 언더스코어(_)만 허용특수 문자(예: !, @, #, -, 공백 등)는 사용할 수 없습니다. 매개변수 종류static final StringADD_PAYMENT_INFO = "add_payment_info"결제 정보 이벤트 추가static final StringADD_SHIPP..
Kotlin에서 문자열을 처리하는 다양한 방법과 관련 메서드/기능을 아래에 정리했습니다. 각 방법별로 예시도 함께 제공합니다.1. 문자열 선언Raw String (다중 라인 지원)Escaped String// Escaped Stringval singleLine = "Hello, Kotlin!\nWelcome to string handling."// Raw Stringval rawString = """ Hello, Kotlin! This is a raw string example. You can preserve line breaks.""".trimIndent()2. 문자열 템플릿변수나 표현식을 문자열에 직접 삽입 가능.val name = "Kotlin"val version = 1.8val ..
안드로이드 개발자의 발전은 단계별로 구분할 수 있으며, 각 단계에서 필요한 기술과 경험이 다릅니다. 초급부터 고급까지의 발전을 설명하겠습니다.1. 초급(Android 초보자)초급 안드로이드 개발자는 기본적인 앱을 만들 수 있는 능력을 갖추고 있습니다. 이 단계에서는 안드로이드의 기본적인 사용법과 구조를 배우고, 간단한 앱을 개발하는 데 중점을 둡니다.기본 개념 학습:Activity, Fragment: 안드로이드 앱의 기본적인 구성 요소를 이해하고, 화면 간의 전환을 구현할 수 있습니다.UI 구성: XML 레이아웃 파일을 이용해 화면을 구성하고, 기본적인 뷰(View)를 다루는 방법을 배웁니다.Intents: 앱 내에서 다른 액티비티나 서비스, 방송 수신기를 호출하는 방법을 배웁니다.Toast, Snack..
개발자의 비전을 실현하는 방법문제 해결 능력 강화코딩 문제, 알고리즘 문제 풀이(LeetCode, Codeforces 등)를 통해 논리적 사고 훈련.프로젝트 경험을 통해 실질적인 문제를 발견하고 해결하는 연습.사용자 경험 극대화사용자 설문조사와 피드백을 적극적으로 수집하고 반영.UI/UX 디자인 원칙 학습 및 도입(Figma, Adobe XD 등 도구 활용).지속적인 학습과 성장정기적인 기술 블로그 구독과 온라인 강의 수강(Udemy, Coursera, YouTube 등).기술 세미나, 해커톤, 개발 커뮤니티 참여.효율적인 시스템 구축코드 최적화 및 성능 분석 도구 사용(Profile, Benchmarking 등).클린 코드 원칙과 디자인 패턴 학습 및 적용.팀워크와 협업 능력 향상Git, Jira, S..