API 테스트와 운영 콘솔을 한곳에서

API 테스트와 운영 콘솔을 하나로. 셀렉트어드민은 API 요청을 검증하면서도 운영 데이터와 로그인 컨텍스트를 살린 화면을 제공합니다. 테스트 화면이 곧 운영 도구가 됩니다.

API 테스트와 운영 콘솔을 한곳에서

운영에 바로 쓸 수 있는 API 테스트 콘솔이 필요할 때,
API를 만든 직후 호출·검증·시각화를 한곳에서 처리할 수 있다면 어떨까요?
셀렉트어드민은 프론트엔드 코드나 별도 배포 없이 이를 구현합니다.


개발자가 흔히 겪는 상황

  • 스테이징과 운영을 오가며 토큰과 헤더를 계속 바꾼다.
  • 테스트 화면과 운영 화면이 분리되어 팀이 같은 맥락으로 보기 어렵다.
  • 비개발 사용자는 실수 없이 제한된 화면에서만 테스트해야 안전하다.

요청·응답 테스트는 Postman 같은 API 클라이언트로 충분히 할 수 있습니다.
하지만 팀 단위로 운영 환경에 연결된 화면을 제공하고,
비개발 사용자가 별도 설치 없이 바로 쓰게 하려면 한계가 있습니다.

Postman은 협업 워크스페이스, 웹 공유, 시각화(Visualizer)를 지원하지만,
본질은 테스트 클라이언트이며 “운영 콘솔로 배포”하는 모델은 아닙니다.


셀렉트어드민이 해결하는 방식

  • 제약 화면 제공: 개발자(편집자)가 페이지·파라미터·권한을 미리 구성합니다.
    사용자는 정해진 입력만 가능하며, 화면 밖으로 벗어날 수 없습니다.
  • 즉시 공유: URL로 즉시 배포되어 팀과 운영이 같은 화면을 봅니다.
  • 운영 컨텍스트 자동 주입: 로그인 사용자나 액세스 토큰 등을 자동으로 주입해
    운영 환경 그대로 테스트할 수 있습니다.
  • 요금 체계: 개발자(편집자) 단위 과금이며, 내부 일반 사용자는 좌석 비용이 없습니다.
  • Postman 보완: 테스트는 Postman으로, 반복 사용·운영 공유는 셀렉트어드민으로 역할을 구분합니다.

기본 예시 — 붙여서 바로 실행 가능

blocks:
  - type: http
    method: GET
    fetchFn: |
      const r = await fetch('https://api.example.com/v1/users?limit=10')
      const data = await r.json()
      return data.rows || data

배열을 return하면 자동 렌더링됩니다.


파라미터 기반 조회 — 비개발자도 안전하게 테스트

blocks:
  - type: http
    method: GET
    fetchFn: |
      const q = (name || '').trim() || 'all'
      const r = await fetch(`https://api.example.com/v1/search?name=${encodeURIComponent(q)}`)
      return await r.json()
    params:
      - key: name
        placeholder: 검색어 입력

허용된 입력만 노출되어 실수 가능성을 줄입니다.


POST + 폼 + 기본 검증

blocks:
  - type: http
    method: POST
    fetchFn: |
      if (!text || !text.trim()) {
        return { error: 'text is required' }
      }
      const r = await fetch('https://api.example.com/v1/posts', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ text })
      })
      return await r.json()
    params:
      - key: text
        label: 텍스트 입력
        format: textarea
    display: form

키발급 없이 세션 자동 주입 예시

blocks:
  - type: http
    method: POST
    fetchFn: |
      const r = await axios({
        url: `${API || 'https://api.example.com'}/v1/secure-endpoint`,
        method: 'POST',
        data: { token: SELECT_ACCESS_TOKEN }
      })
      return r.data

JWT 세션으로 로그인 컨텍스트를 활용합니다.


결과 테이블 + 상세 모달 — 테스트 화면이 곧 운영 화면

blocks:
  - type: http
    method: GET
    fetchFn: |
      return [
        { id: 1, name: 'Alpha', created_at: '2025-10-01' },
        { id: 2, name: 'Bravo', created_at: '2025-10-03' }
      ]
    columns:
      name:
        openModal: detail-:id
    modals:
      - path: detail-:id
        blocks:
          - type: http
            method: GET
            fetchFn: |
              return [{ id, detail: `detail-${id}` }]
            params:
              - key: id
                valueFromRow: id

최종 화면 이미지

파라미터 기반 조회
POST + 폼 + 기본 검증
결과 테이블 + 상세 모달

언제 무엇을 쓰면 좋을까요?

Postman으로 충분한 경우:

  • 개발자 개인 또는 소수의 API 실험
  • 일회성·단기 검증
  • 스크립트 기반 테스트
  • 문서화나 공유가 목적일 때

셀렉트어드민이 보강하는 경우:

  • 비개발자 포함 팀 전체가 동일한 화면을 반복 사용해야 할 때
  • 운영 데이터·권한·로그인 컨텍스트를 그대로 써야 할 때
  • 개발자(편집자)만 과금하고 내부 사용자는 무료로 써야 할 때
  • 테스트 화면을 즉시 운영 콘솔로 격상시켜야 할 때

Postman으로 테스트를 시작하고, 좌석 비용·실행 한도·운영 배포 부재 등 한계에 닿는 순간, 셀렉트 어드민으로 제약 화면 기반의 운영 콘솔을 구성해보세요. 테스트 화면이 곧 팀의 운영 도구가 됩니다.

더 자세한 활용법은 셀렉트 어드민 개발자 문서에서 확인할 수 있습니다.

Read more

부족하게 만들 용기 - 개발자의 딜레마

부족하게 만들 용기 - 개발자의 딜레마

새로운 기능과 제품을 만들때 고민되는 지점이 있다. * 누가 쓸지, 어떤 문제를 겪고 있는지 * 어떤 기능과 결과물이 필수인지 * 얼마나 완성도있게 만들지 * 언제까지 만들지 * 어떻게 사용을 편하게 할지, 사용법이 쉬운지 그러나 기획 의도와 방향을 정하고 프로젝트를 진행하면 늘 변수가 생긴다. 코딩, 개발 시간은 예측하기 어렵고 수 많은 제품 디자인적 의사결정이 필요하고 복잡도

By LEE JINHYUK
LLM 시대, 로우코드는 어떤 의미가 있을까?

LLM 시대, 로우코드는 어떤 의미가 있을까?

ChatGPT 3.5 출시 이후, Copilot, Cursor 같은 AI 코딩 도구가 개발자 손에 들어오면서 많은 질문이 생겼습니다. 그중 생각해볼만한 질문은 바로 이것입니다. “이제 운영툴 같은 건 다 AI가 대신 짜줄 수 없을까?” 초기 boilerplate 세팅, 버튼 하나 추가, 컬럼 노출 조건 변경 같은 요청들을 진행하면 LLM이 금방 코드로 만들어줄 수

By Hakbeom Kim