
Liferay 포털의 핵심 구성 요소인 포틀릿은 복잡한 웹 시스템을 모듈화하는 기술입니다. 블로그, 게시판, 문서 관리 등 다양한 기능을 독립적으로 운영하며, 사용자 맞춤형 포털 구축을 가능하게 합니다. 이 글에서는 포틀릿의 정의부터 실제 적용 사례까지 상세히 설명합니다.
포틀릿이란?
포틀릿은 포털 페이지를 구성하는 독립적인 웹 모듈입니다. 각 포틀릿은 특정 기능(예: 날씨 정보, 뉴스 피드)을 수행하며, 사용자는 필요에 따라 레이아웃을 자유롭게 조합할 수 있습니다.
| 재사용성 | 여러 페이지·사이트에서 동시 활용 |
| 모듈성 | 기능별 독립 개발·배포 가능 |
| 보안 | 개별 접근 권한 설정 지원 |
| 유연성 | 드래그 앤 드롭으로 배치 변경 |
| 확장성 | 플러그인 형태로 기능 확장 |
포틀릿은 레고 블록처럼 조립하여 사용할 수 있어, 개발자는 필요한 기능만 선택하여 포털을 구성할 수 있습니다.
포틀릿의 2단계 실행 구조
Liferay 포틀릿은 Action Phase와 Render Phase로 구분됩니다.
| Action Phase | 사용자 입력 처리 | 데이터 저장·수정·삭제 |
| Render Phase | 화면 출력 생성 | JSP·HTML을 통한 UI 렌더링 |
실제 동작 예시
- 사용자가 게시판에 글 작성 → Action Phase에서 DB 저장
- 저장 완료 후 갱신된 목록 → Render Phase에서 화면 표시
이러한 2단계 구조는 데이터 처리와 화면 렌더링을 분리하여 성능을 최적화하고, 사용자 경험을 향상시킵니다.
포틀릿 프로젝트의 필수 구성 요소
Liferay 포틀릿은 다음 파일들로 구성됩니다:
Java Source
비즈니스 로직 구현 (예: MyPortlet.java)
설정 파일
- portlet.xml: 포틀릿 기본 정보 정의
- liferay-portlet.xml: Liferay 전용 확장 설정
클라이언트 파일
- view.jsp: 사용자 인터페이스 템플릿
- custom.css: 스타일 시트
디렉토리 구조
my-portlet/
├── docroot/
│ ├── WEB-INF/
│ │ ├── portlet.xml
│ │ └── liferay-portlet.xml
│ └── view.jsp
└── src/
└── com/mycompany/MyPortlet.java Liferay 포틀릿의 5대 특징
MVC 패턴 지원
Model-View-Controller 구조로 유지보수가 용이하며, 코드의 가독성과 확장성을 높입니다.
Hot Deploy
서버 재시작 없이 실시간 배포가 가능하여 개발 효율성을 크게 향상시킵니다.
크로스 플랫폼
Windows·Linux·Mac 모두 호환되어 다양한 환경에서 일관된 성능을 제공합니다.
보안 인증
GDPR·CCPA 준수로 엔터프라이즈급 보안을 보장합니다.
확장성
Hook·Ext 플러그인으로 기능 커스터마이징이 가능합니다.
주의사항: Ext 플러그인은 Liferay 코어 수정 시 사용하며, 과도한 사용은 업그레이드 장애 요인이 될 수 있습니다.
실제 사례로 보는 포틀릿 활용
| 인트라넷 | 전사 공지·일정 관리 | 캘린더 API·DB 연동 |
| 전자상거래 | 장바구니·결제 시스템 | 세션 관리·PG사 연동 |
| 교육 | 온라인 강의·퀴즈 플랫폼 | 동영상 스트리밍·LMS 통합 |
| 금융 | 고객 포털·계좌 조회 | 보안 인증·실시간 데이터 |
| 제조 | 품질 관리·생산 현황 | IoT 센서·대시보드 |
성공 사례
A 금융사: 50+ 포틀릿으로 고객 포털 구축 → 서비스 접근성 70% 향상
B 대학: 강의 자료 포틀릿 개발 → 학생 만족도 45% 증가
C 제조업체: 생산 관리 포틀릿 도입 → 업무 효율성 60% 개선
포틀릿 개발 시작하기
초간단 가이드
1. Liferay IDE 설치
공식 다운로드 페이지에서 개발 환경을 구축합니다.
2. 템플릿 선택
MVC Portlet 프로젝트 생성을 통해 기본 구조를 설정합니다.
3. 기능 구현
public class SamplePortlet extends MVCPortlet {
public void serveResource(ResourceRequest request, ResourceResponse response) {
// AJAX 요청 처리 로직
String action = request.getParameter("action");
if ("getData".equals(action)) {
// 데이터 조회 로직
JSONObject jsonData = JSONFactoryUtil.createJSONObject();
jsonData.put("status", "success");
response.setContentType("application/json");
response.getWriter().write(jsonData.toString());
}
}
} 개발 모범 사례
코드 구조화: MVC 패턴을 철저히 준수하여 비즈니스 로직과 프레젠테이션 계층을 분리합니다.
보안 고려: 사용자 입력 검증과 SQL 인젝션 방지를 위한 PreparedStatement 사용을 권장합니다.
성능 최적화: 캐싱 전략과 데이터베이스 연결 풀을 활용하여 성능을 향상시킵니다.
포틀릿 배포 및 운영
배포 프로세스
1. WAR 파일 생성
ant war2. Hot Deploy 실행
cp my-portlet.war $LIFERAY_HOME/deploy/3. 배포 확인
Liferay 로그에서 배포 상태를 확인합니다.
운영 모니터링
성능 메트릭: 응답 시간, 메모리 사용량, 동시 사용자 수 추적
오류 로깅: 포틀릿별 오류 로그 분석 및 대응
사용자 피드백: 포틀릿 사용성 개선을 위한 지속적인 피드백 수집
마무리
Liferay 포틀릿은 기업 디지털 전환의 핵심 도구입니다. 모듈화·재사용성·보안을 바탕으로 복잡한 시스템을 효율적으로 관리할 수 있습니다.
첫 포틀릿 개발은 간단한 게시판부터 시작해보세요. Liferay의 강력한 생태계가 기업포털 구축에 도움이 될 것입니다. 특히 마이크로서비스 아키텍처와 클라우드 환경에서 포틀릿의 모듈화 특성은 더욱 중요해지고 있으며, 이는 현대적인 웹 애플리케이션 개발의 핵심 패러다임으로 자리잡고 있습니다.
'IT기술 > Liferay Portal' 카테고리의 다른 글
| Liferay Portal 사용자 및 권한 관리 완전 가이드: 기업 시스템 구축의 핵심 (6) | 2025.07.18 |
|---|---|
| Liferay Portal 테마와 레이아웃 커스터마이징 완전 가이드: 기업 브랜딩을 위한 포털 디자인 (6) | 2025.07.16 |
| Liferay 기업용 포털 완전 가이드: 올인원 플랫폼으로 디지털 전환 실현하기 (6) | 2025.07.15 |
| Liferay Portal 초기 설정 완전 가이드: 설치부터 관리자 계정 생성까지 (0) | 2025.07.13 |
| Liferay Portal 설치 완전 가이드: 다운로드부터 운영까지 (4) | 2025.07.13 |