분류 전체보기 28

Android XML Layout

오늘은 안드로이드 앱을 만들 때 가장 먼저 구성하게 되는 것이 바로 화면, 즉 UI입니다. 그리고 이 UI를 만드는 대표적인 방법이 XML Layout에 대해 알아보겠다!XML LayoutXML Layout은 안드로이드에서 앱의 화면에 보여질 UI 요소들을 배치하고 구성하는 파일이다.버튼, 텍스트, 이미지 등 뷰(View)를 어떤 위치에 어떤 스타일로 보여줄지를 미리 선언적으로 작성할 수 있다.기본 구조 최상단 태그는 보통 ViewGroup (LinearLayout, ConstraintLayout 등)android:layout_width, android:layout_height는 모든 View에 필수이다.layout_width / layout_height 속성match_parent: 부모 크..

android 2025.06.09

2025 AI Expo Korea 회고

안녕하세요! 오늘은 2025년 AI Expo Korea에 참가하고 다른 기업이나 학교의 부스들을 구경한 회고를 써보겠습니다!어떻게 갔을까?사실 나는 AI Expo Korea라는 행사 자체도 모르고 있었다. 그런데 선배가 곰스로 가는거 어떠냐고 하면서 신청하셨다고 해서 AI Expo를 가게되었다, 구성원은 3학년 선배 1명, 그리고 나를 포함한 2학년 4명으로 총 5명이었다. 5월 14일 부터 16일까지 진행이 되는거라서 하루 전날인 13일에 서울 코엑스에 가서 세팅을 진행했다.AI Expo 행사장!행사장에 도착하자마자 가장 먼저 느낀 건 진짜 규모가 크다였다. 코엑스 전시관을 가득 메운 수많은 기업, 학교, 기관들이 각각의 기술과 서비스를 소개하려고 준비 중이었고 엄청 신기한 것들이 많이 보였다.부스들은..

회고록 2025.05.31

Android TextField에서 사용하는 VisualTransformation

안녕하세요. 오늘은 Jetpack Compose에서 텍스트 입력 필드를 더욱 유연하고 효율적으로 다룰 수 있도록 도와주는 VisualTransformation에 대해 알아보겠습니다.VisualTransformationVisualTransformation은 Jetpack Compose에서 텍스트의 표시 방식을 변형하는 데 사용되는 도구이다. 사용자로부터 텍스트 입력을 받는 TextField와 같은 컴포넌트에서 텍스트가 화면에 어떻게 보일지를 조정할 수 있다.왜 사용해야할까?거의 텍스트 필드는 사용자가 직접 입력한 데이터를 그대로 화면에 보여준다. 하지만 입력되는 데이터는 때로 특정 형식을 필요로 한다.예를 들어, 비밀번호는 *로 보이게 하거나, 전화번호는 010-1234-5678과 같은 형식을 보여주고 싶..

android 2025.05.07

Android Module & Multi-Module

안녕하세요 오늘은 Android 개발에서 프로젝트를 체계적으로 관리하기 위해 꼭 알아야 할 개념, Module과 Multi-Module에 대해 알아보겠습니다.ModuleModule은 하나의 독립적인 코드 단위이다.모듈은 독자적인 build.gradle.kts 파일을 가지고 있고, 독립적으로 빌드하거나 테스트할 수 있다.Application Module: 최종 앱 실행용 모듈 (com.android.application)Library Module: 코드나 리소스를 제공하는 모듈 (com.android.library)Java/Kotlin Library Module: 안드로이드 의존성이 없는 Java 또는 Kotlin 기반 모듈Module 만드는 법new -> module을 누르고Templates에서 하나를 ..

android 2025.04.29

Android clickable

오늘은 Jetpack Compose에서 UI에 인터랙션을 부여할 때 자주 사용되는 도구, Modifier.clickable에 대해 알아보겠습니다.clickableclickable은 Jetpack Compose에서 UI 요소를 클릭할 수 있도록 만들어주는 Modifier이다.Modifier.clickable { // 클릭되었을 때 실행할 코드}이렇게 Modifier에 clickable을 붙이면, 해당 요소는 터치 이벤트를 받을 수 있는 상태가 되며, 사용자가 해당 요소를 누르면 onClick 람다가 호출된다.기본 동작과 특징Ripple 효과 제공머터리얼 디자인의 터치 피드백인 Ripple 효과가 기본으로 적용된다.접근성 자동 지원클릭 가능한 요소로 인식되기 때문에, 스크린 리더 등 접근성 기능과 자연..

android 2025.04.25

Android build-logic

오늘은 안드로이드 프로젝트의 빌드 관리를 더 효율적으로 만들어주는 핵심 도구, build-logic에 대해 알아보겠습니다build-logic이란?공통된 빌드 설정을 한 곳에 모아 플러그인 형태로 정의하고,각 모듈에서 간단하게 재사용할 수 있도록 만든 구조build-logic을 사용하는 이유반복되는 설정을 제거해 코드 간결하게 해준다.설정 일관성있게 유지해서 버그 감소시킨다모듈 추가 시 빠르고 쉽게 설정 가능하다.빌드 스크립트 가독성 향상된다.프로젝트 구조 예시root/├── build-logic/│ └── convention/│ ├── build.gradle.kts│ └── src/main/java/com/school_of_company/convention/│ ..

android 2025.04.14

Android Okhttp

오늘은 Android 앱 개발 시 자주 쓰이는 HTTP 통신 라이브러리, 바로 OkHttp에 대해 정리해보려 합니다.OkhttpOkHttp는 Square에서 만든 HTTP 클라이언트 라이브러리이다. Retrofit도 내부적으로 OkHttp를 사용하고 있을 정도로 핵심적인 라이브러리이다.Okhttp의 장점간편한 사용법.OkHttp는 복잡한 설정 없이도 바로 HTTP 요청을 보낼 수 있다.비동기 요청 지원.기본적으로 비동기 방식인 enqueue()를 제공하기 때문에 네트워크 요청으로 인해 UI가 멈추는 문제를 방지할 수 있다.인터셉터를 통한 요청/응답 제어.인터셉터를 활용하면 요청 전에 헤더를 추가하거나 응답 후 공통 처리를 하는 등 전처리/후처리를 자유롭게 설정할 수 있다.로깅과 디버깅 용이하다.HttpL..

android 2025.04.08

Android Interceptor

오늘은 안드로이드 네트워크 통신의 핵심 도구, Android OkHttp Interceptor를 알아보겠습니다.Interceptor?Interceptor는 클라이언트와 서버 사이에서 HTTP 요청/응답을 가로채서 처리할 수 있는 중간층을 의미한다. Interceptor를 활용하면 요청을 수정하거나, 인증 토큰을 추가하고, 응답을 변형하는 등의 작업을 수행할 수 있다.Interceptor의 2가지Application Interceptor : Application Code(우리가 작성한 코드) 와 OkHttp Core Library 사이에 추가된 Interceptor.이런 Application Interceptor들은 addInterceptor()를 이용한다.val client = OkHttpClient.B..

android 2025.04.01

Android UiState

오늘은 안드로이드 앱 개발에서 UI의 현재 상태를 나타내는 핵심 개념, UiState를 알아 보겠습니다.UiStateUiState는 UI를 구성하는 데이터의 상태를 나타내는 개념Compose와 함께 MVVM 패턴을 사용할 때, ViewModel이 관리하는 UI 상태를 의미하며, UI의 일관성을 유지하고 예측 가능한 방식으로 상태 변화를 처리하는 데 중요한 역할을 한다.UiState가 필요한 이유안드로이드에서 UI 상태를 직접 관리하면 생길 수 있는 문제들비동기 작업 관리의 복잡성: 네트워크 요청, 데이터베이스 작업 등에서 UI가 올바르게 업데이트되지 않음예측 불가능한 UI 변경: 여러 UI 요소가 동시에 갱신될 때 일관성을 유지하기 어려움UiState의 기본 구조UiState는 일반적으로 sealed i..

android 2025.03.25

자료구조 - 그래프

오늘은 많은 자료구조 중 그래프(Graph)에 대해 자세히 알아보도록 하겠습니다.그래프그래프는 단순히 노드(Node)와 그 노드를 연결하는 간선(Edge)을 하나로 모아놓은 자료구조이다. 즉, 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조그래프의 주요 용어정점(Vertex, Node) : 데이터의 위치를 나타내는 개념이다.간선(Edge, Branch) : 노드를 연결하는 선이다.인접 정점(Adjacent Vertex) : 간선에 의해 직접 연결된 정점이다.노드의 차수(Degree) : 무방향 그래프에서 하나의 정점에 인접한 정점의 수이다.진입 차수(in-Degree) : 방향 그래프에서 외부에서 오는 간선의 수이다.진출 차수(out-degree) : 방향 그래프에서 외부로 향하는 간선의 수이다..

자료구조 2025.03.18