// 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..
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와 안전하게..
목차 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 아이템 6. 불필요한 객체 생성을 피하라 아이템 7. 다 쓴 객체 참조를 해체하라 아이템 8. finalize와 cleaner 사용을 피하라 아이템 9. try-finally보다는 try-with-resources를 사용하라 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 Consider static factory methods instead of constructors 클래스의 인..
- Total
- Today
- Yesterday
- 언리얼엔진
- rootmotion
- 언리얼엔진Locomotion
- 언리얼루트모션활성화
- 쿠키
- 세션
- 유니티 캔바스
- 캔버스
- 언리얼IK
- ui
- 언리얼엔진루트모션
- Inverse Kinematics
- 보행이동기반블렌딩
- 애디티브
- 캔바스
- 초조한유녕
- additive
- #ui canvas
- #unity
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |