The language is both DCFL and CFL. Even every DCFL is CFL.
[ DCFL → Deterministic Context Free Language, CFL → Context Free Language ]
We can design deterministic push-down automata for the above language.
Logic: Start reading i/p → Push all the a’s inside the stack → on seeing b’s start popping a’s from the stack top → on seeing a’s start popping a’s from the stack top → If the input string ended and no i/p symbol(a’s) left inside the stack then accept the string else reject.