[함수형 리팩터링] 비동기 전환을 고려한 공유 Mutable 제거
·
Programming Paradigm
배경이번 리팩터링 목적은 코드 내 작업을 비동기적으로 바꾸기 전에 문제(race, 흐름 의존성)를 제거하는 것이다. 그 방법은 기존 코드에 함수형 패러다임을 적용하는 것이다. 상태 변경을 줄이고, 행동을 조합 가능하게 만들 것이다. 0. 기존 코드 아래 코드는 이미지 첨부파일 리스트를 가져와서 NCloud Green Eye를 통해 각 첨부파일에 대해 유해성 판별을 한다. 현재는 이 작업이 .block() 기반 순차 처리라 race가 표면화되진 않지만, 비동기 전환 시 공유 리스트에 대한 동시 접근이 생길 수 있어 구조적으로 위험해진다. 또한, for문 내에서 흐름 제어와 계산 로직이 묶여 테스트가 어려웠다.참고) 비동기 전환을 고려하는 이유는 외부 API요청에 대해 굳이 쓰레드를 점유하게 하고 싶지 않은..