A home appliance, comprising: a user input interface; a storage configured to store a database of an operation history; and a controller, characterized in that the controller is further configured to: in response to receiving an input requesting to perform a previous operation through the user input interface, verify a type of a first command, mapped to a first operation corresponding to the request for performing the previous operation, among commands included in the database, in response to the type of the first command being a first type, perform the first operation as the previous operation based on a result of the first operation stored in the database; and in response to the type of the first command being a second type, generate a second operation corresponding to the first command, and perform the second operation as the previous operation based on data generated with the generation of the second operation, wherein the first type is a type of a command in which a result of an operation corresponding to the command remains unchanged over time, wherein the second type is a type of a command in which a result of an operation corresponding to the command varies over time. a user input interface; a storage configured to store a database of an operation history; and a controller, characterized in that the controller is further configured to: in response to receiving an input requesting to perform a previous operation through the user input interface, verify a type of a first command, mapped to a first operation corresponding to the request for performing the previous operation, among commands included in the database, in response to the type of the first command being a first type, perform the first operation as the previous operation based on a result of the first operation stored in the database; and in response to the type of the first command being a second type, generate a second operation corresponding to the first command, and perform the second operation as the previous operation based on data generated with the generation of the second operation, wherein the first type is a type of a command in which a result of an operation corresponding to the command remains unchanged over time, wherein the second type is a type of a command in which a result of an operation corresponding to the command varies over time. in response to receiving an input requesting to perform a previous operation through the user input interface, verify a type of a first command, mapped to a first operation corresponding to the request for performing the previous operation, among commands included in the database, in response to the type of the first command being a first type, perform the first operation as the previous operation based on a result of the first operation stored in the database; and in response to the type of the first command being a second type, generate a second operation corresponding to the first command, and perform the second operation as the previous operation based on data generated with the generation of the second operation, wherein the first type is a type of a command in which a result of an operation corresponding to the command remains unchanged over time, wherein the second type is a type of a command in which a result of an operation corresponding to the command varies over time.