티스토리 뷰

scala

[Scala] Callback Hell 및 해결

sungjine 2022. 3. 18. 00:30
반응형

콜백 지옥( Callback Hell )이란 콜백이 하나 있을 때 그 콜백이 다른 콜백을 호출하고 호출된 콜백이 또 다른 콜백을 호출하는 방식의 콜백이 콜백을 호출하는 것이 꼬리를 물고 반복되는 안티 패턴을 뜻한다.

 

콜백 지옥에 대한 예시

Future.onComplete {
     case Success(_) => Future.onComplete {
          case Success(_) => Future.onComplete {
               case Success(_) => ...
          }
     }
}

 

이러한 콜백 지옥은 코드를 추적하기가 어려워지고 리팩토링이나 유지보수가 힘들다는 단점을 가지고 있다.

 

스칼라의 Future를 통해 값을 얻은 후에 또 다른 Future에서 해당 값을 사용해야 할 때 콜백 지옥에 빠지게 되는데 이때 for comprehension을 통해서 해결할 수 있다.

 

콜백 지옥 해결에 대한 예시

for {
     a <- FutureA
     b <- FutureB
     ...
} yield {}
반응형

'scala' 카테고리의 다른 글

[Scala] ensuring  (0) 2019.10.19
[Scala] 부분 적용 함수  (0) 2018.08.04
[Scala] sealed 제어자  (0) 2018.06.23
[Scala] unapply 메서드  (0) 2018.05.05
[Scala] apply 메서드  (0) 2018.03.24
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday
글 보관함
«   2024/05   »
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