10. Angular Universal + Headless WordPress 상세 가이드
좋습니다 👍. 이번에는 10위로 꼽은 Angular Universal을 Headless WordPress와 함께 사용하는 상세 가이드를 단계별로 정리해드릴게요.
🏆 Angular Universal + Headless WordPress 상세 가이드
1. Angular Universal 선택 이유
- 엔터프라이즈급 프레임워크: 대규모 프로젝트와 복잡한 애플리케이션에 적합.
- SSR 지원: 서버 사이드 렌더링으로 SEO와 초기 로딩 속도 개선.
- 강력한 타입 시스템: TypeScript 기반으로 안정성과 유지보수성 강화.
- 풍부한 생태계: Angular CLI, RxJS, NgRx 등과 결합해 확장성 높음.
2. 준비 단계
- WordPress 설치 및 API 준비
- 기본 REST API 제공 (
/wp-json/wp/v2/posts). - WPGraphQL 플러그인 설치 시 GraphQL 쿼리 가능.
- 기본 REST API 제공 (
- Angular Universal 프로젝트 생성
ng new headless-wp-angular --style=scss --routing=true cd headless-wp-angular ng add @nguniversal/express-engine npm run dev:ssr→ 기본 개발 서버 실행 후http://localhost:4200접속.
3. WordPress 데이터 가져오기
(A) REST API 방식
// src/app/services/wp.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({ providedIn: 'root' })
export class WpService {
constructor(private http: HttpClient) {}
getPosts() {
return this.http.get<any[]>('https://your-wp-site.com/wp-json/wp/v2/posts');
}
}
// src/app/components/posts/posts.component.ts
import { Component, OnInit } from '@angular/core';
import { WpService } from '../../services/wp.service';
@Component({
selector: 'app-posts',
template: `
<h1>WordPress Posts</h1>
<ul>
<li *ngFor="let post of posts">{{ post.title.rendered }}</li>
</ul>
`
})
export class PostsComponent implements OnInit {
posts: any[] = [];
constructor(private wp: WpService) {}
ngOnInit() {
this.wp.getPosts().subscribe(data => this.posts = data);
}
}
(B) GraphQL 방식 (WPGraphQL 설치 시)
Angular에서는 Apollo Angular를 활용:
ng add apollo-angular
// src/app/services/wp-graphql.service.ts
import { Injectable } from '@angular/core';
import { Apollo, gql } from 'apollo-angular';
@Injectable({ providedIn: 'root' })
export class WpGraphqlService {
constructor(private apollo: Apollo) {}
getPosts() {
return this.apollo.query({
query: gql`
{
posts {
nodes {
id
title
content
}
}
}
`
});
}
}
4. 배포
- Vercel: Angular Universal SSR 지원.
- Netlify: JAMstack 호스팅에 적합.
- AWS / GCP / Azure: 엔터프라이즈급 배포 환경에 최적.
5. 성능 최적화 팁
- Lazy Loading: 모듈 단위로 로딩해 초기 속도 개선.
- Pre-rendering: 정적 페이지를 미리 생성해 SEO 강화.
- API 캐싱: WordPress API 응답 캐싱으로 속도 향상.
6. 초보자 학습 순서
- TypeScript와 Angular 기본 문법 학습.
- Angular Universal SSR 구조 이해.
- WordPress REST API 구조 학습.
- 작은 블로그 프로젝트로 연습.
- GraphQL + Apollo Angular로 확장.
👉 원하시면 제가 Angular Universal과 Next.js의 SSR 구조 차이를 아키텍처 관점에서 비교해드릴 수 있습니다.
