모종닷컴

Reentrancy 본문

기술 용어

Reentrancy

모종 2023. 7. 29. 23:09
반응형

디버깅을 하면서 주석을 열심히 읽고 있는데 익숙한 단어가 보이네요. 익숙하긴 한데 솔직히 기억은 안납니다.

Reentrancy

Reentrancy는 재진입성이라는 뜻을 가지고 있습니다. 주로 프로그래밍에서 자주 언급이 되는데, 가끔 시스템 디자인 쪽에서도 언급이 되는걸 본적이 있던것 같습니다.

찾아보면 뭐 여러가지 다양한 해석들이 많은데 결국 핵심은 병렬 실행이 가능한 환경에서 안전하게 실행 가능한 함수를 뜻하는 거라고 생각됩니다. 병렬 실행에서 안전하게 실행 가능하기 위해서 몇 가지 조건이 필요할텐데 위키백과에서는 그 특징 몇 개를 이렇게 나열하고 있습니다.

  • 전역 변수를 사용하지 않는다
  • 전역 변수의 주소를 반환하지 않는다
  • 호출자가 제공한 매개변수만으로도 동작해야 한다
  • 싱글턴 객체의 잠금에 의존하지 않는다
  • 함수 내에서 재진입성을 지니지 않은 함수를 호출하지 않는다.

위의 특징에 해당하는 대표적인 함수가 add 같은 함수가 있을것 같습니다.

fun add(a: Int, b: Int): Int {
    return a + b
}

반면 아래의 함수는 Reentrancy 하지 않은 함수입니다.

var counter = 0 // 전역 변수

fun increaseCounter(): Int {
    counter += 1
    return counter
}
반응형

'기술 용어' 카테고리의 다른 글

Rolling Upgrade  (0) 2023.11.05
셔뱅(shebang)  (0) 2023.04.29
Swap memory  (0) 2022.11.27
서버 이중화 동작 방식  (0) 2022.09.11
유한 상태 기계 (Finite-State Machine, FSM)  (0) 2022.08.16