Skip to content

Latest commit

 

History

History
25 lines (20 loc) · 1.83 KB

EdgeCase.md

File metadata and controls

25 lines (20 loc) · 1.83 KB

엣지 케이스 (edge case)

  • 하나의 매개변수 값이 극단적인 최대값 또는 최소값이여서 로직에 문제가 발생할 수 있는 경우

  • 알고리즘이 처리하는 데이터의 값이 알고리즘 특성에 따른 일정한 범위를 넘을 경우에 발생하는 문제를 가리킴

    • ex) fixnum이라는 변수의 값이 -128 ~ 127의 범위를 넘는 순간 문제가 발생하는 경우가 있을 수 있음.
    • 분모가 0이 되는 상황처럼 데이터의 특정 값에 대해 문제가 발생하는 경우도 마찬가지
    • 알고리즘 특성에 따라 개발자가 검토하여 예상할 수 있는 문제로 디버그도 쉽고, 테스트를 통해 방지하기도 쉽다.
  • 코딩 검사할 때 엣지케이스 찾기 리스트

    1. 비어있거나 하나만 있는 케이스
    2. 첫번째 혹은 마지막 케이스
    3. 크기가 굉장히 큰 케이스
    4. 범위가 굉장히 넓은 케이스
    5. 양수만 있는, 혹은 음수만 있는 케이스
    6. 배열 사이즈가 클 때 전체 반복을 두 번 이상하면 타임아웃에 거릴 수도 있다고 생각하자
    7. overflow가 나는 케이스 → int 대신 long 사용
    8. 같은 값이 들어가는 케이스

코너 케이스 (corner case)

  • 코너 케이스는 여러가지 변수와 환경의 복합적인 상호작용으로 발생하는 문제
    • ex) fixnum이라는 변수의 값으로 128이 입력되었을 때, A 기계에서 테스트했을 떄는 정상작동하지만 B 기계에서는 오류가 발생한다면 코너 케이스라고 할 수 있음.
    • 같은 장치에서도 시간이나 다른 환경에 따라 오류가 발생할 수도 있고, 정상작동하기도하면 이 또한 코너 케이스
    • 멀티코어 프로그래밍에서 자주 발견되며 발생 상황 재현이 어려워 디버그, 테스트가 어려움