/// <summary>
        /// 지정된 상위 부서 밑으로 부서를 추가합니다. 이때, 상위부서는 null이면 안됩니다. (최상위 부서는 <see cref="GetOrCreateDepartment"/> 메소드를 사용하세요)
        /// </summary>
        public Department CreateDepartmentOf(Department parent, string childCode)
        {
            parent.ShouldNotBeNull("parent");
            childCode.ShouldNotBeWhiteSpace("childCode");

            if(IsDebugEnabled)
                log.Debug("부서[{0}] 하위로 새로운 부서를 추가합니다. 추가할 부서 Id=[{1}] 입니다.", parent.Code, childCode);

            var child = new Department(parent.Company, childCode);

            child.SetParent(parent);
            child.UpdateNodePosition();

            Repository<Department>.SaveOrUpdate(parent);
            return Repository<Department>.SaveOrUpdate(child);
        }