Skip to content

A.1 Glossary — คำศัพท์

รวบรวมคำศัพท์ที่ใช้ในทั้ง manual — ทั้งคำทางเทคนิคและคำเฉพาะของ VTRC แบ่งเป็น 6 หมวด

วิธีใช้

ถ้าเจอคำที่ไม่เข้าใจใน volume อื่น ให้ค้นในตารางของหมวดที่เกี่ยวข้อง แต่ละ entry ระบุ volume ที่อธิบายคำนั้นละเอียดที่สุด

หมวด 1 — Identity & Authentication

คำคำอธิบายอ้างถึง
JWTJSON Web Token — token ที่เซ็นด้วย secret ใช้แทน session cookieVol 9.3
Refresh tokentoken ที่ใช้ขอ JWT ใหม่เมื่อ JWT เดิมหมดอายุVol 9.3
Sessionrecord ในตาราง Session เก็บ refreshToken, userSession (JSON), expireDateVol 8.5, Vol 9.3
device keyAPI key ที่ระบุประเภท client (WEB, MOBILE, WEB_ADMIN)Vol 9.2
apiKey headerHTTP header ที่ส่ง device key ในทุก GraphQL requestVol 9.2
LDAPLightweight Directory Access Protocol — โปรโตคอลอ่าน directory (เช่น Active Directory)Vol 4.3
Active Directory (AD)directory service ของ Microsoft ที่ VTRC ใช้เก็บบัญชีพนักงานVol 4.3
OTPOne-Time Password — รหัสผ่านครั้งเดียวที่ใช้สำหรับ login มือถือVol 9.2
RBACRole-Based Access Control — การควบคุมการเข้าถึงตาม roleVol 9.4
role JSON blobโครงสร้าง JSON ในตาราง Session ที่เก็บสิทธิ์ของ userVol 9.4, Vol 8.5
@auth directivedirective ของ Apollo ที่ป้องกัน resolver คำนวณถ้า user ไม่มีสิทธิ์Vol 9.4
IS_PRODUCTION guardpattern ที่ใช้ process.env.NODE_ENV === 'production' ควบคุมพฤติกรรมVol 3.2
tokenCDตัวแปรในตาราง Session เก็บ cross-domain token (Centralize API)Vol 8.5

หมวด 2 — Data & Persistence

คำคำอธิบายอ้างถึง
SequelizeORM สำหรับ Node.js ที่ vtrc-api และ cu-central-api ใช้Vol 3.5, Vol 8.2
TypeORMORM สำหรับ TypeScript ที่ centralize-api ใช้Vol 5.2
Models globalobject ที่เก็บ Sequelize model ทั้งหมดของ vtrc-api — ใช้ lookup แบบ globalVol 8.2
syncModelToTablefunction ที่ vtrc-api เรียกตอน boot เพื่อ sync model กับ schema จริงVol 8.4
SourceDB shardingpattern ที่ cu-central-api ใช้ — แต่ละ "บริษัท" มี database ของตัวเองVol 4.5
cross-schema writeการเขียนข้อมูลข้าม schema ใน transaction เดียว (เช่น vtrc + vtrc-centralize)Vol 8.11, Vol 14.4
soft deleteการ "ลบ" โดยตั้ง flag (เช่น isDeleted=true) แทนการ DELETE จริงVol 8.3
expand-then-contractpattern การ migrate schema แบบ 3 phase — เพิ่ม, ย้าย, ลบVol 15.7
dual-writeเขียนข้อมูลทั้ง schema เก่าและใหม่ในช่วง migrationVol 15.7
backfillscript ที่เติมข้อมูลในคอลัมน์ใหม่จากข้อมูลเก่าVol 15.7
transaction swallowanti-pattern ที่ promise chain กลืน error ของ transactionVol 14.4 (CORR-2)
N+1 queryanti-pattern ที่มี query เดียว แต่ trigger sub-query N ครั้งVol 14.3

หมวด 3 — Architecture & Patterns

คำคำอธิบายอ้างถึง
monolithapplication ที่รวมทุก feature ใน codebase เดียวVol 2.1
microservicesarchitecture ที่แบ่ง feature เป็น service คนละตัวVol 15.4
bounded contextขอบเขตที่ model ของ domain มีความหมายเดียวกัน (มาจาก DDD)Vol 15.1, Vol 15.6
Strangler patternmigration ที่ค่อย ๆ แทนที่ระบบเดิมทีละส่วนVol 15.1
Hexagonal architecturearchitecture ที่แยก domain จาก adapter ผ่าน port (Ports & Adapters)Vol 15.6
Domain-Driven Design (DDD)วิธีออกแบบซอฟต์แวร์ที่ focus ที่ domain ของ businessVol 15.6
Feature-Sliced Design (FSD)โครงสร้าง frontend ที่แบ่งตาม layer (pages, widgets, features, entities, shared)Vol 15.5
god controllercontroller ที่ใหญ่ผิดปกติ (เช่น hospital.js 3,179 LOC)Vol 14.3 (PERF-6)
god resolverresolver ที่ใหญ่ผิดปกติ (เช่น version.js 3,716 LOC)Vol 14.7
anti-corruption layerlayer ที่แปลข้อมูลจากระบบเก่าเป็น model ใหม่ เพื่อป้องกันรบกวนVol 15.6
saga patternวิธีจัด transaction ข้าม service โดยใช้ compensationVol 15.7
outbox patternpattern ที่เขียน event ลงตารางก่อน publish เพื่อรับประกัน deliveryVol 15.6
forward/proxy patternpattern ที่ vtrc-api ส่งต่อ GraphQL request ไป cu-central-api โดยแทรก authVol 10.9
BFFBackend For Frontend — service ที่ออกแบบเฉพาะสำหรับ frontend หนึ่งตัวVol 2.1

หมวด 4 — Frontend

คำคำอธิบายอ้างถึง
Apollo Clientlibrary ที่จัดการ GraphQL request, cache และ stateVol 6.3, Vol 7.3
errorLinkApollo Link ที่จับ error ของ GraphQL และจัดการ token refreshVol 6.3
checkLinkURLfunction ที่ vtrc-web ใช้เลือก GraphQL endpoint ตาม origin ของหน้าเว็บVol 6.3
fetchPolicyกำหนดว่า Apollo Client จะใช้ cache หรือ network (no-cache, cache-first, cache-and-network)Vol 6.3, Vol 14.3
SPASingle Page ApplicationVol 6.1
SSRServer-Side RenderingVol 15.5
SSGStatic Site GenerationVol 15.5
dangerouslySetInnerHTMLprop ของ React ที่แทรก HTML ดิบ — เสี่ยง XSS ถ้าข้อมูลมาจาก userVol 6.9, Vol 7.9
Ant Design (AntD)component library สำหรับ ReactVol 6.8, Vol 7.8
MUIMaterial-UI — component library อีกตัวที่ backoffice ใช้Vol 7.8
Recoilstate management library ที่ backoffice ใช้Vol 7.6
recoil atomunit ของ state ใน RecoilVol 7.6

หมวด 5 — VTRC Business Domain

คำคำอธิบายอ้างถึง
VTRCสภากาชาดไทย (Thai Red Cross) — องค์กรที่ระบบนี้สนับสนุนVol 1.1
HRMIHR Management Information — ระบบ HRMI ของ VTRCVol 1.3, Vol 11.8
WDHospitalWelfare Draw Hospital — การเบิกสวัสดิการรักษาพยาบาลVol 11.3
WDExportWelfare Draw Export — การส่งออกข้อมูลการเบิกสวัสดิการVol 11.3
KBANKธนาคารกสิกรไทย — ใช้ส่งไฟล์โอนเงินVol 11.3
K-Cashระบบเงินสดของ KBANKVol 11.3
NBCNational Blood Center — ศูนย์บริจาคโลหิตแห่งชาติVol 1.3
CUChulalongkorn University — ทำสัญญาให้บริการระบบ HRVol 1.1
Conicleplatform ฝึกอบรม (LMS) ที่ VTRC ใช้Vol 11.10
EmpCodeรหัสพนักงาน (ใช้ใน cu-central-api)Vol 8.9
EmpIDรหัสพนักงาน (ใช้ใน vtrc-api)Vol 8.9
orgCodeรหัสหน่วยงานVol 8.5
APP_TYPEenum ที่ระบุประเภท client (WEB, MOBILE, WEB_ADMIN)Vol 9.2
MasterApproverrole พิเศษที่อนุมัติแทนผู้อื่นได้Vol 11.8
payslipสลิปเงินเดือนVol 11.4
provident fundกองทุนสำรองเลี้ยงชีพVol 11.5
study leaveการลาศึกษาต่อVol 11.6

หมวด 6 — Operations & Debt

คำคำอธิบายอ้างถึง
EOLEnd Of Life — software ที่หยุดสนับสนุนอย่างเป็นทางการVol 14.5
CVECommon Vulnerabilities and Exposures — ID สาธารณะของช่องโหว่Vol 14.6
MTTRMean Time To Recover — เวลาเฉลี่ยตั้งแต่เกิด incident จนกู้คืนVol 13.11, Vol 15.0
MTBFMean Time Between Failures — เวลาเฉลี่ยระหว่างความล้มเหลวVol 13.11
RTORecovery Time Objective — เวลาเป้าหมายที่จะกู้ระบบกลับมาใช้ได้Vol 13.10
RPORecovery Point Objective — ปริมาณข้อมูลสูญหายสูงสุดที่ยอมรับได้Vol 13.10
HAHigh Availability — ระบบที่ออกแบบให้พร้อมใช้งานสูงVol 12.7, Vol 15.8
SPOFSingle Point Of Failure — จุดที่พังแล้วทั้งระบบพังVol 12.7, Vol 14.3
CI/CDContinuous Integration / Continuous DeploymentVol 12.8
health endpointendpoint (ปกติ /health) ที่ตอบสถานะของ serviceVol 13.1, Vol 15.8
observabilityความสามารถในการเข้าใจสถานะภายในของระบบจากภายนอก (log, metric, trace)Vol 15.8
SLOService Level Objective — เป้าหมายระดับบริการVol 15.0
SLAService Level Agreement — ข้อตกลงระดับบริการVol 15.0
WAFWeb Application Firewall — firewall ที่กรอง HTTP request ตาม ruleVol 14.1, Vol 15.8
typosquatpackage ที่มีชื่อคล้าย package จริง เพื่อหลอกให้ติดตั้งVol 14.6
decision gateจุดตัดสินใจระหว่าง Wave ที่ทีม stop และ evaluateVol 15.0, Vol 15.9
guardrailกฎอัตโนมัติที่ป้องกัน debt ใหม่Vol 14.11