분류 전체보기64 #3 Who Made This - 슬랙 이모지 생성기 사이트 우테코 레벨2 과정에서 희망하는 사람을 대상으로 제 1회 해커톤을 진행한 적이 있었다.이웃주민인 허모씨와, 모집 당시 우테코 캠퍼스에 늦게까지 남아있던 샘모씨와 함께 해커톤에 참가하게 되었다. 이 때에 우테코 코치분들과 크루들과 살짝의 친밀감이 형성되는 참이라서 몰래 이모지 생성 사이트들에서 이모지를 만들어 슬랙에 반응하는 것이 나의 취미였는데, 며칠 하다보니 애니메이션 이모지가 있는 사이트 따로 글씨만 있는 이모지 사이트 따로 분류되어 있는 것이 불편해 하나의 사이트로 모으는 아이디어를 냈었다. 여러 아이디어가 나왔으나 빠르게 제작 가능한 위의 아이디어로 해커톤이 진행되게 되었고, 3위로 좋은 결과를 얻게 되었다.다음을 기약하며 github organization도 하나 팠다.https://github.. 2026. 7. 18. #2 위젯버디 - 위젯으로 펫 키우기 거의 1년 가까이 다 돼서 쓰는 글이다. 내 2번째 출시 작품이다. (사실 정식으로는 첫번째이다.)우아한테크코스 오픈미션 때 만들었던 어플이고, 오픈미션 하는 동안 테스트 기간을 거쳐서 지금은 앱 배포가 된 상태이다.작고 소중한 12명이 내 어플을 다운받아준 상태이다.. ㅠㅠ https://play.google.com/store/apps/details?id=com.starterkim.widgetbuddy&hl=ko 위젯 버디 - 위젯으로 귀여운 펫 키우기 - Google Play 앱내 손안의 작은 친구🐾 위젯으로 만나는 귀여운 펫 키우기!play.google.com어플에 쓰인 게임기 사진은 (ai의 도움을 조금 받았지만) 직접 만들었고, 뱁새 이미지랑 용 이미지는 직접 도트를 찍어 만들었다. 기본적인 .. 2026. 7. 16. Interface 와 Abstract Class 비슷해 보이지만 다른, 그래서 헷갈리는 둘에 대한 이야기입니다. 들어가며코틀린으로 코드를 짜다 보면 한 번쯤 마주치는 고민이 있습니다."이거 인터페이스로 만들까, 추상 클래스로 만들까?" 둘 다 공통된 무언가를 추상화한다는 점에서 비슷해 보이지만, 분명한 차이가 있고 상황에 맞게 골라 쓰는 게 좋은 설계의 시작입니다.오늘은 이 둘의 차이를 알아보고, 언제 무엇을 써야 할지 정리해보겠습니다. 정의Interface인터페이스는 '할 수 있는 것들의 명세'입니다."이 인터페이스를 구현한 애는 이런 걸 할 수 있어야 해"라고 약속하는 것입니다.interface Clickable { fun click()}인터페이스는 메서드의 선언만 있을 수 있고(구현은 선택), 상태를 가질 수 없으며(값을 저장 못 함), 한.. 2026. 5. 25. 우테코 미션으로 깃허브 잔디🌱 심기 !! (Fork 해온 레포지터리 잔디 심는 법 - Git Mirror Push) 안녕하세요.우테코 안드로이드의 활력소 별터입니다⭐️ (ㅋㅋ)오늘은 레벨 2 미션이었던 shopping-cart 미션으로 깃허브 잔디를 심으려고 합니다.잠깐 !! 깃허브 잔디란 ?Github 프로필에 들어가면, 보이는 초록초록한 '컨트리뷰션 그래프' 입니다~ 지금 보시면 최근 활동이 꽤 듬성듬성한데요.제가 활동을 안 해서 듬성듬성한 것도 맞겠지만, 그런 것이 아니라 다~ fork 해온 레포지터리에서 열심히 커밋했기 때문에 제 프로필에 보이지 않는 것입니다. 그런데 왜 잔디가 안 심어질까요?제 아이디로도 잘 커밋했는데, 왜 안 심어지죠..?그 이유는 잔디가 심어지기 위한 조건으로 'commit 이 fork 한 레포지터리가 아니라 원본 레포지터리여야 한다'가 있기 때문입니다.우테코 미션들을 하다보면 원본 레.. 2026. 5. 21. Room의 suspend vs Flow - 어느 스레드에서 실행될까? 서론지난 주 디노🦖 코치의 수업을 듣고 파생된 주제입니다.Room 은 복잡한 쿼리 작성 없이 컴파일 타임에 오류를 잡아내고 로컬 데이터베이스를 안전하게 관리할 수 있게 해주는 라이브러리입니다.일을 시킬 때 혼자서 다 하는 대신 남한테 나눠 시키는 것을 비동기 작업이라고 하는데요. 데이터베이스의 접근을 안전하게 하기 위해 비동기 처리를 할 때 Room 에서는 크게 suspend 방식과 Flow 방식이 있습니다. 그래서 저는 궁금했습니다."suspend 와 Flow 는 따로 처리를 해주지 않아도 이 키워드만 붙인다면 Room이 알아서 메인 스레드가 아닌 다른 스레드에서 해줄까? "이번 글에서는 이 궁금증을 해결합니다. 본론어떤 스레드에서 하는지 알기 전에 Dispatcher 의 개념을 조금 알아야 합니다... 2026. 5. 19. [Jetpack Compose] Skeleton UI 구현하기 (Shimmer Effect) 요즘 하고 있는 우테코 미션은 바로 '배달의민족 B마트 구현하기'입니다 ~(물론, 실제 B마트보다는 많이 간소화된 미션입니다. 지금은 상품 리스트와 장바구니까지 구현중..) 제가 구현한 이미지 로딩 방식은 인터넷에서 이미지를 찾아 로드하는 방식입니다. 그래서 로딩 시간이 좀 걸립니다.로딩 하는 동안 사용자가 지루하지 않도록 '아, 지금 로딩이구나'를 알게 하기 위한 장치가 필요합니다.그래서 저는 로딩 스피너 방식을 사용했습니다 ! 로딩 스피너를 구현하기 위해서 작성했던 코드는 아래와 같습니다.@Composablefun ShoppingLoading(modifier: Modifier = Modifier) { Box( modifier = modifier .. 2026. 5. 13. 이전 1 2 3 4 ··· 11 다음