전체 글 173

166. [AI][Android Studio] 로직개발하기 : 타이머 앱 실습

Android 앱 개발에서 타이머 기능은 생각보다 자주 쓰이는 기능입니다. 이번 글에서는 알람 소리와 함께 애니메이션이 적용된 귀여운 타이머 앱을 만들어보며, CountDownTimer, MediaPlayer, 애니메이션(YoYo) 라이브러리, SharedPreferences까지 모두 실습해봅니다.  안녕하세요 😊 오늘은 Android Studio를 활용해 간단한 타이머 앱을 만들며 View 배치, 입력 처리, 타이머 로직, 애니메이션, 알람 사운드까지 실습해보는 시간을 가질게요!앱 목표타이머 시간(초)을 입력받아 시작남은 시간 표시타이머 종료 시 시계 흔들림 + 알람 소리 출력취소 / 종료 / 재시작 기능까지 포함!1. 전체 레이아웃 구성1-1. 시계 이미지 (ImageView) 중심 정렬 + 300..

Frontend/실습 2025.03.04

165. [AI][Android Studio] 로직개발하기 : 고양이 수명계산하기

1. 새 프로젝트 생성Name: catPackage name: com.mybea1109.catLanguage: JavaMinimum SDK: API 24 (Nougat, Android 7.0)빌드 언어: Kotlin DSL (권장값)새로운 Empty Activity로 프로젝트를 시작합니다.2. 앱 UI 구성하기 (activity_main.xml)🔸 핵심 UI 구성요소요소 설명ImageView귀여운 고양이 사진을 표시합니다.EditText고양이의 출생 연도를 입력받습니다.Button생일 계산하기 기능을 실행합니다.TextView계산된 고양이의 나이를 출력합니다.  1)ImageView 설정하기  ImageView 추가 방법Palette의 ImageView를 화면으로 드래그합니다.이미지 리소스 설정오른쪽 ..

Frontend/실습 2025.03.04

164. [AI][Android Studio] 로직개발하기 : 주사위게임 앱 제작

1. 새 프로젝트 만들기 메뉴 탭 바에서 File -> New -> New Project를 순서대로 클릭하고 아래와 같이 No Activity를 선택합니다.    새 프로젝트의 Name을 입력합니다. 필자는 "DiceApp"이라고 이름을 지었습니다. 사용할 개발 언어는 Java입니다.  2. Main Activity 만들기새 프로젝트가 만들어졌습니다. 이제 안드로이드 스튜디오를 사용하여 주사위 게임 앱을 만들기 위한 액티비티를 만들어 보겠습니다.화면 왼쪽의 Project 화면에서 Java 폴더 하위의 첫 번째 폴더에서 마우스 우클릭하여 아래 그림과 같이 순서대로 클릭해 주세요.    Activity Name은 그대로 메인 액티비티로 두고, 아래 런처 액티비티 체크박스를 체크하고 Finish 버튼을 클릭합..

Frontend/실습 2025.03.03

163. [AI][Android Studio] Android Activity Lifecycle(활동 수명 주기) 완벽 가이드

💡 앱이 실행될 때부터 종료될 때까지 Activity가 어떻게 변하는지 이해하면, 앱의 안정성을 향상시키고 비정상 종료를 방지할 수 있습니다.이 글에서는 Android Activity Lifecycle(활동 수명 주기)에 대해 자세히 알아보겠습니다. 1. Android Activity Lifecycle이란?Activity Lifecycle(활동 수명 주기) 는 앱의 Activity가 생성되고, 실행되고, 중지되며, 종료되는 과정을 의미합니다.사용자가 앱을 실행하면 Activity가 생성되며, 앱을 나가면 Activity가 중지 또는 종료됩니다.이러한 과정에서 시스템이 자동으로 호출하는 콜백 메서드가 존재합니다. ✔ Activity Lifecycle을 올바르게 관리하면 다음과 같은 이점을 얻을 수 있습니..

Frontend/실습 2025.03.03

162. [AI][Android Studio] 안드로이드 스튜디오 설치하는 방법

💡 안드로이드 스튜디오는 Android 앱을 개발하기 위한 공식 도구입니다.이 글에서는 안드로이드 스튜디오를 설치하는 방법을 초보자도 쉽게 따라 할 수 있도록 자세히 설명합니다. 1. Android Studio란?Android Studio는 안드로이드 앱을 개발하는 데 필요한 모든 기능을 갖춘 강력한 개발 도구입니다1. 주요 기능은 다음과 같습니다.강력한 코드 편집기와 자동 완성 기능앱 UI를 시각적으로 디자인할 수 있는 레이아웃 편집기에뮬레이터(가상 스마트폰)를 통한 앱 테스트Git과 같은 버전 관리 도구와의 연동Kotlin 및 Java 언어 지원  2. 시스템 요구 사항 확인Android Studio를 설치하기 전에 컴퓨터가 최소 요구 사항을 충족하는지 확인해야 합니다25.Windows 시스템 요구..

Frontend/실습 2025.03.03

161. [AI] [Fine-Tuning] : Object Detection을 활용한 도로 이미지 분석

1. 개요Object Detection(객체 탐지)은 이미지에서 객체를 식별하고, 위치를 파악하는 컴퓨터 비전 기술입니다.이 글에서는 Hugging Face의 transformers 라이브러리의 pipeline을 활용하여도로 이미지 속 자동차, 신호등, 보행자 등을 감지하는 방법을 자세히 살펴보겠습니다.주요 내용transformers의 pipeline을 이용한 Object Detection matplotlib를 활용한 객체 시각화모델의 결과 해석 및 Fine-Tuning 확장2. Object Detection이란?Object Detection(객체 탐지)은 이미지 속에서 특정 물체가 어디에 위치하는지 박스로 표시하고,해당 객체가 무엇인지 분류하는 기술입니다.Object Detection의 주요 개념Cla..

Streamlit/이론 2025.02.28

160. [Error Handling] [ Backend ] NullPointerException 완벽 해결 가이드

1. NullPointerException(NPE)란?NullPointerException(NPE) 은 Java 프로그래밍에서 가장 흔하게 발생하는 런타임 오류 중 하나입니다.즉, 객체가 null 상태일 때, 해당 객체의 속성이나 메서드에 접근하려고 하면 발생합니다.  쉽게 말해"객체가 존재하지 않는데, 객체처럼 사용하려고 할 때 발생하는 오류!"NullPointerException이 발생하는 원인원인 설명객체 초기화 누락객체를 생성하지 않고 사용하려 할 때배열 요소 초기화 누락배열을 선언했지만 요소를 초기화하지 않고 접근할 때컬렉션 요소 초기화 누락List 또는 Map 등에 null 값이 포함될 때메소드 반환값이 null메소드에서 null을 반환하고, 그 값을 사용하려 할 때외부 리소스 접근존재하지 않..

Error Handling 2025.02.28

159. [AI] [NLP] Google Gemma-2-9B-IT 모델 분석 및 학습 데이터 총정리

1. 개요 Google DeepMind에서 개발한 Gemma-2-9B-IT 모델은 Instruction-Tuned (IT) 된 강력한 자연어 처리(NLP) 모델입니다.Gemma-2-9B-IT 모델의 주요 특징✅ Transformer 기반 모델✅ Instruction-Tuning & RLHF 적용✅ 9B (90억 개) 파라미터 보유✅ Hugging Face safetensors 포맷 지원✅ FP16 지원 (고속 처리 가능)✅ 대규모 데이터셋을 학습하여 강력한 성능 제공이 모델은 대화형 AI, 텍스트 생성, 요약, 번역, 코드 생성 등 다양한 작업에서 활용될 수 있습니다.하지만, 어떤 데이터를 학습했기에 이렇게 강력한 성능을 제공할 수 있을까요?이번 글에서는 Gemma-2-9B-IT 모델의 학습 데이터와 주..

AI/실습 2025.02.25

158. [AI] [NLP] Gemma 모델 사용 시 transformers를 활용하는 이유

📌 1. 개요Gemma 모델은 Google DeepMind에서 개발한 강력한 **LLM(대형 언어 모델)**입니다.이 모델을 Streamlit에서 활용하려면 Hugging Face의 transformers 라이브러리를 사용해야 합니다.📌 하지만, 왜 transformers를 사용해야 할까요? ✅ 모델을 쉽고 빠르게 로드✅ 보안성이 강화된 safetensors 활용✅ 대규모 모델을 효과적으로 샤딩(Sharding)하여 로드✅ Hugging Face의 AutoModel을 통한 자동화된 설정 이 블로그에서는 transformers를 활용하여 Gemma 모델을 로드하는 이유와 과정을차근차근 설명해드리겠습니다.  🔍 2. transformers 라이브러리를 사용하는 이유✅ 1) 모델을 쉽고 빠르게 로드 가능..

AI/실습 2025.02.24

157. [Streamlit] [AI] :Teachable Machine을 활용한 파충류 분류 AI(2)

Teachable Machine + Streamlit을 활용한 실전 프로젝트 개선 및 확장🎯 프로젝트 발전 과정과 추가 기능이 프로젝트는 이미지 분석을 통한 파충류 종 판별 및 특수동물 병원 검색, 유튜브 영상 추천 기능을 제공합니다.하지만 1편에서 다룬 기본 기능을 실제 프로젝트에서 적용하다 보니 한계점과 개선해야 할 사항이 발견되었습니다.따라서 2편에서는 다음과 같은 기능을 추가 및 개선하였습니다. 🛠 1. 실시간 바코드 스캔 기능 추가🏷 배경 및 필요성애완동물 사료, 사육 용품 등을 구매할 때 바코드를 스캔하여 제품 정보를 빠르게 확인할 수 있도록 기능을 추가.제품의 유통기한, 성분 정보, 저장 방법(냉장/냉동 여부) 등을 한눈에 파악 가능.공공 데이터 API를 활용하여 실시간으로 제품 데이터..

Project 2025.02.24
home
}