원티드 프리온보딩 백엔드 챌린지에서 시스템 설계 문제에 대한 접근 법으로 최초 설계안을 제시하기 라는 부분이 있었다. 근데 여기에서 시스템의 구체적 사용 사례를 살펴보면 Edge case를 발견하는데 도움이 된다고 멘토님이 말씀하셨다. 여기에서 Edge case가 무엇인지 몰라 정리하고자 한다.
Edge case에 대한 설명을 찾아보니 아래와 같은 설명을 읽었다.
알고리즘이 처리하는 데이터의 값이 알고리즘 특성에 따른 일정한 범위를 넘을 경우 발생하는 문제를 가리킨다.
바로 무슨 말인지 이해가 되지 않았다 😅
좀 더 찾아본 결과 극단적인 버그이지만 해결할 수 있는 상황이라고 이해하게 되었다. 개발자와 기획자는 사용자들이 자신의 설계한 방식대로 서비스를 이용할 것이라 생각한다. 하지만 그것은 매우 위험한 생각이다. 사용자들은 전혀 생각하지 못한 경로와 사용법을 가지고 서비스를 이용하기 때문에 언제든지 극단적인 버그들이 발생할 수 있고 서비스를 이용하는데 어려움을 겪을 수 있다.
그렇기 때문에 개발자들은 극단적인 상황을 대비하여 테스트 코드를 작성하는 등 면밀히 검토하여 예상하면 미리 방지할 수 있다.
그와 반대되는 용어로는 Corner case가 있다. Edge case가 아닌 모든 버그 경우를 Corner case라고 생각하면 된다. 예를 들어, 본래 잘 동작했던 코드가 프레임워크 업데이트로 인해 동작하지 않는 경우가 생긴다. 이럴 경우 개발팀에서 재현하기도 쉽지 않고 미리 방지할 수 없다.
참고
https://bakyeono.net/post/2015-05-02-edge-case-corner-case.html
https://airfocus.com/glossary/what-is-an-edge-case/
'Back Side > etc' 카테고리의 다른 글
[Babel] TypeScript 코드를 JavaScript로 바꾸기 위해 떠난 여정기 (0) | 2022.11.18 |
---|---|
XML에 대한 모든 것 - 개념, JSON과의 비교 등 (0) | 2022.11.07 |
[강의] React 초보자의 완강 후기 - 노마드코더 ReactJS로 영화 웹 서비스 만들기 (0) | 2022.08.18 |
노트 필기앱 옵시디안 Obsidian 사용법 (1) - 설치 (0) | 2022.07.29 |
[기타] Message Queue (0) | 2022.06.29 |
댓글