An operation method of a storage device (120; 220, 240; 320; 420; 520; 620), the method comprising: when receiving a write request for a first namespace (NS A) among a plurality of namespaces logically divided and recognized by an external host device (110; 210; 310; 411; 412; 510; 610), determining whether an available space of the first namespace (NS A) is insufficient to store data corresponding to the write request for the first namespace (NS A); when it is determined that the available space of the first namespace (NS A) is insufficient, identifying a free second namespace (NS B), different from the first namespace (NS A) from among the plurality of namespaces, and allocating a portion of an available space of the second namespace (NS B) as a temporary space for temporarily storing data for the first namespace (NS A); storing data corresponding to the write request for the first namespace (NS A) in the allocated temporary space of the second namespace (NS B), after allocating the temporary space of the second namespace (NS B) for temporarily storing data for the first namespace (NS A), failing to store data corresponding to a first write request for the second namespace (NS B) in the allocated temporary space of the second namespace (NS B), the method further comprising: after detecting said failing to store data corresponding to a first write request for the second namespace (NS B) in the allocated temporary space of the second namespace (NS B), and after adding an external storage device, flushing data stored in the first namespace (NS A) and data stored in the temporary space of the second namespace (NS B) to a third namespace (NS C) included in the external storage device under control of the external host device; and when the flush is completed, deallocating the temporary space of the second namespace (NS B) from temporarily storing data for the first namespace (NS A), and storing data corresponding to a second write request for the second namespace (NS B) in the deallocated temporary space, wherein the first namespace (NS A) is replaced with the third namespace (NS C). when receiving a write request for a first namespace (NS A) among a plurality of namespaces logically divided and recognized by an external host device (110; 210; 310; 411; 412; 510; 610), determining whether an available space of the first namespace (NS A) is insufficient to store data corresponding to the write request for the first namespace (NS A); when it is determined that the available space of the first namespace (NS A) is insufficient, identifying a free second namespace (NS B), different from the first namespace (NS A) from among the plurality of namespaces, and allocating a portion of an available space of the second namespace (NS B) as a temporary space for temporarily storing data for the first namespace (NS A); storing data corresponding to the write request for the first namespace (NS A) in the allocated temporary space of the second namespace (NS B), after allocating the temporary space of the second namespace (NS B) for temporarily storing data for the first namespace (NS A), failing to store data corresponding to a first write request for the second namespace (NS B) in the allocated temporary space of the second namespace (NS B), the method further comprising: after detecting said failing to store data corresponding to a first write request for the second namespace (NS B) in the allocated temporary space of the second namespace (NS B), and after adding an external storage device, flushing data stored in the first namespace (NS A) and data stored in the temporary space of the second namespace (NS B) to a third namespace (NS C) included in the external storage device under control of the external host device; and when the flush is completed, deallocating the temporary space of the second namespace (NS B) from temporarily storing data for the first namespace (NS A), and storing data corresponding to a second write request for the second namespace (NS B) in the deallocated temporary space, wherein the first namespace (NS A) is replaced with the third namespace (NS C). after detecting said failing to store data corresponding to a first write request for the second namespace (NS B) in the allocated temporary space of the second namespace (NS B), and after adding an external storage device, flushing data stored in the first namespace (NS A) and data stored in the temporary space of the second namespace (NS B) to a third namespace (NS C) included in the external storage device under control of the external host device; and when the flush is completed, deallocating the temporary space of the second namespace (NS B) from temporarily storing data for the first namespace (NS A), and storing data corresponding to a second write request for the second namespace (NS B) in the deallocated temporary space, wherein the first namespace (NS A) is replaced with the third namespace (NS C).