
Liferay의 테마와 레이아웃을 커스터마이징하면 기업 브랜딩에 맞는 독특한 포털을 구축할 수 있습니다. 최신 방법으로 디자인을 자유롭게 바꿀 수 있어 기업의 아이덴티티를 효과적으로 표현할 수 있습니다.
테마 커스터마이징 3단계
1. 기본 테마 변경 절차
Liferay Portal에서 테마를 변경하는 기본적인 절차는 다음과 같습니다:
- 사이트 관리 → 페이지 → 설정 → 테마 변경
- 업로드한 테마 선택 (예: Acme Blue Theme)
- 미리보기 후 적용
- 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 포털 운영의 핵심입니다.
'IT기술 > Liferay Portal' 카테고리의 다른 글
| Liferay Portal CMS 완전 가이드: 비전문가도 쉽게 만드는 전문적인 웹사이트 (10) | 2025.07.19 |
|---|---|
| Liferay Portal 사용자 및 권한 관리 완전 가이드: 기업 시스템 구축의 핵심 (6) | 2025.07.18 |
| Liferay 포틀릿 완전 가이드: 모듈화된 웹 시스템 구축의 핵심 기술 (8) | 2025.07.16 |
| Liferay 기업용 포털 완전 가이드: 올인원 플랫폼으로 디지털 전환 실현하기 (6) | 2025.07.15 |
| Liferay Portal 초기 설정 완전 가이드: 설치부터 관리자 계정 생성까지 (0) | 2025.07.13 |