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-ийн үндсэн тохиргооны файл нь дараах байршилд байна:
Тохиргооны файл байршлын зам
/humanframe.backoffice/src/main/resources/humanframe/spring/humanframe.web/src/main/resources/humanframe/spring
Үндсэн тохиргооны файл
| Тохиргооны файл | Тайлбар |
|---|---|
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/themeJSP загвар засах
Бүрэлдэхүүн хэсэг тохируулах
- Хэрэглэгчийн тодорхойлсон таг номын сан ашиглах
- 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 Жишээ програмын жишээ
[Бодит код] 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 загвар бичих
Нэмэлт програм бүртгэх
- Админ хуудсанаас нэмэлт програм бүртгэх