2024/05/13 - 2024/06/23 일기
이모저모/일기2024. 6. 30. 02:312024/05/13 - 2024/06/23 일기

밀린 숙제 처리정말 오랜만에 작성하는 일기다...한 번 안쓰게되니 계속 안쓰게 되어 밀린 숙제?를 처리해보기로 했다. 그동안 글을 안 쓴 이유는...귀찮아서...한 번 안쓰니까 쓸 내용도 많아지고 하다보니 계속 미루게 됐다...잡설은 그만하고 밀린 일기 시작 5월 13일 - 5월 19일15일 - 파이브 가이즈, 절, 코엑스 탐방4대종교 탐방을 하자는 친구를 따라 절에 가기로 했다. 절에 가기 전 점심으로 파이브 가이즈에 가서 먹어줬다. 근데 좀 별로였다. 가격은 비싼데 양도 적어서 이게 맞나 싶었다. 처음 딱 열었을 때는 엄청나게 많이 줬다는데 그동안에 재정난이 일었는지 소문에 비해 양이 터무니없이 적었다. 맛이 없진 않은데 솔직히 다른 버거랑 크게 다른가? 그건 잘 모르겠다.맛알못이라서 그런가 싶기도 ..

[Android] Compose BOM
Develop/AndroidOS2024. 6. 25. 20:26[Android] Compose BOM

개요Compose로 안드로이드 앱 개발을 할 때 한 가지 불편한 점이 있었다.바로 아래와 같이 앱 모듈 `build.gradle.kts`에 라이브러리를 추가할 때, 버전을 따로 입력해줘야한다는 것이었다. ▼ 매번 버전을 입력해서 추가를 하니까 최신 버전이 나올 때 마다 버전을 입력해줘야하고, 내가 현재 최신버전을 사용하고 있는건지 의문이 들기도 했다.물론 항상 최신버전을 유지하는 것이 좋지 않을 수도 있지만, 웬만하면 이전 버전의 버그가 고쳐진 버전이 배포되기 때문에 특별한 이유나 해당 라이브러리의 세세한 부분까지 알고 있는게 아니라면 최신버전을 사용하는게 좋지 않나 싶다. '자동으로 업데이트가 될 법 한데...' 라는 생각을 하던 도중 Compose BOM이라는 것이 있다길래 이에 대해 알아보게 됐다...

[Android] Dependency Injection (DI)
Develop/AndroidOS2024. 6. 14. 12:38[Android] Dependency Injection (DI)

개요안드로이드에서 너무나도 많이 보이는 DI안드로이드 개발 공부를 하다보면 DI라는 용어는 빈번하게 등장한다.소프트웨어 공학에서 나온 용어라서 안드로이드 외의 다른 개발 프레임워크들에서도 많이 사용하기에 엄청나게 생소한 용어는 아니지만, 안드로이드에서는 이를 관리해주는 Hilt라는 라이브러리가 있어 굉장히 많이 거론되는 듯 하다. ▼ StateHoisting을 배우고, State를 Hoisting해줄 ViewModel을 인식하고, ViewModel을 UI의 어느 부분에 저장을 할 지 알아보던 중 DI와 Hilt에 대한 선행 지식이 없으면 안되었기에 더 자세하게 알아보게 되었다.   Dependency InjectionDependency Injection이란Dependency Injection, 줄여서 D..

[Android][Compose] State Hoisting
Develop/AndroidOS2024. 6. 13. 19:43[Android][Compose] State Hoisting

개요Compose의 Stateless선언형 UI인 Compose의 장점은 Stateless함에 있다.UI와 State의 상호 의존성을 끊을 수 있다면, UI요소를 재사용하여 더 효율적으로 코드를 작성할 수 있다.또한 UI를 개별적으로 테스트 할 수 있어, 유닛 테스트에 용이하다. 요약하자면 Compose Stateless의 장점은 아래의 두 개가 된다.UI 재사용성UI 테스트로 Unit Test 하지만 State와 종속되는 요소도 있다그러나 Stateless를 유지하고 싶지만, State를 UI에 저장을 해야만 할 때가 있다.Compose 요소 자체에 State가 저장되게 설계가 되어 나온 것으로 `TextField`가 있다. 아래와 같은 식으로 `remember` 키워드를 이용하여 상태를 저장해줘야한다..

[Android][Compose] Compose의 레이아웃
Develop/AndroidOS2024. 6. 13. 19:14[Android][Compose] Compose의 레이아웃

개요 레이아웃하나의 컴포저블 요소에 다른 요소들이 들어갈 수 있는 것이고, 그렇게 들어간 요소들은 아무런 규칙없이 들어가는 것이 아니라 레이아웃이라는 규칙을 따라 들어가게 된다. 아래의 화면도 아무런 규칙이 없이 배치가 된 것 처럼 보이지만, 레이아웃 규칙에 따라 배치가 된 것이다. ▼  Compose에서 제공하는 레이아웃Compose의 레이아웃으로는 크게 Column, Row, Box의 3가지가 있다. ▼ 각각 모두 이름 그대로의 기능을 하기에 알아보기가 쉽다.셋 다 컴포저블이기에 내부에 컴포저블 요소들을 배치할 수 있다.그러나 다른 컴포저블들과는 다른 점은 여러 개의 컴포저블들을 배치할 수 있다는 것이다.또한 이들 모두 컴포저블이기에 서로가 서로에 중첩되어 들어갈 수 있다. 이번 포스트에서는 이 3가..

백준 2467번 용액 - SWIFT
카테고리 없음2024. 6. 12. 12:05백준 2467번 용액 - SWIFT

문제KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다.같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다.예를 들어, 주어진 용액들의 특성값이 [-99, -2, -1, 4, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98인 용액을 혼합하면 특성값이 -1인 용액을 만들 수 있고, 이 용액의 특..

백준 2437번 저울 - SWIFT
Algorithm/BOJ PS2024. 6. 12. 11:58백준 2437번 저울 - SWIFT

문제하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다.  무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양의 정수 무게 중 최솟값을 구하는 프로그램을 작성하시오.예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30, 1인 7개의 저울추가 주어졌을 때, 이 추들로 측정할 수 없는 양의 정수 무게 중 최솟값은 21이다. 입력첫 째 줄에는 저울추의 개수를 나타내는 양의 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 둘째 줄에는 저울추의 무게를 나타내는 N..

[Android][Compose] JetPackCompose란? 그리고 Compose의 구성
Develop/AndroidOS2024. 6. 12. 01:36[Android][Compose] JetPackCompose란? 그리고 Compose의 구성

개요JetPack Compose란?JetPack Compose는 네이티브 UI를 빌드하기 위한 Android의 최신 권장 도구 키트이다. ▼  JetPack Compose를 사용하는 이유기존의 빈번한 작업 컨텍스트 전환 해결XML 기반의 UI를 개발하려면 XML Layout을 정의한 후, 코드 레벨(Java, Kotlin, Swift)에서 View를 연결하여 UI를 관리한다.XML과 코드 구조를 각각 연동시켜야하기 때문에 빈번한 작업 컨텍스트 전환이 요구된다. JetPack Compose는 이러한 불편함을 해결해 줄 수 있으며, 직관적이고 단순하게 UI를 구현할 수 있게 해준다. 개념 이해와 빠른 개발기본적으로 JetPack Compose를 사용하면 XML과 Kotlin 코드를 따로 작성하지 않고 Kot..

신입 개발자 포트폴리오 작성 - 2 (프로젝트 작성)
스펙 업!2024. 6. 8. 12:30신입 개발자 포트폴리오 작성 - 2 (프로젝트 작성)

개요프로필에 이어서... 신입 개발자 포트폴리오 작성 - 1 (프로필 작성)개요포트폴리오를 작성하게 된 계기산업기능요원을 준비하기 위해 이력서와 이것저것 취업에 필요한 것들을 준비를 하고 있다. 처음에는 점핏이나 사람인과 같은 플랫폼에서 제공하는 이력서noguen.com 전에 신입 개발자 포트폴리오에서 프로필 부분을 작성했던 경험을 글로 썼었고, 그 글에 이어 핵심적인 부분인 프로젝트에 대해서 작성했던 경험을 글로 작성하고자 한다.아무래도 프로필도 중요하지만, 면접관과 인사담당자는 내가 했던 프로젝트에 대해 관심을 더 가질 것이기에 프로젝트 설명에 힘을 좀 더 쓰는 것이 좋을 것이다. 잡설은 그만 두고 본론으로 들어가보자.  작성할 프로젝트에 대해넣을 프로젝트를 추리자다 보여주는건 독이 될 수 있다이전에..

백준 19941번 햄버거 분배 - C++
Algorithm/BOJ PS2024. 6. 6. 18:22백준 19941번 햄버거 분배 - C++

문제기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 𝐾 이하인 햄버거를 먹을 수 있다.햄버거사람햄버거사람햄버거사람햄버거햄버거사람사람햄버거사람123456789101112 위의 상태에서 𝐾=1인 경우를 생각해보자. 이 경우 모든 사람은 자신과 인접한 햄버거만 먹을 수 있다. 10번의 위치에 있는 사람은 11번 위치에 있는 햄버거를 먹을 수 있다. 이 경우 다음과 같이 최대 5명의 사람이 햄버거를 먹을 수 있다.2번 위치에 있는 사람: 1번 위치에 있는 햄버거4번 위치에 있는 사람: 5번 위치에 있는 햄버거6번 위치에 있는 사람: 7번 위치에 있는 햄버거9번 위치에 있는 사람: 8번 위치에 있는 햄버거10번 위치에 있는 사람: 11번 위치..

image