🏛️ HONGIKINGAN CMS хөгжүүлэгчийн гарын авлага

Хувилбар 202506 | Шинэчилсэн 2025-06-12
🌐 Хэл сонгох: 🇰🇷 한국어 🇲🇳 Монгол 🇺🇸 English

6. 🔧 Өргөтгөл болон тохируулга

6.1 Хөгжүүлэлтийн процесс

HONGIKINGAN CMS-д суурилсан хөгжүүлэлтийн процесс нь дараах үе шатаас бүрдэнэ.

6.1.1 Хөгжүүлэлтийн үе шат

HONGIKINGAN CMS ашиглан хөгжүүлэлт нь дараах процессыг дагаж мөрддөг:

📋 Шаардлага шинжилгээ

  • Функцийн шаардлага тодорхойлох
  • Функц бус шаардлага тодорхойлох
  • Системийн хамрах хүрээ тогтоох

🏗️ Дизайн болон архитектур

  • Өгөгдлийн сан дизайн
  • Дэлгэц дизайн
  • Интерфейс дизайн
  • Архитектур дизайн

💻 Хэрэгжүүлэлт болон кодчилол

  • Функц хэрэгжүүлэх
  • Нэгж тест
  • Код хяналт

🧪 Тест болон дебаг

  • Интеграци тест
  • Систем тест
  • Гүйцэтгэл тест
  • Алдаа засвар

6.1.2 eGovFrame нийцтэй байдал хадгалах хөгжүүлэлт

HONGIKINGAN CMS нь eGovFrame-д суурилсан тул хөгжүүлэлтийн үед дараах зүйлсийг дагаж мөрдөх шаардлагатай:

🏛️Стандарт архитектур дагаж мөрдөх

  • MVC загвар дагаж мөрдөх
  • Давхарга хооронд тодорхой тусгаарлалт
  • Интерфейс суурьтай дизайн

🛠️Стандарт хөгжүүлэлтийн орчин ашиглах

  • eGovFrame хөгжүүлэлтийн орчин ашиглах
  • Стандарт сан ашиглах

📝Стандарт кодчилолын дүрэм дагаж мөрдөх

  • Нэрлэх дүрэм дагаж мөрдөх
  • Тайлбар дүрэм дагаж мөрдөх
  • Код форматлах дүрэм дагаж мөрдөх

6.1.3 Хөгжүүлэлтийн орчин бүрдүүлэх

HONGIKINGAN CMS хөгжүүлэлтийн орчин нь дараах байдлаар бүрдэнэ:

🌐Вэб төслийн бүтэц

  • Вэб төсөл нь [WEB] төсөлд хөгжүүлэгдэнэ
  • Бэкэнд удирдлага нь [BO] төсөлд хэрэгжүүлэх хос бүтэц

📂Хувилбар удирдлага

  • SVN, GIT зэрэг хувилбар удирдлагын хэрэгсэл ашиглах
  • Хувилбар удирдлага болон өөрчлөлтийн түүх удирдлага

🚀Бүтээх болон байршуулах

  • Maven ашиглан бүтээх
  • Jenkins зэргийг ашиглан CI/CD бүрдүүлэх боломжтой

6.2 Төсөл бүрдүүлэлт

HONGIKINGAN CMS нь дараах төслийн бүтцээр бүрдэнэ.

6.2.1 Төслийн бүтэц

Төслийн бүтэц
humanframe (үндсэн төсөл)
├── humanframe.core (сан)
├── humanframe.backoffice (админ модуль)
└── humanframe.web (хэрэглэгчийн вэб модуль)

📦Модулийн бүрдүүлэлт

  • humanframe.backoffice, humanframe.web: Эцэг төсөл humanframe-ийн дэд модуль
  • Тус бүр бие даасан вэб аппликейшн болгон байршуулах боломжгүй
  • Эцэст нь humanframe.web байршуулагдах хэлбэр

🔄Хувилбар удирдлага

  • SVN, GIT зэрэг олон хувилбар төслийг холбох нь зүйтэй
  • Салбар стратегиар дамжуулан үр дүнтэй хөгжүүлэлт удирдлага

⚙️MAVEN тохиргоо

  • maven dependency нэмэх эсвэл засварлах шаардлагатай үед эцэг төслийн pom.xml файлыг засварлах
  • Модуль бүрийн pom.xml-д тухайн модульд тусгайлсан хамаарал л нэмэх

6.2.2 Тохиргооны файл байршил бүрдүүлэлт

HONGIKINGAN CMS-ийн үндсэн тохиргооны файл нь дараах байршилд байна:

Тохиргооны файл байршлын зам

Үндсэн тохиргооны файл

Тохиргооны файл Тайлбар
context-datasource.xml Өгөгдлийн сан холболтын тохиргоо
context-mapper.xml MyBatis маппер тохиргоо
context-properties.xml Системийн шинж чанарын тохиргоо
context-scheduler.xml Хуваарийн тохиргоо
human-resource.xml Нөөц холбоотой тохиргоо

6.3 Тохируулгын арга

HONGIKINGAN CMS нь төрөл бүрийн аргаар тохируулах боломжтой.

6.3.1 Үндсэн тохиргоо тохируулах

⚙️Шинж чанарын тохиргоо

  • context-properties.xml файлаас системийн шинж чанар өөрчлөх
  • Орчин тус бүрийн (local, dev, prd) тохиргоо тусгаарлах

🗄️Өгөгдлийн сангийн тохиргоо

  • context-datasource.xml файлаас өгөгдлийн сан холболтын мэдээлэл өөрчлөх
  • Төрөл бүрийн DBMS дэмжих (CUBRID, Oracle, MySQL, MS-SQL, Tibero)

Хуваарийн тохиргоо

  • context-scheduler.xml файлаас хуваарийн ажлын тохиргоо
  • Cron илэрхийлэлээр дамжуулан ажиллах давтамж тохируулах

6.3.2 UI тохируулах

🎨Загварын тохиргоо

  • /humanframe.web/src/main/webapp/humanframe/theme лавлахаас загвар тохируулах
  • CSS, JavaScript, зураг зэрэг нөөц өөрчлөх

📐Бүдүүвчийн тохиргоо

  • Tiles тохиргооны файлаас бүдүүвч өөрчлөх
  • humanframe.web/src/main/webapp/WEB-INF/jsp/theme JSP загвар засах

🧩Бүрэлдэхүүн хэсэг тохируулах

  • Хэрэглэгчийн тодорхойлсон таг номын сан ашиглах
  • JavaScript бүрэлдэхүүн хэсэг засах

6.3.3 Функц өргөтгөх

🎮 Контроллер нэмэх

  • Шинэ контроллер класс бичих
  • Одоо байгаа контроллер өргөтгөх

⚙️ Сервис нэмэх

  • Шинэ сервисийн интерфейс болон хэрэгжүүлэлт бичих
  • Одоо байгаа сервис өргөтгөх

🗄️ DAO нэмэх

  • Шинэ DAO класс бичих
  • Одоо байгаа DAO өргөтгөх

🗺️ Маппер нэмэх

  • Шинэ MyBatis маппер XML файл бичих
  • Одоо байгаа маппер өргөтгөх

6.4 Жишээ програм хөгжүүлэлт

HONGIKINGAN CMS нь хөгжүүлэгчид лавлах боломжтой жишээ програмыг өгдөг.

6.4.1 Жишээ програмын бүрдүүлэлт

📁Жишээ програмын байршил

  • Жишээ програм нь админ/хэрэглэгчээр ангилагдан тус тус өгөгдөнө
  • Жишээ програм хэрэгжүүлэгдэх Java төсөл нь [WEB-humanframe.web] төсөл юм
  • Админ зориулалтын эх код нь "admin" фолдерт байршина
  • JSP файл нь админ хэрэглэгч тус бүр "fnct/sample" фолдерт байршина

Жишээ програмын эх кодын байршил

Ангилал Зам
JAVA эх код /humanframe.web/src/main/java/humanframe/web/
Маппер зам /humanframe.web/src/main/resources/humanframe/sqlmap/mappers
JSP зам /humanframe.web/src/main/webapp/WEB-INF/jsp

6.4.2 Жишээ програм хөгжүүлэх арга

🎮 Контроллер бичих

  • SampleController классыг лавлан шинэ контроллер бичих
  • @Controller аннотаци болон @RequestMapping тохиргоо

⚙️ Сервис бичих

  • SampleService интерфейс болон SampleServiceImpl классыг лавлан шинэ сервис бичих
  • @Service аннотаци тохиргоо

🗄️ DAO бичих

  • SampleDAO классыг лавлан шинэ DAO бичих
  • @Repository аннотаци тохиргоо

📦 VO бичих

  • SampleVO классыг лавлан шинэ VO бичих
  • Getter/Setter метод хэрэгжүүлэх

🗺️ Маппер бичих

  • human-fnct-sample.xml файлыг лавлан шинэ маппер бичих
  • SQL асуулга бичих

🖼️ JSP бичих

  • Жишээ JSP файлыг лавлан шинэ JSP бичих
  • JSTL, EL, хэрэглэгчийн тодорхойлсон таг ашиглах

6.4.3 Жишээ програмын жишээ

Контроллер жишээ (SampleController)

[Бодит код] humanframe.web.controller.front.SampleController

@Controller
@RequestMapping("/fnct/sample")
public class SampleController extends HumanAbstractController {

    @Resource(name="sampleService")
    private SampleService sampleService;

    @Resource(name="fileService")
    private FileService fileService;

    @RequestMapping(value={"index","list"})
    public String list(
            HttpSession session
            , HttpServletRequest request
            , Model model)  throws Exception {
        SiteVO curSiteVO = (SiteVO)request.getAttribute("curSiteVO");

        HumanListVO listVO = new HumanListVO(request);
        listVO = sampleService.sampleListVO(listVO);

        model.addAttribute("useAtCode", CodeMap.USE_AT);
        model.addAttribute("listVO", listVO);

        return "/front/"+ curSiteVO.getSiteSkn() + "/fnct/sample/list";
    }

    @RequestMapping(value={"form"})
    public String form(
            SampleVO sampleVO
            , @RequestParam Map<String,Object> reqMap
            , HttpServletRequest request
            , Model model) throws Exception{

        //log.debug("sampleVO: " + sampleVO.toString());
        SiteVO curSiteVO = (SiteVO)request.getAttribute("curSiteVO");
        SiteMenuVO curMenuVO = (SiteMenuVO)request.getAttribute("curMenuVO");
        String currUri = curMenuVO.getMenuUri();

        int sampleNo = EgovStringUtil.string2integer((String) reqMap.get("sampleNo"));

        sampleVO.setSiteNo(curSiteVO.getSiteNo());
        sampleVO.setMenuNo(curMenuVO.getMenuNo());

        if(sampleNo == 0){
            sampleVO.setCrud(CRUDValues.CREATE);
        }else{
            sampleVO = sampleService.retrieveSample(sampleNo);
            sampleVO.setCrud(CRUDValues.UPDATE);
        }


        //буцаах утга
        model.addAttribute("useAtCode", CodeMap.USE_AT);

        model.addAttribute("sampleVO", sampleVO);
        model.addAttribute("param", reqMap);
        model.addAttribute("currUri", currUri);

        return "/front/"+ curSiteVO.getSiteSkn() + "/fnct/sample/form";
    }

    // бусад методууд...
}

6.5 Цэс болон програм бүртгэх

HONGIKINGAN CMS-д шинэ цэс болон програм бүртгэх арга нь дараах байдалтай.

6.5.1 Админ цэс нэмэх

📋 Админ CMS удирдлага - Цэс удирдлага

  • Админ хуудсанаас "CMS удирдлага > Цэс удирдлага" цэсэнд хандах
  • "Цэс нэмэх" товчийг дарж шинэ цэс нэмэх
  • Цэсний мэдээлэл (дээд цэс, цэсний нэр, програм удирдлагын URL, дараалал гэх мэт) оруулах
  • Оруулсан мэдээлэл хадгалах

🔐 Цэсний эрх тохируулах

  • Цэс нэмсний дараа "CMS удирдлага > Эрхийн бүлэг удирдлага" цэсэнд хандах
  • Эрхийн бүлэг сонгож нэмсэн цэсэнд эрх олгох
  • Эрхийн тохиргоо хадгалах

✅ Админ хуудас харагдах эсэх шалгах

  • Цэс нэмсний дараа гарах болон дахин нэвтрэх шаардлагатай
  • Админ хуудсанаас харагдах эсэхийг шалгах
  • Эрхийн тохиргооны дагуу хандах боломжтой эсэхийг шалгах

6.5.2 Хэрэглэгчийн цэс нэмэх

📋 Админ програм - Програм удирдлага

  • Админ хуудсанаас "Програм > Програм удирдлага" цэсэнд хандах
  • Шинэ програмын мэдээлэл (үйлчилгээний URL гэх мэт) бүртгэх

🌐 Сайт-Цэс удирдлага

  • Админ хуудсанаас "Сайт > Сайт удирдлага" цэсэнд хандах
  • "Цэс тохиргоо" товчийг дарж сайтын цэс тохиргооны хуудсанд хандах
  • "Цэс нэмэх" товчийг дарж шинэ цэс нэмэх
  • Цэсний мэдээлэл оруулах үед төрөл-функц програм сонгох
  • "Функц програм хайх" товчийг дарж програм удирдлагаас бүртгэсэн програм сонгох (тэмдэглэх үед автоматаар нэмэгдэнэ)
  • Оруулсан мэдээлэл хадгалах

🚀 Цэс тараах

  • Цэс нэмсний дараа "Тараалт > Тараалт удирдлага" цэсэнд хандах
  • Жагсаалтаас шинээр үүсгэсэн цэс сонгож "Боловсруулах" товчийг дарж тараалт боловсруулах

✅ Хэрэглэгчийн хуудас харагдах эсэх шалгах

  • Тараалт боловсруулсны дараа хэрэглэгчийн хуудсанаас харагдах эсэхийг шалгах
  • Цэс харуулах тохиргооны дагуу харагдах эсэхийг шалгах

6.6 Өргөтгөх модуль хөгжүүлэлт

HONGIKINGAN CMS нь төрөл бүрийн өргөтгөх модуль хөгжүүлж функцийг өргөтгөх боломжтой.

6.6.1 Самбар өргөтгөх

📋Самбарын төрөл нэмэх

  • Одоо байгаа самбарын төрөл (Type 1~8)-ийг лавлан шинэ төрөл нэмэх
  • Контроллер, сервис, DAO, VO, маппер, JSP зэрэг бичих

🎨Самбарын арьс нэмэх

  • Одоо байгаа самбарын арьсыг лавлан шинэ арьс нэмэх
  • CSS, JavaScript, JSP зэрэг бичих

6.6.2 Нэмэлт програм хөгжүүлэлт

🧩Нэмэлт програмын бүрэлдэхүүн хэсэг бичих

  • Нэмэлт програмын контроллер, сервис, DAO зэрэг бичих
  • Нэмэлт програмын JSP загвар бичих

📝Нэмэлт програм бүртгэх

  • Админ хуудсанаас нэмэлт програм бүртгэх