'아니오'나 '아니요' 중 어느 하나가 맞고 다른 하나는 틀렸다고 할 수 있는 것이 아니라, '아니오'를 써야 할 때가 따로 있고 '아니요'를 써야 할 때가 따로 있습니다.
먼저 '아니오'는 어떤 사실을 부정하는 뜻을 나타내는 '아니다'의 활용형으로 다음 (1)과 같이 한 문장의 서술어로만 쓰입니다. '-오'는 동사, 형용사의 어간 뒤나 선어말 어미 뒤에 붙는 어미이며 따라서 이때에는 '-오'가 없으면 온전한 문장이 되지 않습니다.
(1) ㄱ. 철수가 산에 가오.
ㄴ. 어서 오시오.
ㄷ. 그것은 내 잘못이 아니오.
위에서 '-오'를 빼고 보면 '철수가 산에 가-'나 '어서 오시-'처럼 온전한 문장이 되지를 않습니다.
반면에 '아니요'는 다음 (2)의 예처럼 '예/네'와 상대되는 말로 쓰이는 감탄사입니다.
(2) ㄱ. 다음 물음에 '예', '아니요'로 답하시오.
(3) ㄱ. 심부름 갔다 왔니?
ㄴ. 아니요(아뇨), 아직 못 갔다 왔습니다.
즉 '아니요'는 윗사람이 묻는 말에 부정하여 대답할 때 쓰는 말인데 이때 '아니요'는 '아뇨'로 줄여서 쓸 수 있습니다. 만일 아랫사람이나 대등한 위치에 있는 사람이 묻는 말에 부정하여 대답할 때는 '아니'를 씁니다. 이 경우엔 '응'이 '아니'와 상대되는 말이 됩니다.
요컨대 '아니오'는 어떤 사실을 부정하는 뜻을 나타내는 형용사 '아니다'의 활용형이며, '아니요'는 '예/네'와 상대되는 말로서 윗사람이 묻는 말에 부정하여 말할 때 쓰는 말입니다.
출처: 국립국어원