Developing Myself Everyday
article thumbnail
안드로이드에서 Json을 사용하는 다양한 방법
Android 2023. 12. 3. 12:56

사진: Unsplash의Arisa Chattasa 안드로이드 개발을 하면서 서버에서 데이터를 받아와야 하는 경우가 상당히 많이 발생합니다. 이때 서버에서 보내주는 데이터의 형식은 대부분 JSON 데이터 형식으로 보내집니다. 이러한 JSON 데이터로 변환하기 위해서는 직렬화(Serialization) 과정을 거쳐야 하고, JSON 데이터를 받아서 원하는 데이터 구조로 변환하려면 역직렬화(Deserialization) 과정을 가져야 합니다. 이번 게시글에서는 안드로이드에서 이러한 JSON 데이터를 다룰 수 있게 해주는 다양한 라이브러리를 살펴보고자 합니다. Json 먼저 Json이 어떻게 되어있는지 한번 살펴보겠습니다. Json 응답은 대괄호로 표시된 배열입니다. Json 객체는 중괄호로 묶여 있고, 각 J..

article thumbnail
멀티 모듈 프로젝트에 Datastore로 자동 로그인 구현하기
Android 2023. 11. 27. 16:07

사진: Unsplash의Fikri Rasyid 이번 게시글에서는 Datastore에 대해 공부한 다음 이전에 만들어놨던 멀티 모듈 로그인 앱에 사용해서 자동 로그인 기능을 구현해보려고 합니다. 시작하기에 앞서 이 게시글에서는 Datastore에 대한 이론적인 내용을 다루고 있지는 않습니다. 아래의 게시글에서 이를 공부한 내용이 있으니, Datastore에 대해 잘 알지 못하신다면 참고하고 오시면 좋을 것 같습니다. [AAC] DataStore with SharedPreferences 이 게시글은 아래의 공식 문서를 보고 작성했습니다. 앱 아키텍처: 데이터 영역 - Datastore - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 ..

article thumbnail
@Inject로도 @Provide할 수 있다
Android/Kotlin 2023. 11. 25. 12:45

사진: Unsplash의Sangga Rima Roman Selia 이 게시글은 저의 무지함으로 발생한 질문에서 시작된 게시글입니다. Now In Android를 참고하여 프로젝트를 진행하던 도중 "Data 모듈에서 Domain의 Usecase에 Repository를 주입할 때에는 @Provide를 사용해서 이를 주입해 주는데, Feature 모듈에서 Usecase를 주입 받을 때에는 왜 @Provide를 하지 않아도 주입받을 수 있는가?" 라는 질문이 생겼습니다. 이 게시글에서 이 질문에 대한 답을 하고자 합니다. 질문에 대한 답 위의 질문은 사실 Dagger를 잘 이해하지 못하고 Hilt를 사용해서 생긴 질문입니다. @Provide와 @Inject은 컴포넌트에서 의존성 그래프를 만들기 위한 과정입니다...

article thumbnail
코틀린에서 Backing Properties를 왜 사용해야 하죠?
Android/Kotlin 2023. 11. 22. 18:04

사진: Unsplash의Hardik Pandya 최근에 프로젝트를 진행하면서 ViewModel에서 당연하다는 듯이 SharedFlow나 StateFlow를 사용해야 할 일이 많았습니다. private val _errorFlow = MutableSharedFlow() val errorFlow: SharedFlow get() = _errorFlow private val _uiState = MutableStateFlow(UiState.Loading) val uiState: StateFlow get() = _uiState 이렇게 아무 생각 없이 사용하다 보니, 왜 이렇게 2개로 나눠서 관리해야 하지? 라는 원초적인 질문이 생겼습니다. 그래서 이번 게시글에서는 이를 이해하기 위한 Field와 Property 그리..

article thumbnail
등산코스 정하기 - Kotlin

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 XX산은 n개의 지점으로 이루어져 있습니다. 각 지점은 1부터 n까지 번호가 붙어있으며, 출입구, 쉼터, 혹은 산봉우리입니다. 각 지점은 양방향 통행이 가능한 등산로로 연결되어 있으며, 서로 다른 지점을 이동할 때 이 등산로를 이용해야 합니다. 이때, 등산로별로 이동하는데 일정 시간이 소요됩니다. 등산코스는 방문할 지점 번호들을 순서대로 나열하여 표현할 수 있습니다. 예를 들어 1-2-3-2-1 으로 표현하는 등산코스는 1번지점에서 출발하여 2번, 3번, 2번, 1번 지점을 순서대로 방문한다는 뜻입..

1225. [S/W 문제해결 기본] 7일차 - 암호생성기 [D3] by Java
SWEA 2023. 11. 17. 15:52

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다. 나의 풀이 이 문제는 특별할 것이 따로 없는, 단순한 계산문제입니다. 문제에서는 사이클을 돌리면서 배열의 요소를 움직이라고 합니다. 각각의 요소들은 앞에서 뒤로 이동하고 이러면서 많은 시간이 걸리게 됩니다. 그렇기 때문에 이를 방지하기 위해서 index를 사용하고 감소시킬 숫자를 가리킵니다. 이렇게 되면 배열을 실제로 움직이지 않고도 index를 움직인 것 만으로 동일한 효과를 얻을 수 있게 됩니다. import java.util.ArrayList; import java.util.List; import ja..

2805. 농작물 수확하기 [D3] by Java
SWEA 2023. 11. 17. 14:04

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다. 나의 풀이 이 문제는 특별할 것이 따로 없는, 단순한 계산문제입니다. 문제에서 주어진 마름모는 가장 가운데 열을 기준으로 위 아래가 동일한 형태를 가지고 있다는 것을 알 수 있습니다. 그렇기에 저는 가장 가운데 좌표에서부터 위 아래로 동시에 특정한 범위만큼 수확하도록 했습니다. import java.util.Scanner; import java.util.stream.Stream; class Solution { public static void main(String args[]) throws Exception..

1209. [S/W 문제해결 기본] 2일차 - Sum [D3] by Java
SWEA 2023. 11. 16. 13:20

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다. 나의 풀이 이 문제는 특별할 것이 따로 없는, 단순한 계산문제입니다. 열의 최대값, 행의 최대값, 대각선의 값을 차례로 구한 다음에 이 값들의 최대값을 구하면 됩니다. import java.util.Scanner; import java.util.stream.IntStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); for (int test_case ..