본문 바로가기
♞ | 공부일지/♝ | TIL

[Android] 공부일지(2024-09-20)

by immgga 2024. 9. 20.
오늘 공부한 내용 정리(2024년 9월 20일)

 

출처: unsplash.com

 

코드카타 문제풀이

폭탄 해체(9242번)

https://rkdrkd-history.tistory.com/256

 

[Kotlin, S4] 백준 9242번 폭탄 해체

폭탄 해체(9242번)Silver 4#구현 #문자열 #파싱https://www.acmicpc.net/problem/9242 문제 내용  문제 접근별 기호(*)와 공백으로 이루어진 숫자가 입력된다.숫자는 7 segment 숫자 표기법으로 이루어져 있다.그

rkdrkd-history.tistory.com

 

 

면접 이론 학습 25일 차

면접 이론 학습 25일 차

정렬 알고리즘이 무엇인가? 정렬 알고리즘을 사용하는 이유는?

정렬 알고리즘은 데이터들을 어떤 기준으로 나열시키는 알고리즘이다.

정렬 알고리즘은 알고리즘을 배울 때 가장 먼저 배우게 되는 알고리즘으로써

  • Big O 표기법
  • 평균적인 경우와 최악의 경우에 어떻게 성능이 달라지는가?
  • 재귀 호출이 있을 때 복잡도 계산
  • 상황에 따른 적절한 트레이드오프 계산

위 아이디어와 평가법은 정렬 알고리즘을 직접 만들지 않아도, 개발을 하면서 맞닥뜨릴 수 있는 수많은 문제들에서 유용하게 쓰일 수 있는 도구들이다.

 

 

sharedpreference의 특징과 장단점

sharedpreference의 특징은 다음과 같다.

  • 간단한 값을 저장하기 위해 사용.
  • application에 xml 파일 형태로 데이터를 저장함.
  • application이 삭제되기 전까지 저장한 데이터를 보존함.
  • kay와 value를 담을 수 있는 map 형태로 저장.

 

sharedpreference는 아래와 같은 단점도 존재한다.

  • UI thread에서 호출하기에는 안전하지 않다.
  • 예외나 런타임 안정성이 없다.
  • 비동기 api에 대한 대응이 부족하다.

이러한 단점이 있어서 google에서 jetpack datastore를 출시했다.

 

 

개인 공부

부트캠프 최종 팀 프로젝트 오류 수정

로그인 테스트 및 splash screen 변경

현재 최소 api level을 26으로 설정해 놓았는데, 그래서 android 12(api 31, 32) 이하 버전에서는 splash screen dependency가 올바르게 동작하지 않았다.

그래서 아예 새로운 splash activity를 만들어서 activity 안에서 코드를 짜서 처리를 해주었다. 이게 최선 같아 보인다.

현재 내 기기에서 테스트해 본 바로는 문제가 없지만, 다른 기기에서는 sign in 이후 앱을 삭제 후 재설치를 했을 때,

main으로 이동 후 유저 정보를 불러오지 못해 무한 로딩이 되는 현상이 발생했다.

 

내 기기 2개(Android 14, Android 11 기기)로 테스트해 본 결과 문제없이 동작했다.

주말에는 설정 화면을 구현하고, 월요일에 로그인을 테스트해 볼 예정이다.

 


 

오늘 공부 내용 정리 및 회고

최종 프로젝트는 쓸데없이 splash screen dependency를 이용하려다가 2시간을 날렸다.

어쩔 수 없이 activity로 구현해야 하는 걸까?

알고리즘은 2문제를 해결했다.

728x90