안드로이드 [Kotlin] - Room을 사용해보자
2022. 7. 31. 22:34
Android
우선 Room에 대해 알아보기 전에 데이터베이스를 간단하게 알아보자 관계형 데이터베이스란? 관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류 관계형 데이터베이스란 테이블(Table)로 이루어져 있으며, 이 테이블은 키(Key)와 값(Value)의 관계를 나타낸다. 이처럼 데이터의 종속성을 관계(Relationship)로 표현하는 것이 관계형 데이터베이스의 특징이라고 할 수 있다. SQL과 CRUD Structured Query Language (SQL)이란 이러한 관계형 데이터베이스를 조금 더 쉽게 다루기 위해 생겨난 언어이다. CRUD는 Create, Read, Update, Delete를 의미하는 말로 데이터베이스를 다루기 위해 가장 기본이 되는 4가지 명령을 묶어놓은 단어이..
[코틀린] 프로그래머스 - 베스트앨범
2022. 7. 25. 21:03
Algorithm
다른 사람의 풀이에 정말 배울 가치가 있는 코드가 있어 하나씩 뜯어보며 공부해보려고 한다. 풀이 genres = ["classic", "pop", "classic", "classic", "pop"] playes = [500, 600, 150, 800, 2500] fun solution(genres: Array, plays: IntArray): IntArray { return genres.indices.groupBy { genres[it] } .toList() .sortedByDescending { pair -> pair.second.sumOf { index -> plays[index] } } .map { pair -> pair.second.sortedByDescending { index -> plays[..
안드로이드 [Kotlin] - SharedPreferences 를 이용해 Retrofit2 Header에 JWT 담기
2022. 7. 9. 23:38
Android
안드로이드에서 데이터를 저장하는 방법으로 여러 가지가 있다. 파일 I/O (내부 또는 외부 저장소) 접근 권한을 획득하고 파일을 열었다 닫았다 하는 수고가 필요함 관계형 데이터베이스 SQLite 등을 이용해 복잡한 관계형 데이터를 저장할 수 있음 간단한 데이터를 저장할 거라면 얻는 데이터에 비해 구축과 관리에 많은 노력이 필요함 SharedPreferences Key/Value 형태로 이용함 내부적으로는 XML 파일로 저장됨 파일을 열고 닫을 필요가 없이 핸들러를 만들어서 간편하게 사용 가능함 https://developer.android.com/reference/android/content/SharedPreferences SharedPreferences | Android Developers androi..
안드로이드 [Kotlin] - 아키텍처 패턴 with MVC, MVP, MVVM (feat 코드 예제)
2022. 6. 26. 15:15
Android
MVP/MVVM/Clean Architecture 등 아키텍처 설계 혹은 적용 경험이 있으신 분 안드로이드 채용 공고를 보다 보면 어렵지 않게 볼 수 있는 글들이다. 오늘은 안드로이드 아키텍처패턴으로 많이 언급되는 MVC, MVP, MVVM 패턴에 대해 정리해보고자 한다. 우선 디자인 패턴이 무엇인가에 대해 부터 알아보자 디자인 패턴(Design Pattern) 이란? 디자인 패턴이란 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션이다. 디자인 패턴은 개발자로 하여금 재사용 하기 용이한 설계를 선택하고, 재사용하기 어려운 설계는 배제하도록 도와준다. 또한 개발자끼리 협업을 잘할 수 있도록 코드들의 패턴을 짬과 동시에 코드의 질, 효율성을 높이는 것이다. 아키텍처..
[파이썬] 프로그래머스 - 구명보트
2022. 6. 4. 15:35
Algorithm
📌 풀이 이번 문제는 투 포인터를 생각하며 문제를 풀었다. 예시 2개를 보며 문제를 파악해보자 예시 1) people = [40, 40, 40, 50, 50, 60, 70, 80], limit = 100 이 예시는 보트에 (40, 60), (40, 50), (40, 50), (70), (80) 이렇게 총 5개의 보트가 필요하다. 예시는 애초에 정렬이 되어 있으나 문제의 테스트 케이스는 정렬이 되어 있지 않을 수 있으므로 우선 people을 정렬해주어야 한다. 우선 가장 첫 번째 원소와 가장 마지막 원소의 합을 limit와 비교한다. 40과 80을 비교해 100보다 같거나 작지 않다면 마지막 원소를 pop 해주면서 answer += 1을 해준다. 왜냐면 people은 정렬이 되어있기 때문에 가장 마지막 원..