본문 바로가기
IT용어

[개발용어] 엣지 케이스(Edge case) 및 코너 케이스(Corner case)

by 굿햄 2022. 11. 20.
개발이나 테스트 과정에서 모든 것이 완벽히 돌아간다고 생각하는 낙관주의는 매우 위험합니다.
대표적으로 오버플로우나 소수점 연산 등을 예시로 들 수 있을 것 같습니다.

위와 같이 개발이나 유닛 테스트 과정에서 오류가 발생하는 경우를 엣지 케이스(Edge case) 와 코너 케이스(Corner case)라고 부르는데 그 차이를 아래에 구분해보았습니다. 

Photo by @riku on Unsplash

📌 엣지 케이스 / 경계조건 (Edge case)

엣지 케이스란 문제나 극한의 상황(Value가 최소 또는 최대일 때), 예를 들어 스피커 볼륨을 최대로 올리니 소리가 왜곡되는 현상을 의미합니다.

 

이 현상은 엔지니어에게 예상되거나 예상되지 않을 수 있으며, 유연하게 처리할 필요가 있습니다.

 

소프트웨어 개발자 측면에서 엣지 케이스란

입력하는 value를 알고리즘에 따라 특별하게 처리하는데, 정상 동작하는지 유닛 테스트를 돌릴 때 최소/최대 값 즉 경계값을 넣어 엣지 케이스 테스트를 모두 성공하면 다른 값도 정상 동작한다는 동작 범위와 신뢰할 수 있는 코드라는 의미를 주게 됩니다.

 

📌 코너 케이스 / 복합 경계 조건 (Corner case)

코너 케이스란 엣지 케이스를 만족하며 외부 변수나 특정한 조건에서 문제가 발생하는 경우를 의미합니다.

 

앞서말한 스피커는 최소/최대 볼륨 범위를 제한하여 정상 동작하나, 온도나 습도 등이 일정 범위를 벗어나면 문제가 발생합니다.

컴퓨터나 스마트폰 또한 특정 제조사나 모델에서 오류가 발생하는 경우도 마찬가지 입니다.

 

이러한 문제는 발견하기 쉽지 않다는 문제가 있습니다.


ⓒ 굿햄 2022. daryeou@gmail.com all rights reserved.

댓글