1. A storage device, the storage device to be connected to a host, wherein the host receives a first command, measures costs of a plurality of operations corresponding to the first command, the costs of the plurality of operations including cost of an operation of the host and cost of an operation of the storage device, compares the costs of the plurality of operations and selects an optimal operation among the plurality of operations, and provides the storage device with a second command when the cost of the operation of the storage device is lower than that of the host, the storage device comprising: a first channel connected to at least one first non-volatile memory device; and a first memory controller for controlling the at least one first non-volatile memory device and including a first processor connected to the first channel, the first processor to be provided in the first memory controller to perform first data processing, wherein the first processor of the first memory controller is to receive the second command and a data processing code information being associated with the at least one first non-volatile memory device from the host, to load the data processing code information, and to generate first processed data by performing the second command, independently instead of the host, the first data processing on first original data being transferred from the at least one first non-volatile memory device or on first original data being transferred from the host according to the second command and the data processing code information being associated with the at least one first non-volatile memory device, and to provide the first processed data as a result of the first data processing to the host, and wherein the first processed data are modified from the first original data by the first data processing.