2025/03 18

Nutri Capture 프론트엔드 - NutrientBottomSheet 부분 구현

#1 개요 Nutri Capture 프론트엔드 - '피자' 아이콘 임시 적용#1 커스텀 아이콘 임시 적용#1-1 커스텀 아이콘 Nutri Capture 프론트엔드 - '피자' 아이콘 구현#1 개요#1-1 지금까지의 여정 Nutri Capture 프론트엔드 - 커스텀 BottomSheetScaffold 개발 유예#1 개요#1-1 개발 이kenel.tistory.com위 게시글에서 못다한 부분을 구현했다.  #2 코드 스니펫#2-1 NutritionBottomSheet.kt...@Composablefun NutrientBottomSheet( viewModel: NutrientViewModel = hiltViewModel()) { val inputtedDayMeal = viewModel.nutrie..

Nutri Capture 백엔드 - NutritionInfo 리팩토링

#1 문제점#1-1 리팩토링할 기존 코드package com.example.nutri_capture_new.dbimport androidx.room.ColumnInfodata class NutritionInfo( // 과식 정도값 @ColumnInfo(name = "overeating_excess") var overeatingExcess: Int = 0, // 정제당 섭취 정도값 @ColumnInfo(name = "refined_sugar_excess") var refinedSugarExcess: Int = 0, // 정제 곡물 섭취 정도값 @ColumnInfo(name = "refined_grain_excess") var refinedGrainExcess..

Nutri Capture 프론트엔드 - '피자' 아이콘 임시 적용

#1 커스텀 아이콘 임시 적용#1-1 커스텀 아이콘 Nutri Capture 프론트엔드 - '피자' 아이콘 구현#1 개요#1-1 지금까지의 여정 Nutri Capture 프론트엔드 - 커스텀 BottomSheetScaffold 개발 유예#1 개요#1-1 개발 이유말로 설명하기 힘들지만, BottomSheetScaffold의 내부 코드를 살짝만 바꾸면 내가 원하는 동kenel.tistory.com이전에 만든 아이콘이다. 만들었으니, 우선 본 프로젝트에 적용부터 해봤다. #1-2 임시 적용 코드...@Composablefun NutrientBottomSheet( viewModel: NutrientViewModel = hiltViewModel()) { val inputtedDayMeal = view..

[백준] 7576 (토마토)

#1 알고리즘순회 문제다. bfs 문제일 것이다. '인접한 토마토'들을 모두 순회하고나서 '인접한 토마토에 인접한 토마토들'로 나아가는 형태여야 할 테니. #2 여담이게 한국정보올림피아드 고등부 문제였다니... 정말 대단한 사람들이다. 나는 수학적 계산 능력이 뛰어난 편은 아니며, 그 능력은 내 가치가 직접적으로 지향하는 바도 아니다. 하지만 이 문제가 골드5 난이도인 것을 명심해야 한다. 즉 이 정도는 난이도는 일상적으로 풀어낼 수 있어야 한다는 말이다. 열심히, 꾸준히 하자. #3 코드 - 코틀린lateinit var tomatoes: Array>var M = -2var N = -2fun main() { val mAndN = readln().split(" ") M = mAndN[0].toI..

Nutri Capture 프론트엔드 - '피자' 아이콘 구현

#1 개요#1-1 지금까지의 여정 Nutri Capture 프론트엔드 - 커스텀 BottomSheetScaffold 개발 유예#1 개요#1-1 개발 이유말로 설명하기 힘들지만, BottomSheetScaffold의 내부 코드를 살짝만 바꾸면 내가 원하는 동작을 구현할 수 있었다. 그렇다고 internal이나 private 접근 지정자가 붙은 내부 코드를 내kenel.tistory.com위 게시글에서 보듯, 원래는 영양 정보 입력을 위한 커스텀 키보드를 만들기로 했었다. 이 커스텀 키보드는 BottomSheetScaffold의 BottomSheet에 들어갈 예정이었다. 순정 BottomSheetScaffold로는 내가 원하는 동작을 구현할 수 없다. 그래서 커스텀 BottomSheetScaffold를 만들..

Nutri Capture 프론트엔드 - 커스텀 BottomSheetScaffold 개발 유예

#1 개요#1-1 개발 이유말로 설명하기 힘들지만, BottomSheetScaffold의 내부 코드를 살짝만 바꾸면 내가 원하는 동작을 구현할 수 있었다. 그렇다고 internal이나 private 접근 지정자가 붙은 내부 코드를 내가 커스텀할 수도 없는 노릇이었다. public한 함수들로 구현도 할 수 있는 모든 걸 해봤다. 결국 깊숙히 파고들어본 결과, 반드시 내부 코드를 바꿔야만 내가 원하는 동작을 구현할 수 있다는 걸 깨달았다. 정확히는, NestedScrollConnection의 기제를 알게되고나서 깨달았다. 순정 BottomSheetScaffold에 가해지는 사용자의 터치 입력(Pointer input)은 최상위 부모(인 내부 코드)까지 올라가는데, 이를 막을 방법이 없다는 걸 알게된 것이다...

[백준] 11724 (연결 요소의 개수)

#1 알고리즘#1-1 '연결 요소의 개수'의 의미어떤 그래프에 탐색 알고리즘을 최소 n번 적용해야 모든 정점을 방문할 수 있다고 치자. 그 때 n의 값이 바로 '연결 요소의 개수'다. 즉, 본 문제는 미방문한 아무 정점을 골라서 탐색 알고리즘을 수행하는 걸 반복하고 그 반복 횟수를 출력하면 되는 문제다. #1-2 사용한 탐색 알고리즘 그래프 - 깊이 우선 탐색 (DFS, Depth-First Search)#1 그래프의 탐색 깊이 우선 탐색 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 깊이 우선 탐색 깊이 우선 탐색의 애니메이션 예시 깊이 우선 탐색( - 優先探索, 영어: depth-fkenel.tistory.com깊이 우선 탐색을 사용했다. 방문한 정점을 담는 Set을 외부에서 주..

불안한 완벽주의자를 위한 책 - 선택할 용기

#1 들어가며완벽주의를 이해하고 그것에서 벗어날 방법을 실천하더라도 가장 완벽한 버전의 자신이 되고 싶은 욕구와, 실패를 피하고 싶은 욕구는 쉽게 사라지지 않을 것이다. 그러나 당신은 늘 '선택'할 수 있다는 사실을 잊지 마라. 고속도로를 잘못 타면 다시 새로운 경로를 찾는 것처럼 두려움 대신 가치를 선택할 기회는 언제나 열려 있다. 스스로를 친절하게 대할 선택, 일과 여가의 균형을 적절히 맞출 선택은 오로지 당신만이 할 수 있다.사회는 성공을 영예와 물질적인 성과로 가늠한다. 성공하면 존경받고, 성공하지 못하면 망신당한다. 우리는 사회가 정한 성공의 기준을 따르게 강요된다. 따라서 당신이 실제로 변화를 이루고 이 책에 있는 기술들을 활용한다고 해도 여전히 과거의 패턴으로 떠밀리게 될 것이다. 그 방식이..

불안한 완벽주의자를 위한 책 - 실패를 책임지는 방법

#1 들어가며 '목표'를 수치화하는 작업은 완벽주의자에게 특히 유용하다. 시간과 할당량이 제한되어 있음을 알려주어 밑도 끝도 없이 일에 자신을 쏟아붓는 것을 막을 수 있다. 또한 완벽한 때를 기다리며 계속 일을 미루는 상황도 막을 수 있다. 구체적인 목표 설정은 만일 실패하더라도 책임지겠다는 각오이기도 하다. 목표를 달성하지 못하면 행로를 변경하면 된다. 작은 목표부터 하나씩, 실패해도 나아갈 수 있음을 배우자.스타워즈의 제다이 그랜드마스터는 이렇게 말했다. "하거나, 하지 않거나 둘 중 하나다. 하려고 하는 것은 없다." 이 단순한 이분법은 어딘가 품위가 있다. 의식하건 하지 않건 당신은 항상 특정한 목표를 달성하기 위한 일을 하거나, 하지 않는다. 하려고 하는 것도 하지 않는 것에 포함된다. 이 장에..

불안한 완벽주의자를 위한 책 - 자기친절의 쓸모

#1 들어가며"친절하라. 당신이 만나는 모든 이들이 저마다 힘겨운 전투를 치르고 있으니"라는 문장을 접해본 적 있는가? 완벽주의자는 그중에서도 스스로에게 친절을 베푸는 것을 가장 어색해한다. 모순적이게도 자신을 짓눌러온 무게가 사라지는 것을 두려워하기 때문이다. 자신은 친절을 누릴 자격이 없고, 친절로 인해 실수나 약점이 드러날까 걱정한다. 그러나 '자기친절'은 선택이 아닌 필수이다. 습관처럼 실천해야 하는 영역이다.자기연민self-compassion 혹은 자기친절은 스스로에게 친절하고도 다정한 행동들을 의미한다. 어쩌면 당신은 이렇게 말할지도 모른다. "가만히 앉아서 호흡에만 집중할 시간이 없어. 일하면서도 호흡은 얼마든지 할 수 있잖아." 그런 당신에겐 자기친절이 필요하다. #2 책 요약#2-1 자기..