분류 전체보기
-
코루틴을 이해해보자! (기초 2편)Coroutines & Flow 2025. 7. 6. 20:10
안녕하세요~! 오늘은 저번 1탄에 이어 2탄으로 코루틴에 대해서 더욱 자세히 알아보고자 합니다~!1. Thread.sleep import kotlinx.coroutines.*fun main() = runBlocking { launch { println("launch: ${Thread.currentThread().name}") // (3) launch: main@coroutine#2 println("launch") // (4) } println("runBlocking: ${Thread.currentThread().name}") // (1) runBlocking: main@coroutine#1 Thread.sleep(500) // 500ms = 0.5s p..
-
코루틴을 이해해보자! (기초 1편)Coroutines & Flow 2025. 6. 29. 21:32
안녕하세요 6월 마지막 주말이네요. 벌써 7월이 다가오고 날씨도 요즘 많이 후덥지근해요. 저는 아이스크림을 좋아해서 요즘 거의 맨날 1일 1아이스크림 하고 있어요🍦오늘은 코루틴에 대해서 알아보겠습니다! 코루틴을 배워야 하는 이유?혹시 앱을 사용하다가 화면이 그대로 멈추고 어떠한 클릭에도 반응하지 않아서 짜증났던 경험이 있으셨나요?이 현상은 메인 스레드라고 불리는 UI 스레드가 다른 요인에 의해 멈추어서 나타나는 것인데요. 네트워크 요청과 같은 비교적 무거운 작업을 메인 스레드에 하게 되면 앱이 멈추는 경우가 발생할 수 있습니다. 이를 해결하기 위해서는 무거운 작업을 UI 스레드가 아닌 백그라운드에서 처리해야 하는데, 이때 필요한 개념이 바로 코루틴(Coroutine) 입니다. 따라서 안드로이드 앱이 끊..
-
채팅 기능 구현하기(with 챗봇)Android 2025. 6. 22. 21:44
안녕하세요~ 일요일 주말 저녁이네요. 요즘 낮엔 더운데 저녁엔 바람이 불어서 산책하기 좋은 것 같아요 😆오늘은 챗봇과 함께 채팅을 하는 기능을 한번 알아보고자 합니다. 참고로 제가 제목 옆에 괄호로 'with 챗봇' 이라고 한 이유는 다른 실제 유저랑 채팅하는 경우도 있기 때문인데요. 이 부분은 추후에 한번 다뤄보겠습니다!채팅 기능 원리채팅 기능의 기본적인 원리는 바로 리사이클러뷰 (RecyclerView) 입니다. 특히 리사이클러뷰에서 뷰타입을 여러개 사용하는 Multi-viewType RecyclerView 가 핵심입니다. 채팅 기능 구현1. UI (XML 기반)첫 번째로, UI 를 작성합니다. RecyclerView 를 배치한 다음에 하위에 사용자가 직접 채팅을 칠 수 있는 대화창을 만들면 됩니다..
-
Bottom Sheet Dialog, Slider, ProgressBarAndroid 2025. 6. 8. 22:06
안녕하세요~ 오늘은 유저 인터페이스(UI) 에 관련된 요소 3가지를 다뤄보려고 합니다 🫠1. Bottom Sheet Dialog화면 아래에서 위로 슬라이드 되어 올라오는 창으로, 부가적인 내용을 사용자에게 제공될 때 사용됩니다. 전체 화면을 덮지 않고 일부만 덮어 효율적이고 직관적으로 화면을 구성하기 좋습니다. 구현 방법부터 알아보겠습니다! 먼저 루트 레이아웃을 FrameLayout 기반인 CoordinatorLayout 으로 해줘야 합니다. bottom sheet dialog 와 관련된 레이아웃은 따로 작성하여 포함시키기 위해 include 속성을 사용합니다. // @layout/bottom_sheet_dialog // ... 첫 번째로, layout_behavior..
-
네이버 지도 SDK 사용하기Android 2025. 6. 1. 22:30
안녕하세요~ 6월의 시작이네요. 점점 여름이 다가오는 듯 합니다.오늘은 숙소를 표시하기 위해 필요한 네이버 지도를 연동하는 방법을 알아보겠습니다! 😀1. 네이버 클라우드 플랫폼에서 애플리케이션 등록하기 먼저 네이버 클라우드 홈페이지를 접속한 다음, 로그인을 해줍니다. 그 다음에는 콘솔창을 누릅니다. 네이버에서 다양한 서비스를 제공해주는데요. 저희는 네이버 지도가 필요하기 때문에 Application Services 에서 Maps 를 선택합니다. 하단의 이용 신청을 눌러주고 이후에 나오는 어플리케이션 등록 버튼도 눌러줍니다. 여기서는 Application 에 대한 정보를 기입해야 합니다. Application 이름, API 선택, Android 앱 패키지 이름이 필요합니다. API 선택은 꼭 Dynam..
-
MVI 디자인 패턴Design Pattern 2025. 5. 18. 22:54
안녕하세요~ 오늘은 디자인 패턴 중 MVI 패턴에 대해 알아보겠습니다.MVI 패턴이란?MVI 는 Model + View + Intent 를 포함하는 아키텍처 패턴을 의미합니다. GUI 프로그래밍에서 주로 언급되는 패턴이고, 3개의 키워드로 나누는 것은 관심사 분리를 위한 것입니다. Model 은 UI의 상태를, View 는 UI 를 의미합니다. 안드로이드 뷰, 컴포즈가 이에 해당합니다. Intent 는 사용자가 화면을 클릭해서 데이터를 로딩하거나 다른 화면으로 이동하는 의도를 의미합니다. 안드로이드 컴포넌트를 실행하는 인텐트와는 다른 개념입니다. MVI 는 순수함수 사이클을 갖습니다. Intent 함수의 호출 결과가 model 함수의 파라미터로 전달되고, model 함수의 호출 결과가 view 의 인수로..
-
카카오 로그인 기능 구현하기Android 2025. 5. 11. 21:29
안녕하세요~ 오늘은 카카오 로그인 기능에 대해서 다뤄보려고 합니다! 작년에 해커톤을 나갔을 때 카카오 로그인을 사용하지 않고 백엔드에서 자체 서버를 구현했었는데 이와 관련한 심사위원 피드백이 생각났습니다. 어뷰징(abusing), 즉 자체 로그인 시스템을 쓰면 한 사람이 여러 개의 계정을 만들어 댓글을 조작하는 등 악의적인 행위를 할 수 있다고 합니다. 따라서 이번에는 피드백을 반영하여 자체 서버를 사용하지 않고 카카오, 네이버, 구글 API 을 이용해보기로 했습니다. 1. 애플리케이션 추가하기 먼저, 해당 url 의 홈페이지에 접속한 다음 카카오 계정으로 로그인을 합니다. 이후에는 '내 애플리케이션'을 클릭합니다. 그 다음엔, 애플리케이션 추가하기를 클릭해줍니다. 그 다음엔 해당 화면이 뜨는데요. 엡..
-
하단 내비게이션 바(BottomNavigationView)Android 2025. 5. 4. 22:28
안녕하세요! 오늘은 캡스톤 진행을 하면서 꼭 필요한 UI 요소 중 하나인 BottomNavigationView 에 대해 소개하겠습니다. 저희 팀은 일차적으로 메인 대시보드 화면을 이렇게 만들어 보았습니다. 그 중 초록색 영역으로 표시한 부분은 하단네비게이션뷰(BottomNavigationView)라고 합니다. 안드로이드 공식 문서를 한번 살펴보겠습니다. 1) 정의"Represents a standard bottom navigation bar for application" → "애플리케이션용 표준 하단 내비게이션 바를 나타낸다" 2) 사용하는 이유 및 제한 요건"Bottom navigation bars make it easy for users to explore and switch between top-..