목록전체 글 (51)
JuHyang
Optional 내부 구조 Force Unwrapping Optional Binding Nil Coalescing Optional Chaining 참고 글하면 좋을 글 모음 https://velog.io/@nnnyeong/iOS-AppDelegate-SceneDelegate [iOS] AppDelegate, SceneDelegate (iOS 13 이전 이후) AppDelegate와 SceneDelegate iOS 12 iOS 12 이전까지는 하나의 앱에 하나의 window AppDelegate 내에서 App Life Cycle, UI Life Cycle 을 모두 담당함 iOS 13 iOS 13 부터는 window 개념이 velog.io
나에게는 꽤 의미있는 2022 회고를 가장한 기록을 해본다. 버즈빌리언으로서의 시작 작년 한해를 되돌아보면, 아무래도 가장 의미있는 이벤트는 이직인 것 같다. 꽤 오랜기간 지냈고 첫 직장 이었던 레이시오를 벗어나서 첫 이직에 성공한 해이다. 하반기에 넣었던 모든 공채에서 면접과정 중 탈락한 나에게 추천서를 제안해줬던 Nike덕에 안드로이드 SDK 개발이라는 경험을 할 수 있게 되었다. 추천의 이유가 Nike 본인이 합격할 정도라면 나도 당연하게 합격할 정도라는 말을 들었던 것으로 기억하는데 나름 개발자로서 인정받고 있구나 하며 뿌듯한 기억이다. 나를 추천해준 Nike 와 응원해준 다른분들에게 감사를 돌린다. 버즈빌의 채용과정중 가장 기억에 남는 부분은 굉장히 빠른 결과 통보였다. 1차면접은 잠실에서 석촌..
Kotlin 코루틴을 사용하면 네트워크 호출이나 디스크 작업과 같은 장기 실행 작업을 관리하면서 앱의 응답성을 유지하는 깔끔하고 간소화된 비동기 코드를 작성할 수 있습니다. 장기 실행 작업 관리 코루틴은 장기 실행 작업을 관리하는 두 작업을 추가하여 일반 함수를 기반으로 빌드됩니다. invoke(또는 call) 및 return 외에도 코루틴은 suspend 및 resume 을 추가합니다. suspend 는 현재 코루틴 실행을 일시중지하고 모든 로컬 변수를 저장합니다. resume 은 정지된 위치부터 정지된 코루틴을 계속 실행합니다. suspend 함수는 다른 suspend 함수에서 호출하거나 코루틴 빌더(예 : launch)를 사용하여 새 코루틴을 시작하는 방법으로만 호출할 수 있습니다. suspend ..
Coroutine 은 Andorid 의 비동기 프로그램잉 권장되는 솔루션입니다. 주목할 만한 기능은 다음과 같습니다. 경량 : 코루틴을 실행 중인 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있습니다. 정지는 많은 동시 작업을 지원하면서도 차단보다 메모리를 절약합니다. 메모리 누수 감소 : 구조화된 동시 실행을 사용하여 범위 내에서 작업을 실행합니다. 기본으로 제공되는 취소 지원 : 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달됩니다. Jetpack 통합 : 많은 Jetpack 라이브러리에 코루틴을 완전히 지원하는 확장 프로그램이 포함되어 있습니다. 일부 라이브러리는 구조화된 동시 실행에 사용할 수 있는 자체 코루틴 범위도 제공합니다. 종속 항목 정보 An..

애그리거트 수많은 테이블을 ERD 로 표시하게 되면 비즈니스 Domain 에 관련한 정보를 가지기 어렵다. 따라서 ERD 위에 애그리거트를 통해 관련된 객체를 하나의 군으로 묶어주는 작업을 해주면 Domain 에 대한 정보를 얻기 쉽다. 애그리거트는 모델을 이해하는데 도움을 줄 뿐만 아니라 일관성을 관리하는 기준도 된다. 애그리거트 단위로 일관성을 관리하기 때문에 도메인을 단순한 구조로 만들어 주고 그에 따라 개발시간도 줄어든다. 이 경계를 설정할 때 기본이 되는 것은 도메인 규칙과 요구사항이다. 도메인 규칙에 따라 함계 생성되는 구성요소는 한 애그리거트에 속할 가능성이 높다. 유의해야 할 점은 ‘A가 B를 갖는다' 로 설계할 수 있는 요구사항이 있다면 A와 B를 한 애그리거트로 묶어서 생각하기 쉽지만 ..
Rx 에서 데이터를 발급하는 방법은 여러가지가 존재합니다. 그 중 가장 흔히 사용할 수 있는 데이터 발급 함수에는 Just 와 Create 가 있습니다. Single.just(Foo().bar()) Single.create { emitter -> emitter.onSuccess(Foo().bar()) } 두 함수는 비슷해 보이지만 다른 동작을 하고 있습니다. SingleJust 의 내부 구현체와 SingleCreate 의 내부 구현체를 들여다 보면 차이를 알 수 있습니다. // SingleJust public final class SingleJust extends Single { final T value; public SingleJust(T value) { this.value = value; } } //..
MvvM Clean Architecture DataBinding [View] ConstraintLayout MotionLayout CustomView [Kotlin] Coroutine RxKotlin
출처 : https://two22.tistory.com/10?category=1129307 ViewMatchers 뷰의 상태와 Matcher 함수들을 모아 놓은 클래스이다. ViewMatchers는 뷰를 찾기 위해서도 (onVIew)쓰고, 뷰의 상태를 확인하기(check) 위해서도 사용된다. onView(withText("Welcome")) .check(matches(allOf(isDisplayed(), withText("Welcome")) 위의 코드에서 사용된 withText, isDisplayed() 같은 것들이 ViewMathcer 이다. isDisplayed() 가장 기본적인 ViewMatcher로 화면에 보이는지 여부로 판단한다. 단순히 VISIBLE 확인이 아니라 화면의 보이는 영역에 그려졌는..