code: function defineNamespace(namespace, props, isOverride) {
      var names, result, prevLast, last;
  
      names = namespace.split('.');
      names.unshift(window);
  
      result = collection.reduce(names, function(obj, name) {
          obj[name] = obj[name] || {};
  
          return obj[name];
      });
  
      if (isOverride) {
          last = names.pop();
          prevLast = object.pick.apply(null, names);
          result = prevLast[last] = props;
      } else {
          object.extend(result, props);
      }
  
      return result;
  }
docs: Define namespace
  @param {string} namespace - Namespace (ex- 'foo.bar.baz')
  @param {(object|function)} props - A set of modules or one module
  @param {boolean} [isOverride] - Override the props to the namespace.<br>
  (It removes previous properties of this namespace)
  @returns {(object|function)} Defined namespace
  @memberof tui.util
  @example
  //-- #1. Get Module --//
  var util = require('tui-code-snippet'); // node, commonjs
  var util = tui.util; // distribution file
  
  //-- #2. Use property --//
  var neComp = util.defineNamespace;
  neComp.listMenu = defineClass({
  init: function() {
  // ...
  }
  });