프로젝트 개요
Go 언어를 기반으로 Beego, Layui, MySQL 등 다양한 오픈소스 기술을 통합하여 개발된 모듈 중심의 고성능, 기업용 애자일 개발 프레임워크입니다. 개발 단순화와 생산성 향상을 목표로 하며, 자체 설계한 플러그인식 컴포넌트 시스템을 도입해 유연하고 재사용 가능한 구조를 제공합니다. 단일 이미지 업로드, 다중 이미지 갤러리, 드롭다운 선택, 스위치 버튼, 라디오/체크박스 그룹, 이미지 자르기 등 핵심적인 사용자 인터페이스 요소들을 포함하며, 실제 개발 현장에서 바로 활용 가능한 구성 요소들로 구성되어 있습니다.
주요 특징
- 모듈 기반 아키텍처, 결합도 최소화
- 다양한 기능 모듈이 사전 설치되어 즉시 사용 가능
- 간결한 인터페이스, 빠른 통합 지원
- 완전한 문서 체계, 유지보수 용이성 확보
- 상단부터 하단까지 체계적인 설계 접근 방식
- 통합 프레임워크 및 컴포넌트 표준화로 기술 선택의 부담 감소
- 개발 규칙, 디자인 패턴, 계층적 코드 구조 적용
- 강력한 개발 지원 도구 세트 제공
- 국내 사용자를 위한 완벽한 한글화 지원
- 팀 및 기업급 프로젝트에 최적화된 설계
내장 기능 모듈
- 사용자 관리: 시스템 사용자 정보 유지 및 계정 설정
- 역할 관리: 메뉴 권한 할당 및 역할별 접근 제어
- 메뉴 구성: 시스템 내 메뉴 구조 및 작업/버튼 권한 정의
- 직급 관리: 사용자의 직위 정보 관리
- 직무 관리: 사용자의 담당 직무 정보 설정
- 부서 조직도: 회사/부서/팀 구조를 트리 형태로 표현하며 데이터 권한 지원
- 코드 사전 관리: 고정된 공통 데이터(예: 상태값) 일괄 관리
- 시스템 설정: 일반 설정 항목과 사이트 기본 설정 통합 관리
- 공지사항: 시스템 알림 및 공지를 발행 및 관리
- 작업 로그: 정상 동작 및 오류 발생 기록 조회
- 로그인 기록: 로그인 시도 내역 및 비정상 접속 추적
- 코드 생성기: CRUD 기능을 한 번의 클릭으로 백엔드(Go) 및 프론트엔드(HTML/JS) 코드 자동 생성
- 샘플 예제: 코드 생성기 출력 결과를 실시간으로 확인하는 전시용 예제
기술 스택 및 배포 정보
- 프레임워크 이름: EasyGoAdmin - Beego + Layui 기반 애자일 개발 테마
- 공식 웹사이트: http://www.easygoadmin.vip
- 문서 사이트: http://docs.beego.layui.easygoadmin.vip
- 데모 환경: http://manage.beego.layui.easygoadmin.vip
| 계정 | 비밀번호 | 권한 |
|---|---|---|
| admin | 123456 | 데모 환경에서는 수정/삭제 불가 |
버전 비교표
| 버전명 | 설명 | GitHub 주소 |
|---|---|---|
| GoFrame + Layui 혼합 버전 | GoFrame와 Layui 기반 개발 | 링크 |
| Beego + Layui 혼합 버전 | Beego와 Layui 기반 개발 (본 문서 대상) | 링크 |
| Gin + Layui 혼합 버전 | Gin과 Layui 기반 개발 | 링크 |
| Iris + Layui 혼합 버전 | Iris와 Layui 기반 개발 | 링크 |
| GoFrame + Vue (전후분리) | GoFrame + Vue + ElementUI 기반 분리 아키텍처 | 링크 |
| Beego + Vue (전후분리) | Beego + Vue + ElementUI 기반 분리 아키텍처 | 링크 |
| Gin + Vue (전후분리) | Gin + Vue + ElementUI 기반 분리 아키텍처 | 링크 |
| Iris + Vue (전후분리) | Iris + Vue + ElementUI 기반 분리 아키텍처 | 링크 |
| GoFrame + Ant Design Vue (전후분리) | GoFrame + Vue + AntDesign UI 기반 분리 아키텍처 | 링크 |
| Beego + Ant Design Vue (전후분리) | Beego + Vue + AntDesign UI 기반 분리 아키텍처 | 링크 |
| Gin + Ant Design Vue (전후분리) | Gin + Vue + AntDesign UI 기반 분리 아키텍처 | 링크 |
| Iris + Ant Design Vue (전후분리) | Iris + Vue + AntDesign UI 기반 분리 아키텍처 | 링크 |
프로젝트 구조
easygoadmin
|-- conf
| `-- app.conf
|-- controllers
| `-- default.go
|-- main.go
|-- models
|-- routers
| `-- router.go
|-- static
| |-- css
| |-- img
| `-- js
|-- tests
| `-- default_test.go
`-- views
`-- index.tpl
핵심 템플릿 컴포넌트 예제
- 단일 이미지 업로드
{{upload_image "avatar|프로필 사진|90x90|권장 크기 450x450|최대 450x450" .user.Avatar "" 0}} - 다중 이미지 업로드 (갤러리)
{{album "gallery|사진 모음|90x90|20|권장 크기 450x450" .user.Images "" 0}} - 드롭다운 선택
{{select "gender|1|성별|name|id" "1=남성,2=여성,3=비공개" .user.Gender}} - 라디오 버튼 그룹
{{radio "gender|name|id" "1=남성,2=여성,3=비공개" .user.Gender}} - 체크박스 그룹
{{checkbox "roles|name|id" .roleOptions .user.RoleIds}} - 도시 선택 (계층형)
{{city .user.DistrictCode 3 1}} - 스위치 토글
{{switch "status" "활성|비활성" .user.Status}} - 날짜 입력 필드
{{date "birthday|1|생일|date" .user.Birthday}} - 아이콘 선택
{{icon "icon" .user.Icon}} - 트랜스퍼(이동) 컴포넌트
{{transfer "permissions|0|전체 항목, 할당된 항목|name|id|220x350" "1=읽기,5=추가,10=수정,15=삭제,20=상세,25=상태,30=다중 삭제,35=하위 추가,40=전체 확장,45=전체 축소" .availablePermissions}}
템플릿 레이아웃 예시
- 기본 레이아웃 템플릿
<html> <!-- 헤더 포함 --> {{template "public/header.html" .}} <body> <!-- 본문 영역 시작 --> <div class="layui-fluid"> <div class="layui-card"> <div class="layui-card-body"> <!-- 컨텐츠 영역 --> {{.LayoutContent}} </div> </div> </div> <!-- 본문 영역 종료 --> <!-- 푸터 포함 --> {{template "public/footer.html" .}} </body> </html> - 헤더 템플릿
<head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>Beego+Layui【프리미엄】애자일 개발 프레임워크</title> <link href="/static/assets/images/favicon.ico" rel="icon"> <link type="text/css" rel="stylesheet" href="/static/assets/libs/layui/css/layui.css"/> <link type="text/css" rel="stylesheet" href="/static/assets/module/admin.css?v=318"/> <script type="text/javascript" src="/static/assets/libs/layui/layui.js"></script> <script type="text/javascript" src="/static/assets/js/common.js?v=318"></script> <script type="text/javascript"> var url = window.location.pathname.substring(1); var item = url.split("/"); var C = item[0]; var A = item[1]; var cUrl = "/" + C; </script> </head> - 푸터 스크립트
<script type="text/javascript"> var url = window.location.pathname.substring(1); var item = url.split("/"); var jsUrl = "/static/module/easygoadmin_" + item[0] + ".js"; document.write("<script src='" + jsUrl + "'></script>"); </script>
기능 모듈 전시
각 모듈은 독립적으로 작동하며, 필요 시 쉽게 통합하거나 제거할 수 있습니다. 전체 시스템의 확장성과 유지보수성을 극대화했습니다.
감사의 말씀
Beego, Layui 등의 우수한 오픈소스 프로젝트에 깊이 감사를 드립니다.
저작권 안내
본 문서의 저작권은 작성자에게 있으며, 무단 복제 및 수집은 금지됩니다. 관련 법적 조치를 취할 권리가 있습니다.