IT기술/Liferay Portal

Liferay Portal 테마와 레이아웃 커스터마이징 완전 가이드: 기업 브랜딩을 위한 포털 디자인

후스파 2025. 7. 16. 23:09
반응형

Liferay의 테마와 레이아웃을 커스터마이징하면 기업 브랜딩에 맞는 독특한 포털을 구축할 수 있습니다. 최신 방법으로 디자인을 자유롭게 바꿀 수 있어 기업의 아이덴티티를 효과적으로 표현할 수 있습니다.


테마 커스터마이징 3단계

1. 기본 테마 변경 절차

Liferay Portal에서 테마를 변경하는 기본적인 절차는 다음과 같습니다:

  1. 사이트 관리 → 페이지 → 설정 → 테마 변경
  2. 업로드한 테마 선택 (예: Acme Blue Theme)
  3. 미리보기 후 적용
  4. docker cp로 WAR 파일 배포 시 자동 인식

이 과정을 통해 기본 테마에서 벗어나 기업의 브랜드 컬러와 스타일을 반영한 맞춤형 테마를 적용할 수 있습니다.

2. CSS 클라이언트 확장

client-extension.yaml 설정을 통해 기존 테마 스타일을 효과적으로 덮어쓸 수 있습니다:

type: globalCSS  
url: https://your-cdn.com/custom.css

효과: 기존 테마 스타일을 덮어쓰기하여 원하는 디자인으로 변경할 수 있습니다. 이 방법은 전체 포털에 일관된 스타일을 적용하는 데 매우 효과적입니다.

3. 동적 테마 설정

liferay-look-and-feel.xml 수정을 통해 실시간으로 테마를 조정할 수 있습니다:

<setting configurable="true" key="header-color" type="text" value="#2E64FE"/>

사용법: 관리자 페이지에서 헥스 코드를 실시간으로 변경하여 즉시 디자인 변화를 확인할 수 있습니다. 이는 브랜드 컬러 변경이나 시즌별 테마 적용에 매우 유용합니다.


레이아웃 템플릿 제작 가이드

Blade CLI로 생성

Liferay의 공식 개발 도구인 Blade CLI를 사용하여 레이아웃 템플릿을 생성할 수 있습니다:

blade create -t layout-template -v 7.4 my-grid-layout

구조 설정

레이아웃 템플릿의 기본 구조는 다음과 같습니다:

  • my-grid-layout.tpl에 HTML/CSS 작성
  • liferay-layout-templates.xml에 메타데이터 추가

반응형 그리드 예시

현대적인 반응형 웹 디자인을 위한 그리드 레이아웃 예시입니다:

<div class="container">  
  <div class="row">  
    <div class="col-md-6 portlet-column">
      $processor.processColumn("column-1")
    </div>  
    <div class="col-md-6 portlet-column">
      $processor.processColumn("column-2")
    </div>  
  </div>  
</div>

이 구조를 통해 모바일, 태블릿, 데스크톱 환경에서 모두 최적화된 레이아웃을 제공할 수 있습니다.


고급 디자인 기법

다양한 디자인 요소를 커스터마이징할 수 있는 고급 기법들을 소개합니다:

기능 도구 적용 예시
폰트 변경 Theme CSS 확장 body { font-family: 'Pretendard' }
애니메이션 Liferay AUI aui:animation 태그 활용
다크 모드 사용자 정의 속성 [data-theme="dark"] { ... }

실제 적용 사례

헤더 고정: position: sticky 속성을 추가하여 스크롤 시에도 헤더가 상단에 고정되도록 구현할 수 있습니다.

포틀릿 경계선 제거: .portlet-borderless 클래스를 적용하여 깔끔한 디자인을 구현할 수 있습니다.

브랜드 컬러 적용: CSS 변수를 활용하여 기업의 브랜드 컬러를 일관되게 적용할 수 있습니다.


자주 발생하는 문제 해결

Liferay 테마 커스터마이징 과정에서 자주 발생하는 문제들과 해결 방법을 정리했습니다:

테마 미적용 문제

해결 방법: gulp deploy로 재배포 후 브라우저 캐시를 삭제합니다. 이는 가장 흔한 문제 중 하나로, 캐시 문제로 인해 변경사항이 반영되지 않는 경우가 많습니다.

레이아웃 깨짐 현상

해결 방법: Bootstrap 그리드 시스템을 재정의하여 Liferay의 기본 스타일과 충돌을 방지합니다. CSS 우선순위를 명확히 설정하는 것이 중요합니다.

폰트 로드 실패

해결 방법: CDN 링크 대신 @font-face를 사용하여 폰트를 직접 호스팅합니다. 이는 네트워크 의존성을 줄이고 안정적인 폰트 로딩을 보장합니다.


성능 최적화 전략

CSS 최적화

  • CSS 파일 압축: 불필요한 공백과 주석 제거
  • 중복 스타일 제거: 사용하지 않는 CSS 규칙 정리
  • CSS 스프라이트: 이미지 파일 통합으로 HTTP 요청 수 감소

이미지 최적화

  • WebP 포맷 사용: 기존 이미지 대비 30-50% 용량 절약
  • 반응형 이미지: 디바이스별 최적화된 이미지 제공
  • 지연 로딩: 스크롤 시점에 맞춰 이미지 로드

캐싱 전략

  • 브라우저 캐싱: 정적 리소스의 캐시 만료 시간 설정
  • CDN 활용: 전 세계 사용자에게 빠른 콘텐츠 전송
  • Liferay 내장 캐시: 포틀릿 및 페이지 캐싱 활용

모바일 최적화

반응형 디자인

/* 모바일 우선 접근법 */
.container {
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 768px) {
  .container {
    max-width: 750px;
    margin: 0 auto;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1170px;
  }
}

터치 인터페이스 최적화

  • 버튼 크기: 최소 44px × 44px 터치 영역 확보
  • 스와이프 제스처: 모바일 네비게이션 개선
  • 로딩 인디케이터: 사용자 경험 향상

접근성 고려사항

웹 접근성 표준 준수

  • WCAG 2.1 AA 수준 준수
  • 키보드 네비게이션 지원
  • 스크린 리더 호환성 확보

색상 대비

/* 충분한 색상 대비 확보 */
.text-primary {
  color: #0056b3; /* 4.5:1 대비율 이상 */
}

.button-primary {
  background-color: #007bff;
  color: #ffffff; /* 7:1 대비율 */
}

마무리

Liferay 테마와 레이아웃 커스터마이징은 브랜드 정체성 구축의 핵심입니다. CSS 확장부터 동적 설정까지 체계적으로 접근하면 전문가 수준의 디자인을 구현할 수 있습니다.
성공적인 Liferay 포털 커스터마이징을 위해서는 기술적 구현뿐만 아니라 사용자 경험, 성능 최적화, 접근성까지 종합적으로 고려해야 합니다. 이를 통해 기업의 브랜드 가치를 효과적으로 전달하고, 사용자에게 최상의 포털 경험을 제공할 수 있습니다.
정기적인 업데이트와 사용자 피드백을 반영하여 지속적으로 개선해 나가는 것이 성공적인 Liferay 포털 운영의 핵심입니다.

반응형