Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fivetop/LSCable-CMS-V2

Repository files navigation

LSCable CMS V2 프로젝트 분석 문서

CMS


문서 요약

항목 내용
프로젝트 유형 Spring Boot 기반 웹 애플리케이션 (케이블 관리 시스템)
프레임워크 Spring Boot 1.4.4.RELEASE, Thymeleaf
데이터베이스 PostgreSQL 42.2.2, MyBatis ORM, HikariCP 커넥션 풀
보안 Spring Security + BCrypt 암호화, 역할 기반 접근 제어 (RBAC)
주요 기능 CMS(사이트/빌딩/패널 관리), IPAM(IP 주소 관리), 대시보드/위젯, 실시간 모니터링 (WebSocket)
빌드 도구 Maven
Java 버전 1.7
파일 수 Java 59개, Template 100개 이상

1. 프로젝트 개요

기본 정보

항목
프로젝트 이름 LSCable CMS
버전 2.0
패키지 com.i52soft.lscable.cms
프로젝트 유형 Spring Boot 웹 애플리케이션

프로젝트 설명

LSCable CMS V2는 네트워크 인프라 관리를 위한 케이블 관리 시스템입니다. 웹 기반 UI를 통해 케이블 연결, 네트워크 장비, IP 주소, 데이터센터 인프라를 관리할 수 있습니다.

기술 스택

구분 기술
프레임워크 Spring Boot 1.4.4.RELEASE
템플릿 엔진 Thymeleaf
데이터베이스 PostgreSQL 42.2.2.jre7
ORM MyBatis (mybatis-spring-boot-starter 1.1.1)
보안 Spring Security + BCrypt
웹소켓 Spring WebSocket
로깅 SLF4J + Logback
커넥션 풀 HikariCP
프론트엔드 Bootstrap 3.3.4, jQuery 1.11.3
암호화 BouncyCastle (bcprov-jdk15on, bcpkix-jdk15on)
빌드 도구 Maven
Java 버전 1.7

2. 프로젝트 구조

LSCable CMS V2/
├── src/
│ ├── main/
│ │ ├── java/com/i52soft/lscable/cms/
│ │ │ ├── App.java # 메인 애플리케이션
│ │ │ ├── config/ # 설정
│ │ │ │ ├── SecurityConfig.java # 보안 설정
│ │ │ │ ├── WebConfig.java # 웹 설정
│ │ │ │ ├── WebSocketConfig.java # 웹소켓 설정
│ │ │ │ ├── ThymeleafConfig.java # 템플릿 설정
│ │ │ │ └── MyTomcatEmbeddedServletContainerFactory.java
│ │ │ ├── controller/ # 컨트롤러
│ │ │ │ ├── AdminController.java # 관리자 컨트롤러
│ │ │ │ ├── DefaultController.java # 기본 컨트롤러
│ │ │ │ ├── HTBackendRestController.java
│ │ │ │ ├── WebSocketController.java # 웹소켓
│ │ │ │ └── WidgetDataProviderRestController.java
│ │ │ ├── service/ # 서비스 인터페이스
│ │ │ │ ├── HTBackendService.java # 핵심 비즈니스 로직
│ │ │ │ ├── WidgetDataProviderService.java
│ │ │ │ └── impl/
│ │ │ │ ├── HTBackendServiceImpl.java
│ │ │ │ ├── LogInServiceImpl.java
│ │ │ │ └── WidgetDataProviderServiceImpl.java
│ │ │ ├── dao/ # 데이터 접근
│ │ │ │ ├── HTBackendDao.java
│ │ │ │ ├── LogInDao.java
│ │ │ │ └── WidgetDataProviderDao.java
│ │ │ ├── domain/ # 도메인 객체
│ │ │ │ ├── UserVO.java # 일반 사용자
│ │ │ │ ├── SystemUserVO.java # 시스템 관리자
│ │ │ │ ├── EndUserVO.java # 최종 사용자
│ │ │ │ ├── ProductVO.java # 제품
│ │ │ │ ├── NetworkVO.java # 네트워크 세그먼트
│ │ │ │ ├── IPAddressVO.java # IP 주소
│ │ │ │ ├── CMSSiteVO.java # CMS 사이트
│ │ │ │ ├── RegionVO.java # 지역
│ │ │ │ ├── EntityVO.java # 물리적 엔티티
│ │ │ │ ├── InterfaceVO.java # 네트워크 인터페이스
│ │ │ │ ├── SiteTreeVO.java # 사이트 트리
│ │ │ │ ├── SiteTreeNodeVO.java
│ │ │ │ ├── LinkageConnectionVO.java # 연결 정보
│ │ │ │ ├── ConnectorVO.java
│ │ │ │ ├── ConnectionVO.java
│ │ │ │ ├── MainPageLayoutVO.java # 대시보드 레이아웃
│ │ │ │ ├── MainPageWidgetVO.java # 대시보드 위젯
│ │ │ │ ├── MapWidgetVO.java # 맵 위젯
│ │ │ │ ├── ChartWidgetVO.java # 차트 위젯
│ │ │ │ ├── WidgetParam.java
│ │ │ │ ├── MapParam.java
│ │ │ │ ├── DeviceParam.java
│ │ │ │ ├── NetworkSwitchVO.java # 네트워크 스위치
│ │ │ │ ├── PPInvalidVO.java
│ │ │ │ ├── SampleWidgetVO.java
│ │ │ │ ├── SampleWidgetVO2.java
│ │ │ │ ├── SiteTreePlacementVO.java
│ │ │ │ ├── SiteTreeRackspacePositionVO.java
│ │ │ │ ├── device.java
│ │ │ │ ├── deviceInfo.java
│ │ │ │ ├── regions.java
│ │ │ │ └── regionInfo.java
│ │ │ └── common/ # 공통 유틸리티
│ │ │ ├── CmsAuthenticationProvider.java # 인증 제공자
│ │ │ ├── KeyUtil.java # 키 유틸
│ │ │ ├── PemFile.java # PEM 파일 처리
│ │ │ ├── IPAddress.java # IP 주소 처리
│ │ │ ├── SimpleCORSFilter.java # CORS 필터
│ │ │ └── CmsACLHandler.java # ACL 핸들러
│ │ └── resources/
│ │ ├── application.properties # 스프링 부트 설정
│ │ ├── application.yml
│ │ ├── database.properties # DB 연결 설정
│ │ ├── data.sql # 초기 데이터
│ │ ├── db_reset_sql.txt # DB 리셋 SQL
│ │ ├── LicensedMac # 라이선스 MAC 주소
│ │ ├── logback-spring.xml # 로깅 설정
│ │ ├── templates/ # Thymeleaf 템플릿
│ │ │ ├── login.html # 로그인 페이지
│ │ │ ├── layout/ # 레이아웃 템플릿
│ │ │ │ ├── default.html ~ default8.html
│ │ │ │ └── public.html
│ │ │ ├── cms/ # CMS 모듈 (원본 테마)
│ │ │ │ ├── index.html, view.html, new.html
│ │ │ │ ├── modifySite.html, setting.html
│ │ │ │ ├── siteset.html, adminAuth.html
│ │ │ │ ├── catalog.html, regions.html
│ │ │ │ ├── manufacturer.html, linkage.html
│ │ │ │ └── adminSearch.html, adminPortUsage.html
│ │ │ ├── cms2/ # CMS 모듈 (v2 테마)
│ │ │ ├── setting/ # 설정 모듈 (원본)
│ │ │ │ ├── main.html, view.html
│ │ │ │ ├── new.html, modify.html
│ │ │ │ ├── system.html, adminsysuser.html
│ │ │ │ ├── map-list.html
│ │ │ │ └── manage-widget-*.html # 위젯 관리
│ │ │ ├── setting2/ # 설정 모듈 (v2)
│ │ │ ├── ipam/ # IPAM 모듈 (원본)
│ │ │ │ ├── user.html, setting.html
│ │ │ ├── ipam2/ # IPAM 모듈 (v2)
│ │ │ │ ├── index.html, user.html
│ │ │ │ ├── setting.html, terminalUser.html
│ │ │ │ ├── terminalList.html, adminNetwork.html
│ │ │ ├── main-widgetMap.html
│ │ │ └── pace.html
│ │ └── themes/
│ │ ├── bright.properties # 밝은 테마
│ │ └── dark.properties # 어두운 테마
│ └── test/
│ └── java/
│ └── com/mysample/
│ └── AppTest.java
├── target/
│ ├── LSCableCMS-2.0.jar # 빌드된 JAR
│ ├── config.properties # 실행 설정
│ ├── startCMS.bat / startCMS.sh # 시작 스크립트
│ └── stopCMS.bat / stopCMS.sh # 중지 스크립트
├── doc/ # Javadoc 문서
├── pom.xml # Maven 설정
├── .classpath
└── .project

3. 모듈 설명

3.1 컨트롤러 계층

AdminController.java

주요 관리 기능 컨트롤러:

  • /admin/setting/* - 대시보드 레이아웃 및 위젯 관리
  • /admin/cms/* - CMS 사이트 관리
  • /admin/ipam/* - IP 주소 관리
  • 테마 기반 라우팅 (setting/ vs setting2/)

주요 엔드포인트:

경로 설명
/admin/setting/adminsysuser 시스템 사용자 관리
/admin/setting/new 새 레이아웃 생성
/admin/setting/modify 레이아웃 수정
/admin/setting/map-list 맵 위젯 목록
/admin/cms/siteset 사이트 설정
/admin/cms/view 사이트 보기
/admin/cms/new 새 사이트 생성
/admin/cms/regions 지역 관리
/admin/cms/manufacturer 제조사 관리
/admin/ipam/adminNetwork 네트워크 관리

HTBackendRestController.java

백엔드 작업을 위한 REST API 컨트롤러

WidgetDataProviderRestController.java

위젯 데이터 제공을 위한 REST API

WebSocketController.java

실시간 통신 지원 (알림, 상태 업데이트)

DefaultController.java

기본 라우팅 및 메인 페이지 처리

3.2 서비스 계층

HTBackendService (인터페이스 + 구현)

핵심 비즈니스 로직:

  • 위젯 관리
  • 레이아웃 관리
  • 사이트 트리 관리
  • 제품/제조사 관리
  • 사용자 관리
  • 네트워크/IPAM 관리
  • 연결 다이어그램
  • 알람 모니터링

WidgetDataProviderService

위젯 데이터 제공 서비스

3.3 도메인 객체

도메인 클래스 설명
UserVO 일반 사용자
SystemUserVO 시스템 관리자
EndUserVO 최종 사용자/터미널 사용자
CMSSiteVO CMS 사이트 정보
NetworkVO 네트워크 세그먼트
IPAddressVO IP 주소
EntityVO 물리적 엔티티 (장비, 랙 등)
InterfaceVO 네트워크 인터페이스
SiteTreeVO 사이트 트리 구조
MainPageLayoutVO 대시보드 레이아웃
MainPageWidgetVO 대시보드 위젯
MapWidgetVO 맵 위젯
WidgetParam 위젯 매개변수

3.4 보안

  • 인증: Spring Security + BCrypt 비밀번호 암호화
  • 권한 부여: 역할 기반 접근 제어 (RBAC)
  • 세션: Remember-me 기능 지원
  • 공개 리소스: CSS, JS, 이미지, 정적 리소스 (permitAll)
  • 보호 리소스: /admin/**는 Administrator 역할 필요

4. API 엔드포인트

인증

메서드 경로 설명
GET /login 로그인 페이지
POST /login-process 로그인 처리
GET /logout 로그아웃

관리자 - 설정

메서드 경로 설명
GET /admin/setting/adminsysuser 시스템 사용자 관리
GET /admin/setting/new 새 레이아웃 생성
GET /admin/setting/modify 레이아웃 수정
GET /admin/setting/map-list 맵 위젯 목록
GET /admin/setting/manage-layout 레이아웃 관리
GET /admin/setting/manage-widget 위젯 관리
GET /admin/setting/preview-layout 레이아웃 미리보기

관리자 - CMS

메서드 경로 설명
GET /admin/cms/setting CMS 설정
GET /admin/cms/siteset 사이트 설정
GET /admin/cms/view 사이트 보기
GET /admin/cms/new 새 사이트 생성
GET /admin/cms/modifySite 사이트 수정
GET /admin/cms/catalog 제품 카탈로그
GET /admin/cms/regions 지역 관리
GET /admin/cms/manufacturer 제조사 관리
GET /admin/cms/adminAuth 권한 관리
GET /admin/cms/linkage 연결 관리

관리자 - IPAM

메서드 경로 설명
GET /admin/ipam/setting IPAM 설정
GET /admin/ipam/user 사용자 IP 관리
GET /admin/ipam/adminNetwork 네트워크 관리

5. 데이터베이스 설정

커넥션 풀

  • 유형: HikariCP
  • 드라이버: PostgreSQL 42.2.2.jre7
  • 설정: database.properties (외부화됨)

ORM

  • 유형: MyBatis
  • 매퍼: XML 기반 SQL 매핑

6. 빌드 및 배포

빌드

mvn clean package

실행

# Windows
target\startCMS.bat
# Linux
sh target/startCMS.sh

중지

# Windows
target\stopCMS.bat
# Linux
sh target/stopCMS.sh

7. 주요 기능

핵심 기능

  1. 케이블 관리 시스템 (CMS)

    • 사이트 관리
    • 빌딩/층/실 계층 구조
    • 패치 패널 관리
    • 연결 추적
  2. 대시보드 및 위젯

    • 사용자 정의 대시보드 레이아웃
    • 라인 차트, 파이 차트, 게이지 차트
    • 알람 그리드 테이블
    • 가용성 그리드 테이블
    • 맵 위젯
    • 3D 랙 뷰 (DCIM)
  3. IP 주소 관리 (IPAM)

    • IP 주소 할당
    • 네트워크 세그먼트 관리
    • L2/L3 스위치 관리
    • 게이트웨이 구성
  4. 실시간 모니터링

    • WebSocket 기반 업데이트
    • 알람 상태 모니터링
    • 포트 상태 모니터링
  5. 사용자 관리

    • 시스템 사용자 관리
    • 최종 사용자 관리
    • 역할 기반 접근 제어 (RBAC)
  6. 테마 지원

    • 밝은 테마 (Bright)
    • 어두운 테마 (Dark)

8. 설정 파일

application.properties

스프링 부트 메인 설정

database.properties

데이터베이스 연결 설정 (외부화됨)

config.properties

애플리케이션 실행 시간 설정 (target/ 폴더 내)

LicensedMac

하드웨어 바인딩을 위한 라이선스 MAC 주소


9. 의존성 요약

그룹 아티팩트 버전
org.springframework.boot spring-boot-starter-web 1.4.4.RELEASE
org.springframework.boot spring-boot-starter-security 1.4.4.RELEASE
org.springframework.boot spring-boot-starter-websocket 1.4.4.RELEASE
org.springframework.boot spring-boot-starter-thymeleaf 1.4.4.RELEASE
org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1
org.postgresql postgresql 42.2.2.jre7
org.projectlombok lombok 1.16.8
com.zaxxer HikariCP (parent에서 상속)
org.bouncycastle bcprov-jdk15on 1.56
org.bouncycastle bcpkix-jdk15on 1.56
org.webjars bootstrap 3.3.4
org.webjars jquery 1.11.3

10. 참고 사항

  • 기존 Spring Boot 1.4.x 애플리케이션 (Java 7)
  • Thymeleaf를 사용한 서버사이드 렌더링
  • 두 가지 테마 버전 존재: 원본 (setting/) 및 v2 (setting2/)
  • CMS 및 IPAM 모듈이 별도의 UI 경로를 가짐
  • 하드웨어 라이선스 바인딩은 구현되어 있으나 현재 비활성화 상태
  • Javadoc 문서는 /doc 폴더에 있음

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /