IT기술/Liferay Portal

Liferay 포틀릿 완전 가이드: 모듈화된 웹 시스템 구축의 핵심 기술

후스파 2025. 7. 16. 22:15
반응형

Liferay 포털의 핵심 구성 요소인 포틀릿은 복잡한 웹 시스템을 모듈화하는 기술입니다. 블로그, 게시판, 문서 관리 등 다양한 기능을 독립적으로 운영하며, 사용자 맞춤형 포털 구축을 가능하게 합니다. 이 글에서는 포틀릿의 정의부터 실제 적용 사례까지 상세히 설명합니다.


포틀릿이란?

포틀릿은 포털 페이지를 구성하는 독립적인 웹 모듈입니다. 각 포틀릿은 특정 기능(예: 날씨 정보, 뉴스 피드)을 수행하며, 사용자는 필요에 따라 레이아웃을 자유롭게 조합할 수 있습니다.

재사용성여러 페이지·사이트에서 동시 활용
모듈성기능별 독립 개발·배포 가능
보안개별 접근 권한 설정 지원
유연성드래그 앤 드롭으로 배치 변경
확장성플러그인 형태로 기능 확장

포틀릿은 레고 블록처럼 조립하여 사용할 수 있어, 개발자는 필요한 기능만 선택하여 포털을 구성할 수 있습니다.


포틀릿의 2단계 실행 구조

Liferay 포틀릿은 Action Phase와 Render Phase로 구분됩니다.

Action Phase사용자 입력 처리데이터 저장·수정·삭제
Render Phase화면 출력 생성JSP·HTML을 통한 UI 렌더링

실제 동작 예시

  1. 사용자가 게시판에 글 작성 → Action Phase에서 DB 저장
  2. 저장 완료 후 갱신된 목록 → 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 war

2. Hot Deploy 실행

cp my-portlet.war $LIFERAY_HOME/deploy/

3. 배포 확인
Liferay 로그에서 배포 상태를 확인합니다.

운영 모니터링

성능 메트릭: 응답 시간, 메모리 사용량, 동시 사용자 수 추적
오류 로깅: 포틀릿별 오류 로그 분석 및 대응
사용자 피드백: 포틀릿 사용성 개선을 위한 지속적인 피드백 수집


마무리

Liferay 포틀릿은 기업 디지털 전환의 핵심 도구입니다. 모듈화·재사용성·보안을 바탕으로 복잡한 시스템을 효율적으로 관리할 수 있습니다.
첫 포틀릿 개발은 간단한 게시판부터 시작해보세요. Liferay의 강력한 생태계가 기업포털 구축에 도움이 될 것입니다. 특히 마이크로서비스 아키텍처와 클라우드 환경에서 포틀릿의 모듈화 특성은 더욱 중요해지고 있으며, 이는 현대적인 웹 애플리케이션 개발의 핵심 패러다임으로 자리잡고 있습니다.

반응형