전체 글 279

[Compose] Row 안에서 아이콘을 옆 텍스트의 첫번째 라인 가운데에 맞추기

Row 안에 아이콘과 텍스트를 배치할때 아이콘이 수직 방향으로 텍스트의 첫번째 라인 가운데에 위치 시켜야 하는 경우가 있다. 이럴땐 RowScope 내에서 활용할 수 있는 alignBy Modifier 를 활용할 수 있다. alignBy 를 활용하면 Row 가 내부의 요소들을 배치할때 참고할 수 있는 기준을 제공할 수 있다. icon 높이의 중앙텍스트의 첫번째 라인의 중앙을 정렬 기준선으로 제공하면 Row 가 이 기준선을 활용하여 요소들을 수직 방향에서 정렬되게 배치해준다. icon 높이의 중앙은 alignBy 의 람다 파라미터로 전달받은 Measured 를 활용해서 쉽게 계산할 수 있다. 이 Measured 객체는 alignBy Modifier 가 적용된 UI 요소의 레이아웃 측정값을 가지고 있다. 텍..

따뜻한 내고향 강화도

내가 어릴 적에는 섬마을이었던 강화도였습니다. 박 대통령 때 다리를 놓고 개통식을 한다기에 사촌과 동네 친구와 셋이서 두 시간을 걸어서 갑곳리에 가보았습니다. 김포에서 강화도까지 검은 승용차가 쭉 줄지어 섯드라구요. 대통령은 어디에 타셨는지 볼 수가 없었죠. 지금은 많이 발전해서 서울인지 인천인지 알 수 없이 좋아졌습니다. 교통도 잘 되었고 섬마을과 섬마을도 다리를 놓아서 아주 편하고 좋습니다.화도면에 가면 거꾸로 된 집 카페가 있습니다. 지나가면서 보았지 들어가 보지는 않았습니다. 다음에 갈때는 꼭 들어가 보아야겠습니다. 또 화도면에 가면 제일 어린 나이에 15세 때 과거 시험에 합격한 사람 이건창 집이 있습니다. 색깔이 바랜 초가집이 남아 있더라고요.길을 지나다 보니까 동검도 섬도 보이고 섬은 섬인데..

엄마의 기록 2025.09.13

[Google I/O 2025 Recap] Mastering text input in Compose

https://www.youtube.com/watch?v=07Y9CPuxgvQ신규 State based TextField APIMaterial 3 1.4.0 버전부터 추가됨 (아직은 알파 단계)최신 Compose BOM 에 포함되어 있지 않기 때문에 Material 3 만 버전을 따로 지정해줘야 함.기본적인 사용 형태val userNameState = rememberTextFieldState()TextField( state = userNameState, inputTransformation = InputTransformation { }, outputTransformation = OutputTransformation { }, lineLimits = TextFieldLineLimits..

파이썬 가상환경 간단 메모

🐍 파이썬 가상환경이란?파이썬 가상환경(virtual environment)은 프로젝트마다 독립적인 패키지 환경을 만들 수 있도록 해주는 기능입니다. 이를 통해 서로 다른 프로젝트에서 패키지 버전 충돌 없이 개발할 수 있습니다.🔥 왜 가상환경이 필요할까?1. 프로젝트별 패키지 관리프로젝트마다 필요한 패키지와 버전이 다를 수 있음가상환경을 사용하면 각 프로젝트가 자신만의 패키지 집합을 가질 수 있음2. 패키지 버전 충돌 방지예를 들어, A 프로젝트는 Django 3.2를 사용하지만, B 프로젝트는 Django 4.0을 사용해야 할 수도 있음가상환경 없이 설치하면 시스템 전체에 영향을 줌 (버전 충돌 발생)가상환경을 사용하면 각 프로젝트마다 다른 버전을 사용할 수 있음3. 글로벌 환경 오염 방지가상환경 ..

아킬레스건 파열 수술 후기

2/1 저녁 아킬레스건 파열2/3 오후3시 아킬레스건 봉합 수술 & 입원2/5 오전 퇴원2/10 수술 2주차 병원진료 & 소독2/17 수술 3주차 실밥제거 & 통깁스3/3 수술5주차 통깁스 제거 & 보조기 착용(보조기안에 깔창 5개, 1주에 하나씩 깔창제거, 목발 1-2주 사용하기)3/10 수술6주차 깔창 하나 제거, 목발 사용하며 걷는거 익숙해짐3/17 깔창 하나 제거 총 2개 제거, 목발 하나만 사용,근데 종아리랑 허벅지가 간지럽고 열나고 두드러기처럼 올라옴 ㄷㄷ;; 엄청 긁음 ㅜㅜ 진료때 물어보기로하고 참음..3/24 깔창 총 3개 제거병원진료, 목발 사용하지말구 걷기 연습하라고함간지러움 두드러기 같은건 접촉성 피부염 같다고 하심먹는약, 바르는연고 일주일정도 처방해주시고 상황보자고함 (아마 맨살에 ..

싸비의 일상 2025.03.11

위암 수술 이후 관리

위암 수술 이후 알아야 하는 정보를 정리해본다.위의 역할위는 3가지 역할을 한다.음식물 저장음식물 분해십이지장으로 음식물이 넘어가는 속도 조절이때 저장과 속도 조절 기능은 위에 있는 2개의 괄약근을 통해 이루어진다.분문부 괄약근 : 식도와 위의 연결부유문부 괄약근 : 위와 십이지장의 연결부분문부에서는 위의 음식물이 역류 하는것을 방지해주어 위의 저장 기능이 발현하게 해준다.유문부에서는 음식물이 빠르게 십이지장으로 넘어가지 않게 해주어 속도 조절 기능이 발현하게 해준다. 음식물의 분해 기능은 위액과 위의 운동을 통해서 발현된다.위암의 위치에 따른 절제 부위위암은 병의 진행 기수에 상관없이 암세포의 위치에 따라 수술 범위가 결정된다.암세포가 하부에 존재하면 위 운동을 담당하는 상부를 남겨둔채 하부를 제거하는..

[Compose] TooltipBox

📌 TooltipBox란?TooltipBox는 Jetpack Compose의 Material3 라이브러리에서 제공하는 툴팁(Tooltip) 기능입니다. UI 요소 위에 작은 정보 박스를 표시하여 추가 설명을 제공할 때 유용합니다.🎯 툴팁이 필요한 상황버튼이나 아이콘의 기능을 설명할 때마우스 오버 시 추가 정보를 제공할 때긴 텍스트나 복잡한 UI 요소에 대한 설명을 보조할 때🎯 사용 예시 🛠️ TooltipBox 기본 사용법TooltipBox는 실험적(Experimental) API이므로 사용하려면 @OptIn(ExperimentalMaterial3Api::class) 어노테이션을 추가해야 합니다.1️⃣ 기본 사용 예제@OptIn(ExperimentalMaterial3Api::class)@Compo..

[Compose] Compose 에서 구성 변경(Configuration Change) 시 UI 상태 유지

📌 androidx.compose.runtime.saveable 패키지란?Jetpack Compose에서 구성 변경(Configuration Change) 시 UI 상태를 유지하려면 androidx.compose.runtime.saveable 패키지를 활용해야 합니다. 이 패키지는 화면 회전, 다크모드 변경, 프로세스 종료 후 복원 등에서 UI 상태가 유지될 수 있도록 도와줍니다.✅ 주요 APIAPI설명rememberSaveable구성 변경 시에도 상태를 유지하도록 remember를 확장한 함수Saver커스텀 객체를 저장할 수 있도록 변환하는 클래스mapSaverSaver의 간단한 버전으로, Map을 통해 객체를 저장 및 복원listSaverSaver의 간단한 버전으로, List를 사용하여 객체 저장 ..

[Compose] SnapshotStateList

SnapshotStateList란?SnapshotStateList는 Jetpack Compose에서 상태 관리를 위한 MutableList의 Compose-friendly 버전입니다.Compose의 remember와 함께 사용하면 리스트의 변경 사항(요소의 추가, 삭제, 교체 등)을 자동으로 Compose의 UI에 반영할 수 있습니다.Jetpack Compose에서는 MutableList를 직접 사용하면 변경 사항이 UI에 반영되지 않습니다.이는 Compose가 MutableList의 변경을 감지하지 않기 때문입니다.이를 해결하기 위해 mutableStateListOf()를 사용하여 Compose에서 상태 변경을 추적할 수 있도록 합니다.왜 SnapshotStateList가 필요한가?일반적인 Mutabl..