Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 7879
- OIDC
- 핀포인트
- 노드간 통신
- jar 배포
- pinpoint
- LPOS
- 월급루팡 일지
- ㅉ때
- 오블완
- intellij
- UnsupportedOperationException
- RedirectService
- hbase 저장공간 설정
- save/update
- Armeria
- pinpoint 2.5.3
- 애자일 싫타
- reids
- fake jwt
- nGinder
- 티스토리챌린지
- formik
- jsonMarshaller
- Loki 로그
- 플루터
- 개발 어렵당.ㅠ
- R2DBC Paging
- 논블록킹 성능
- Ingress Controller Fake
Archives
- Today
- Total
대머리개발자
다시 한번 코루틴 적용해 보자. 본문
728x90
when ?
동시에 병렬로 처리 하고 싶을때
-> 사실 API를 더 작은 기능으로 쪼개서 프론트-엔드에서 동시에를 쏘면 되겠다.
하지만 관리 포인트도 늘어나는 등 트레이드 오프 관계이기 때문에 서버 사이드도 적절하게 처리 할 수 있어야 한다.
why ?
사용자에게 좋은 쾌적한 경험을 주기 위해서지
두 작업이 병렬로 진행하지만 마무의리는 맞춰야 하는 경우와 그렇지 않는 경우가 있다.
예를들어 검색을 한다고 했을 때
1. 검색어 저장
2. 검색 결과 리턴
검색어 저장은 검색 결과 리턴하는데 영향도가 1도 없기 때문에
결과 리턴과 상관없이 각자도생하면 된다.
이력(History)를 쌓는 경우도 동일하게 처리하면 된다.
import kotlinx.coroutines.*
val scope = CoroutineScope(Dispatchers.IO)
fun search() {
scope.launch {
// 검색어 저장 API
}
scope.launch {
// 히스토리 저장 API
}
// 검색어 조회 API
}
각각의 프로세스가 영향도가 있으면...
val scope = CoroutineScope(Dispatchers.IO)
val test1 = scope.async {
val task1 = async {
"api-1"
}
val task2 = async {
"api-2"
}
task1.await() + task2.await()
}
scope.launch {
test1.await()
}
보통는 runBlocking { .. } 로 소개 되지만... 실제 코드에서는 지양한다고 한다.
지금도 모르지만 예전에도 모르고 주절리 했었네 ㅋ
코루틴 조으다!
절차지향적으로 진행하면 여러모로 편하다!!! 두말하면 잔소리다. 동시에 복잡하게.. 진행 되면 돌머리인 내가 팔로우 하기가 너무 힘들다 ㅠ 그리고 기본적으로 절차적으로 해결해도 크게 무리
hcnmy.tistory.com
728x90
'개발이야기 > 코틀린' 카테고리의 다른 글
armeria aop (6) | 2024.09.10 |
---|---|
아르메리아 End-Point 설정 (0) | 2024.08.23 |
시크릿 컬럼 추가에 대한 말도 안 되는 고민 (0) | 2024.08.05 |
데이터 정규화 (1) | 2024.05.17 |
[코틀린]null 처리 재미지다! (0) | 2024.04.02 |