포스팅 썸네일 이미지

학습

for .. in 은 무엇일까

학습하게 된 계기 코틀린 코루틴 책을 학습하다가 for문에 Channel class를 사용하는 코드를 보고, list도 아닌 class가 어떻게 원소를 반환하는지 궁금해졌다. suspend fun main(): Unit = coroutineScope { val channel = Channel() launch { repeat(1) { index -> println("Producing next one") delay(1000) channel.send(index * 2) } channel.close() } launch { for (element in channel) { println(element) } } } for … in 의 의미 아래와 같은 코드에서 in은 list.iterator()를 호출해서 이터레이터..

2024.03.08 게시됨

TIL

240307 TIL - 네이버에 합격하는 분들은 어떤 사고를 하실까

오늘 학습한 내용 내일배움캠프 1주차 개인 과제 - 계산기 마무리 사용자가 한 줄로 연산식을 입력하도록 했고, +, -, *, /, % 연산자와 (, ) 괄호를 허용했다. 또한 소숫점을 포함한 실수의 입력도 허용했다. 구현은 6시 쯤에 완료했으나, 테스트 케이스를 작성할 때마다 fail이 추가됐다. 만약 이러한 구현 문제가 코딩테스트로 나왔다면 탈락하지 않았을까? https://github.com/DoTheBestMayB/NBC-calculator 저녁 시간에는 네이버 부스트캠프를 수료한 분들 중 네이버에 입사하신 분들이 입사 준비 과정 경험을 말씀해주시는 웨비나에 참여했다. CS의 중요성을 배웠다. 단순히 한 줄로 설명하는 정도의 짧막한 지식이 아닌, 면접관 분과 해당 지식에 대해 대화를 할 수 있을 ..

2024.03.07 게시됨

TIL

240306 TIL

오늘 학습한 내용 Kotlin In Action 5.3 지연 계산(lazy) 컬렉션 연산 - sequnece CS 학습 - if-else vs when https://dodobest.tistory.com/63 Udemy 강의 계산기 로직 구현 - 내일배움캠프 1주차 개인 과제로 계산기 구현을 진행 중인데, 괄호와 +,-,*,/를 지원하는 로직이 떠오르지 않아 관련 리트코드 문제를 풀어봤다. calculator3가 요구 조건과 비슷한 문제인데, 유료 결제 회원만 볼 수 있다. https://leetcode.com/problems/basic-calculator-ii/ https://leetcode.com/problems/basic-calculator/description/ https://leetcode.co..

2024.03.06 게시됨

포스팅 썸네일 이미지

학습/CS

If I can use if, when to use when

Kotlin 공식문서에서도 if 대신 when을 사용할 것을 권장하고 있습니다. 그런데 왜 if 대신 when을 사용해야 하는지 아시나요? Prefer using when if there are three or more options. https://kotlinlang.org/docs/coding-conventions.html#if-versus-when Coding conventions | Kotlin kotlinlang.org Kotlin의 when은 Java의 switch 문으로 변환된다. Kotlin에서 when을 사용하는 코드는 Java의 switch 문으로 변환됩니다. 직접 확인해봅시다. 아래와 같이 사용자가 입력한 값에 따라 Grade를 반환하는 함수가 있습니다. enum class Grade..

2024.03.06 게시됨

TIL

240305 TIL - sealed class

오늘 학습한 내용 Kotlin In Action 9.3 공변성 복습 및 반공변성에 대한 학습 - 제네릭을 제대로 활용하기 위해 꼭 필요한 개념이다. CS 학습 - sealed class, sealed interface, enum class의 차이와 언제 사용하면 좋은지에 대해 학습해봤다. https://dodobest.tistory.com/61 Udemy 강의 - 최상위 클래스 Any의 함수인 toString, equals, hashCode 예시를 통해 알아보는 Data class의 장점 Jetpack Compose Tutorial - Compose Essentials - 7. Get started with state 의존성 주입 강의 - Hilt 의존성 추가 오타로 시간을 많이 소모했다. 직접 타이핑 ..

2024.03.05 게시됨

포스팅 썸네일 이미지

학습/CS

Sealed class vs Sealed interface vs Enum

Sealed classsealed class는 같은 모듈의 같은 패키지에서만 상속할 수 있는 클래스로, 유한한 개수의 subclass로 구성된 closed type hierarchy를 제공하는 클래스다. 또한 상속은 런타임이 아닌 컴파일 타임에만 허용된다. 그래서 third-party 코드에서 sealed class를 상속하는 클래스를 정의할 수 없다. abstract class와 대비되는 것을 알 수 있다. 아래와 같이 MyResult가 정의되어 있는 패키지와 다른 a 패키지에 정의되어 있는 MyResponse 클래스가 MyResult Sealed class를 상속하지 못하는 것을 볼 수 있다. Inheritor of sealed class or interface declared in packa..

2024.03.05 게시됨

TIL

240304 TIL

오늘 학습한 내용 Kotlin In Action 5.1, 5.2 Android 의존성 주입 강의 1-3, 2-1 Android 구현 연습 - RecyclerView ViewHolder의 viewLifecycleOwner에 따라 CoroutineScope 실행하기 : 아래 링크는 참고했던 블로그 글인데, 앞으로 Trouble Shooting과 android deep dive 학습 방향의 기준으로 삼을 것이다. https://hodie.tistory.com/116 - Data class를 Json String으로 변환해서 SharedPreferences에 String으로 저장하기 : 클린 아키텍처와 관련된 문제로 이 구현은 잠시 미루고, 의존성 주입 강의를 빨리 수강한 후, 아키텍처를 다시 적용해야 함 오늘..

2024.03.04 게시됨

TIL

1주차 KPT

Keep : 잘하고 있는 점. 계속 했으면 좋겠다 싶은 점. 나에게 익숙한, 편한 공부가 아닌, 어려운, 하기 싫은, 불편한 것 위주로 학습하기 -> 현재 잘하는 것을 더 잘하기 위해서는 못하는 것을 잘하는 수준까지 끌어올리는 것이 필요한 것 같다 Problem : 뭔가 문제가 있다 싶은 점. 변화가 필요한 점. 코테 효율적으로 많이 풀어보기 : 10분 정도 생각해봐도 안 풀리는 문제는 답안을 보면서 생각하는 과정을 익히자. 아직 나는 많이 풀어본 경험이 부족하다. 경험을 통한 사고 과정을 익히는 것이 필요하다. Android 구현에서 막히는 부분이 있으면 멈추고 관련 개념 학습하기 : 구현을 하다가 내가 아직 학습하지 않은 아키텍처를 요구하는 부분이 나왔을 때, 배우지 않은 부분을 배제하고 구현하려다 ..

2024.03.04 게시됨

포스팅 썸네일 이미지

학습

Android에서 ConstraintLayout은 왜 사용하는 걸까

이것은 Android가 view를 그리는 과정과 관련된 것으로, Android는 measure pass, layout pass 두 과정을 통해 UI를 설정한다. measure pass는 view가 자신의 크기를 계산하고 설정하는 과정이고, layout pass는 view가 속한 ViewGroup이 view가 측정한 값에 따라 View의 위치를 설정 하는 과정이다. 보통은 이 과정이 짧은 시간 내에 완료되지만, 런타임에 View를 추가, 삭제한다던가(대표적인 예로 RecyclerView), View의 텍스트가 변경되어 크기를 다시 측정해야 하는 경우 비교적 오래 걸린다. 하지만 이것 만으로는 ANR이 발생할만큼 문제가 되지는 않는다. 공식문서에서 추천하는 Layout ViewGroup인 Layout이 다른..

2024.03.03 게시됨

포스팅 썸네일 이미지

코딩테스트

프로그래머스 삼총사 다르게 풀어보기 with Kotlin

https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 3중 For문을 이용해 Brute Force 방식으로 풀 수 있으며, 검색해보면 나오는 대다수의 코드는 그렇게 풀고 있다. 다른 방법은 없을까? Cursor 이용하기 아이디어의 시작은 이러했다. 1. number를 정렬한다. 2. 왼쪽에는 가장 작은 값, 오른쪽에는 가장 큰 값이 오므로, cursor를 이용해서 탐색할 수 있겠구나! class Solution { fun solution..

2024.03.03 게시됨