제목을 쓰면서 알았는데, Edge case와 Corner case는 다른 용어였다.
엣지 케이스는 변수 하나가 경계값(최댓값, 최솟값)을 넘어가는, PS 하다보면 흔히 보는 그런 케이스. 코너 케이스는 복합적인 외부 요인으로 인해 로직에 문제가 발생할 수 있는 경우를 말하는 것 같다. 뭐 그게 중요한 건 아니고, 오늘 적고 싶었던 이야기는 따로 있다.
코너 케이스를 잘 찾는 것도 '좋은 개발자'의 필요충분조건이라고 생각한다.
Competitive Programming 문제를 풀 때는 이 연산이 변수 범위를 넘어가지는 않는지, 실수 오차가 발생하는지 제출하기 전까지 악착같이 찾으려 노력했으면서, 정작 회사에 들어와서는 코드 리뷰를 요청하기 전까지 코드에 대해 그렇게 깊게 생각해본 적이 없는 것 같다.
아마 제출에 대한 페널티가 없어서 한층 마음이 편해진 것일까? 코포는 한 번 틀리면 등수가 팍 깎이는데, 회사 일은 그렇지 않으니. '코드 리뷰 해 주시는 분들께서 잘 찾아 주시겠지~' 라는 마인드로 PR 올려놓고 리뷰 올라오기 전까지 쉬면 그만이니까?
이렇게 하면 할 수록 나는 점점 더 형편없는 개발자가 될 뿐이다. 코너 케이스를 찾는 것도 개발자가 쌓아야 할 능력이다. 왜 스스로 성장할 기회를 놓치고 있는가?
물론 프론트엔드 개발이 PS/CP 문제풀이와 완전히 동일하지 않은 것도 있다. 그리고 (개인적인 경험으로) 프론트엔드 개발이 외부 요인에 영향을 더 많이 받는다. 정확하게 말하면, 프론트엔드 개발이 생각해야 할 요인이 더 많다. 당연히 상태 개수가 더 많으니까.
알면서도 왜 그렇게 하지 않는가? 조금은 반성할 필요가 있다.