002 - 둘러보기
기본적으로 방금 만든 플러그인은 간단한 할 일 목록 애플리케이션을 호스팅해요. http://localhost:7007/api/todo/todos에서 HTTP API를 노출해서 TODO를 만들고, 기존 TODO를 나열하고, 특정 TODO를 가져올 수 있게 해요. 이 TODO들을 메모리에 저장하므로 애플리케이션을 재시작하면 모든 TODO를 잃게 돼요. 또한 TODO를 소프트웨어 카탈로그 엔티티로 태그할 수 있어서 프론트엔드 통합에 유용할 거예요. 이 글에서는 플러그인을 로컬에서 테스트하는 방법을 설명드릴게요.
출처: 문서
본문
기본 플러그인 기능
기본적으로 방금 만든 플러그인은 간단한 할 일 목록 애플리케이션을 호스팅해요. http://localhost:7007/api/todo/todos에서 HTTP API를 노출해서 TODO를 만들고, 기존 TODO를 나열하고, 특정 TODO를 가져올 수 있게 해요. 이 TODO들을 메모리에 저장하므로 애플리케이션을 재시작하면 모든 TODO를 잃게 돼요. 또한 TODO를 소프트웨어 카탈로그 엔티티로 태그할 수 있어서 프론트엔드 통합에 유용할 거예요.
이 플러그인을 프로덕션 준비로 만들려면 몇 가지를 조정해야 해요:
-
재시작 시 잃지 않도록 TODO를 데이터베이스에 기록.
-
모든 것이 우리가 기대하는 대로 동작하도록 제대로 된 테스트 작성.
-
사용자 피드백 얻기.
로컬 테스트
플러그인을 출시할 준비로 만들기 전에, 로컬에서 실행하는 방법을 살펴볼게요. 백엔드 플러그인의 매니페스트(plugins/todo-backend/package.json)를 열고 scripts 섹션을 보면 몇 가지 중요한 명령을 발견할 수 있어요. 지금 우리와 관련된 것은:
-
yarn start-dev/index.ts의 내용을 백엔드로 사용하는 로컬 개발 서버를 시작해요. -
yarn test- 백엔드 플러그인의 모든 테스트를 실행해요.
yarn start를 실행하면 플러그인 전용 맞춤 백엔드가 시작되는 것을 볼 수 있을 거예요. 이것은 플러그인에서 새 기능을 쉽게 테스트해서 플러그인 개발과 반복을 단순화해요 — 필요한 것을 전역 packages/backend에 추가하는 것만 잊지 마세요. 우리가 찾아봐야 할 중요한 로그는:
2025-06-08T16:14:53.229Z rootHttpRouter info Listening on :7007
이것은 HTTP 서버가 실행 중이고 테스트 HTTP 요청을 보내기 시작할 수 있다는 것을 나타내요. 좋아하는 HTTP 클라이언트를 들고 테스트를 시작해 볼게요!
시작하려면 깨끗한 상태에서 시작하는지 확인해 볼게요. 아래 명령을 실행해서 모든 기존 TODO를 나열할 수 있어요. 빈 목록이 돌아와야 해요:
curl http://localhost:7007/api/todo/todos
새 TODO를 만들려면 같은 엔드포인트로 POST 요청을 보낼 수 있어요. 다만 지금은 401 오류를 받게 될 거예요.
curl -X POST http://localhost:7007/api/todo/todos \-H 'Content-Type: application/json; charset=utf-8' \--data-binary @- << EOF{ "title": "My Todo"}EOF
401 오류는 각 TODO를 만든 사용자의 ID를 추적하기 때문이에요. TODO를 만들려고 요청을 보내는데 Authorization 헤더를 제공하지 않으면 이 실패를 보게 돼요. 프론트엔드도 있는 플러그인의 경우 이 자격 증명 관리는 자동으로 일어나야 해요. 이걸 시도해 볼게요:
curl -v -X POST http://localhost:7007/api/todo/todos \-H 'Content-Type: application/json; charset=utf-8' \-H "Authorization: Bearer *** -s http://localhost:7007/api/auth/guest/refresh | jq -r '.backstageIdentity.token')" \--data-binary @- << EOF{ "title": "My Todo"}EOF
그런 다음 모든 TODO를 나열해서 새 TODO를 확인할 수 있어요!
curl http://localhost:7007/api/todo/todos
createdBy가 user:development/guest인 것을 알 수 있을 거예요. 이것이 TODO를 만드는 데 사용한 토큰이에요. 그것은 요청의 -H "Authorization: Bearer *** -s http://localhost:7007/api/auth/guest/refresh | jq -r '.backstageIdentity.token')" 부분이에요.