코드 품질 개선 - 세션 62: 아찔했던 두 가지 사례
·2026.01.16 11:00
함수의 멱등성을 확보하여 상태 체크의 번거로움을 줄이고 코드의 예측 가능성을 높이는 방법을 제안한다.
리소스 관리 클래스에서 이미 해제된 리소스에 대해 close를 다시 호출할 때 런타임 에러가 발생하는 상황을 방지하려면 함수를 멱등성(Idempotency) 있게 설계해야 한다. 멱등성이란 함수를 한 번 호출하나 여러 번 호출하나 결과가 동일한 성질을 의미한다.
함수를 멱등하게 구현하면 다음과 같은 이점을 얻을 수 있다.
- 함수 호출 전 별도의 상태 체크가 필요 없음
- 함수 호출 후의 상태를 쉽게 예측 가능
- 초기 상태를 캡슐화하여 숨길 수 있음
이러한 개념은 순환하는 상태 전환(예: Animation 클래스의 실행/정지 상태)에도 적용 가능하다. 상태가 이미 목표 상태와 같다면 아무 작업도 하지 않도록 설계함으로써, 여러 이벤트 핸들러가 동시에 호출되더라도 최종 상태를 안정적으로 유지할 수 있다.
또한, 세 가지 이상의 상태를 가진 시스템에서도 특정 상태를 우선시하도록 설계하여 복잡한 상태 전이를 단순화할 수 있다. 예를 들어, Task 클래스에서 finish 호출이 start 호출보다 우선순위를 갖도록 설계하면 상태 관리가 더욱 견고해진다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.