1. A method of optimizing a signature string storage memory, comprising: tokenizing signature string patterns to be used as searching patterns of a harmful packet to substrings; determining whether a substring to be stored in the substrings is the same as a substring of another previously stored signature string pattern to share a corresponding memory table when it is determined that the substring to be stored is the same as the substring of the other previously stored signature string pattern and to analyze whether the substring to be stored is a first substring when it is determined that the substring to be stored is not the same as the substring of the other previously stored signature string pattern; storing the substring in an internal memory block when it is determined that the substring to be stored is the first substring and analyzing whether a memory table in which a substring previous to the substring to be stored is stored is linked to a memory table in which another substring corresponding to a position of the substring to be stored is stored when it is determined that the substring to be stored is not the first substring; and storing the substring in an external memory block when it is determined that the memory table in which the substring previous to the substring to be stored is stored is not linked to the memory table in which another substring corresponding to the position of the substring to be stored is stored and storing the substring in the internal memory block when it is determined that the memory table in which the substring previous to the substring to be stored is stored is linked to the memory table in which another substring corresponding to the position of the substring to be stored is stored.