// WorkManager Chaining // A -> 순서 상관 없이 실행되도 괜찮음 // B -> 순서 상관 없이 실행되도 괜찮음 // C -> 무조건 A / B 모두 실행 된 뒤에 실행되어야 한다 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val workManagerA = OneTimeWorkRequestBuilder().build() val workManagerB = OneTimeWorkRequestBuilder().build() val ..
sample code // MainActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) SimpleThread().start() //WorkManagerA // val workManagerA = OneTimeWorkRequestBuilder().build() //객체 생성 // WorkManager.getInstance(this).enqueue(workManagerA) val myData : Data = workDataOf( "a" to 10..
Repository Pattern : Data의 출처에 관계 없이 동일한 인터페이스로 데이터를 접근할 수 있도록 하는 패턴이다. DataSource를 캡슐화 시킨다. - Data Layer에 대한 의존성을 줄일 수 있다. 즉, Data Layer와 Presentation Layer 간의 Coupling이 줄어든다. - Presentation Layer에서 Data Layer에 직접 접근하지 않으므로, 새로운 Data의 추가가 쉽다. - Presentation Layer에서는 Repository에 데이터 요청만 하면 되므로, 일관된 인터페이스로 데이터를 요청할 수 있다. - Unit Test를 통한 검증하기가 쉬워진다. 별도의 Repository 클래스를 사용한다. UseCase : 서비스를 사용하고 있는..
- Coroutine - ViewModelScope
간단하게 instanceof는 특정 Object가 어떤 클래스/인터페이스를 상속/구현했는지를 체크하며 Class.isAssignableFrom()은 특정 Class가 어떤 클래스/인터페이스를 상속/구현했는지 체크합니다. // instanceof MacPro obj = new MacPro(); if (obj instanceof Computer) { ... } // Class.isAssignableFrom() if (Computer.class.isAssignableFrom(MacPro.class)) { ... }
call vs Response 차이 1. Call - Call 서버에 요청을 보낼 때, 각각의 Call은 자체적으로 HTTP 요청과 응답 쌍을 생성한다. execute() : 동기적 실행하기 때문에 UI를 차단한다. enqueue() : 비동기적으로 요청을 보내고 응답을 반환한다. 서버와 통신 중에 유저와 화면간의 상호작용이 가능하기 때문에 권장. 2. Response - 요청 이후의 응답을 받을 수 있다. Response는 성공일 수도, 실패일 수도 있기 때문에 각 케이스에 대하여 핸들링 필요. 3. Call vs Response - Call은 서버에 대한 요청과 응답 결과에 대한 반환을 한 번에 수행하고, Response는 요청 이후 응답 결과에 대한 반환만 수행한다. https://velog.io/..
Kotlin - coroutine : 콜백 대신 오래 실행되는 작업을 처리하는 방법 콜백기반 -> 순차코드 코루틴 속성 : 비동기(=nonblocking) 일시 중단 함수를 사용하며 비동기 코드를 순차적으로 만든다. 중단과 suspend의 차이점 : 쓰레드가 중단되면 다른 작업이 발생하지 않는다. 스레드가 일시 중단되면 결과를 사용할 수 있을 떄까지 다른작업이 수행됩니다. 코루틴의 필요한 3가지 작업 : 취소할 수 있는 모든 것 디스패처 : 다양한 스레드에서 실행되도록 코루틴을 보낸다. 범위 : 코루틴이 실행되는 컨텍스트를 정의. 코루틴의 작업 + 디스패처에 대한 정보를 결합. viewmodelscope : onCleared() 호출할 때 직접 coroutine context를 명시적으로 취소를 하지않아..
withContext, async 차이 suspend 코루틴 함수를 정의하는 키워드. 기존 스레드 작업과 코루틴, 비동기 작업 순차진행 Suspend - resume suspend 함수가 호출될 때, 기존 진행 코드는 멈춘다.(suspend) 그리고 이 함수가 끝날 때 기존 진행 코드가 실행된다.(resume) CoroutineContext가 지정한 쓰레드에서 동작. IO Thread 함수 실행 ? withContext : CoroutineContext를 실행 인자와 suspend 함수를 인자로 받고 그 CoroutineContext에서 그 suspend 함수를 실행시킵니다. 그리고 부모 CoroutineContext는 이 전체 실행이 끝나고 결과를 반환할 때까지 기다립니다.? CoroutineConte..
1. MVVM 특장점 view -> view model -> model : 단방향 의존성을 갖도록 최대한 분리시킨 디자인 패턴 코드의 재사용성 증가 viewmodel이 view에 의존하지 않기 때문에 M:N 관계가 가능하다. view는 필요에 따라 여러 viewmodel 클래스를 가져다 쓸 수 있으며(1:m), 여러 view들이 하나의 viewmodel 클래스를 사용할 수 있다.(n:1) viewmodel의 모듈화가 가능하다. 유지보수가 수월해진다. 유닛테스를 하기 용이해진다.(viewmodel, model) viewModel : UI의 데이와 그에 필요한 변경 로직을 담당한다. view에 대한 data 담당 구성 변경으로 액티비티가 종료됐다가 재생성되어도 살아서 데이터를 보관한다. (view와 안전하게..
최근에 앱 서비스 대해서 관심이 많아 이것저것 찾아보다가 뷰티컬리에서 테크 밋업 소식을 듣고 신청했는데 뽑혔어요 ㅎㅎㅎ 컬리 사무실에 가게 되다니 설레더라고요. 뷰티컬리는 새로 오픈한 서비스인데 개발자들의 생생한 후기를 들을 수 있어서 영광스러웠어요. ㅋㅋㅋ제일 먼저 도착해서 행사장들을 둘러보았어요. 직원분들께서 신경 써서 테크 밋업을 준비하신 것 같더라고요! 맛있는 간식들도 준비가 되어 있었어요. 뷰티컬리의 크리스마스 선물인가요? 하나하나 정성 담아서 준비해주셔서 감사했어요. 행사 진행은 다음과 같았어요! ◾ 세부 패널 세션 주제 ✔서비스 기획자 김수지 님의 "우선 순위를 나눠 정복하고, 원팀으로 협업하기" 스토리 - 버티컬 플랫폼을 확장하면서 얻은 기획의 경험에 대해 ✔프로덕트 디자이너 최윤미 님의 ..
- Total
- Today
- Yesterday
- ui
- 캔바스
- Inverse Kinematics
- additive
- 초조한유녕
- 언리얼엔진Locomotion
- 유니티 캔바스
- rootmotion
- 애디티브
- #ui canvas
- 세션
- #unity
- 언리얼루트모션활성화
- 언리얼IK
- 언리얼엔진
- 쿠키
- 캔버스
- 언리얼엔진루트모션
- 보행이동기반블렌딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |