1. An apparatus for developing software, comprising: a processor, a memory, and a storage configured to separately store a plurality of previously developed automatic code generators, a plurality of software architecture components, and libraries used in a software domain according to software types, wherein the processor executes a program code which is stored in the memory and comprises: a feature selector configured to select a feature corresponding to development-subject software received from a developer from a feature model created by analyzing features of multiple software, and generate a feature list; an automatic code generator selector configured to determine an automatic code generator corresponding to at least one development-subject software type received from the developer; an automatic code generator configured to select architecture components of the development-subject software using the at least one development-subject software type, and generate automatically generated code on the basis of the selected architecture components and requirements of the determined automatic code generator received from the developer; a configurator configured to modify the automatically generated code and code of the architecture components on the basis of the generated feature list, and output configured code; a linker configured to connect a part calling a library of a domain in the configured code with a part calling an actual domain library, and generate final generation code, and a controller configured to control the automatic code generator corresponding to the development-subject software type received from the developer to be selected from among the plurality of previously developed automatic code generators stored in the storage accordingly to software types, wherein the at least one development-subject software type includes at least one of a data manager software type, a data converter software type, a data distributor software type, a controller software type, and a monitor software type, wherein the feature model is created by analyzing commonality and variability of multiple software belonging to a software product line in terms of features, wherein the controller controls the part calling the actual domain library which is connected with the part calling the library of the domain in the configured code to be selected from among libraries stored in the storage, and wherein the data manager software type indicates software that stores and manages data, receives requests for data read, write, and deletion from outside, accesses a database to process the received requests, and performs processes for the received requests, the data converter software type indicates software that converts data received from a data sender into other data values according to a data transformation rule, the data distributor software type indicates software that transmits data received from a data sender to a data receiver according to a data distribution rule, the controller software type indicates software that manages a state of a system, and carries out a predetermined action according to a current situation, and the monitor software type indicates software that reads and shows data to a user as an interface between the user and a system.