[Kotlin] groupBy, groupingBy
·
학습 기록/kotlin
1. groupBygroupBy 는 Map> 형태의 결과를 반환한다.1) groupBy(keySelector)컬렉션을 keySelector로 그룹화하여 Map> 형태로 반환val words = listOf("a", "abc", "ab", "def", "abcd")val byLength = words.groupBy { it.length }println(byLength) //{1=[a], 3=[abc, def], 2=[ab], 4=[abcd]}println(byLength.keys) // [1, 3, 2, 4]println(byLength.values) // [[a], [abc, def], [ab], [abcd]]- 컬렉션을 keySelector로 묶어 Map> 형태로 반환- it.length 를 key로 ..
[우아한테크코스 8기] 2주차 회고 - 자동차 경주 | Android
·
우아한 테크코스
2주차 과제구현 전처음으로 TDD로 구현하다 보니 어떤 단위로 테스트할 지 기준점을 잡지 못해 여러번 커밋 취소를 반복했었다.또한 구현하고나니 private 선언이 되어야 할 메서드들이 테스트 코드로 인해서 public으로 남는 문제도 있었다.우선 커뮤니티에서 TDD에 대한 내용이 활발하게 올라왔던게 기억이 나서 커뮤니티 게시글을 살펴보고.. 검색도 해보고..채널에 질문도 올려봤다. 종합적으로 살펴본 결과근본적인 원인은 "설계" 인 것 같았다! 또한 코드 리뷰를 통해서 하드 코딩, object와 class에 대한 피드백을 받아서이번 과제에서는 이 부분을 최대한 신경쓰면서 구현하려고 노력했다.구현 시작!1주차때는 리드미 작성 -> 머리로 설계 찍먹 -> 구현 이였다면이번에는 리드미 작성 -> 노트에 설계 ..
[우아한테크코스 8기] 1주차 회고 | Android
·
우아한 테크코스
1주차 과제드디어 1주차 과제가 시작되고 설레는 마음으로 과제를 봤는데... 오잉작년과 문제가 똑같네..! 문제도 크게 복잡하지 않고, 또 프리코스 시작 전에 이전 기수 문제를 다시 훑어봤기에조금은 당황스러웠다.. 그냥 풀기에는 스스로의 변화가 없는 것 같아서커뮤니티에 활발하게 올라왔던 주제인 TDD로 구현해보기로 결정했다. 어렵다 어려워..코드가 없는데 어떻게 테스트를 하냔 말이다..깊이 학습하고 문제에 적용하는 것보다는가볍게 문제에 적용해보면서 하나씩 하나씩 파고드는 걸 선호하는 편이라TDD에 대한 유튜브 강의와 여러 포스트를 읽으면서 가볍게 정리하고 시작했다. 어떤 단위로 쪼개는게 좋을 지 감이 안와서 처음엔 그냥 잘게잘게 쪼개서 구현해봤는데테스트 단위가 너무 작다 보니 오히려 기능을 구현하기가 어..
[Kotlin] 플랫폼 타입(Platform type)
·
학습 기록/kotlin
우테코 과제를 하며 낯선 타입을 발견했다.사용자가 입력하는 값은 제공된 유틸의 Console.readLine()을 활용하라고 명시되어 있었다. Console.readLine() 으로 입력을 받으니 해당 변수의 타입이 String!으로 된 것을 확인할 수 있다.엥 느낌표가 두 개도 아니고 한개라고? 💡 Java와 Kotlin의 차이Kotlin은 null-safety를 언어 차원에서 보장한다.즉, 컴파일 시점에 null 여부를 모두 검사한다. 반대로 Java는 Null Safety가 명시되지 않는다.즉, Java 메서드의 매개변수나 반환값은 기본적으로 null일 수도 아닐 수도 있다. 따라서 Kotlin에서 Java 메서드를 사용할 때 그 값이 null인지 아닌 지 정확히 알 수 없다. 🔍 Console..
[우아한테크코스 8기] 프리코스 D-1!! | Android
·
우아한 테크코스
드디어 기다리고 기다렸던 우아한 테크코스!프리코스 시작 하루 전, 다시 블로그를 시작해봅니다... 사실 이번 우테코 지원은 두번째인데작년에 우테코를 지원하면서 가장 기대했던 건 '소통'이었으나 디코에서 나는 글을 썼다 지우기만 반복했었다...만나서 대화하는건 괜찮은데 글로 표현하는 건 어색해서 그랬던 거 같기도 하고.. 그리고 공부한 내용도 노션에 정리하고 한번 더 다듬어서 블로그에 올리려고 했는데 노션에만 정리하고 블로그에는 안올렸네..작심 3달..? 캬아악 다짐 / 목표첫번째, 커뮤니티 적극 참여! 용기내서 커뮤니티에 적극적으로 참여해보려구 한다. 벌써부터 채널에 다양한 주제들이 올라오고 있어서끄적끄적 내 의견을 적고.. 한번 보고 두번 보고 자꾸만 보고 싶네~ 한 다음 엔터를 눌렀다 별거 없넹!한번..
Intent
·
학습 기록/안드로이드
Intent란?= 컴포넌트 간 통신을 맡는 객체액티비티(Activity): 화면을 구성하는 컴포넌트서비스(Service): 백그라운드 작업을 하는 컴포넌트콘텐츠 프로바이더(Content Provider): 데이터를 공유하는 컴포넌트브로드캐스트 리시버(Broadcast Receiver): 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트안드로이드 앱은 위 4개의 컴포넌트로 개발하는데 이때 Intent는 컴포넌트를 실행하기 위해 시스템에 전달하는 메세지라고 볼 수 있다. 즉 컴포넌트를 실행하는 정보가 담긴 인텐트 객체를 시스템에 전달하면 컴포넌트가 실행된다.Intent의 종류명시적 인텐트클래스 타입 레퍼런스를 이용하는 것내부 앱의 컴포넌트를 요청하는 인텐트 객체를 만들 때 사용액티비티 간 화면 이동을 구현할..