Hi Roshan,
Undo is used to rollback the changes and redo is used to roll forward the changes.
so, when your database is inconsisten state, you do a recovery to put it in a consistent state.
This is called recovery, yes... During a startup, oracle may do an instance recovery, so you don't see it but it recovers the database using undo and redo.
Instance recovery is done while starting the database after a shutdown abort operation , which does not checkpoint the open data files. So, in this situation instance recovery is necessary before the database can be reopened. The other shutdown modes do not require instance recovery before the database can be opened.
Also there are cases where you need to do a recovery (manuel or auto / point in time, complete, incomplete)
Suppose, you have restored yesterday's backup and want to roll forward it to roll forward your database to the current time.
So, that 's where you do a recovery...
You can refer this link for further info :
https://docs.oracle.com/cd/B19306_01/server.102/b14220/backrec.htm