102개의 Developer Tools가 포함된 브라우저 기반 터미널을 만들었습니다

발행: (2026년 2월 15일 오전 10:26 GMT+9)
7 분 소요
원문: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated (excluding any code blocks or URLs). Could you please paste the content you want converted to Korean? Once I have it, I’ll keep the source line exactly as you provided and preserve all formatting and technical terms.

아이디어

저는 빠른 개발자 작업—subnet calculations, Base64 encoding, DNS lookups, hash generation—을 실행할 수 있는 단일 장소가 필요했기에 administrator.sh를 만들었습니다. 이 브라우저‑기반 터미널은 102개의 명령을 제공하며, 클래식 터미널 같은 느낌이지만 완전히 브라우저에서 실행됩니다.

명령 카테고리

네트워크 도구

dns, whois, rdns, ping, traceroute, headers, ssl, port, subnet, cidr, asn, mac, myip, geo, http
이것들은 제가 매일 사용하는 도구들입니다. 예시: dns example.com은 A, AAAA, MX, NS, TXT 레코드를 즉시 반환합니다. ssl example.com은 인증서 상세 정보, 만료 날짜 및 체인 정보를 보여줍니다. headers는 HTTP 응답 헤더를 가져와 표시합니다.

인코딩 및 개발 유틸리티

base64, hash, json, urlencode, regex, jwt, uuid, password, chmod, cron, timestamp, calc, diff, ascii, case, sort, reverse, number, color, workdays
가장 많이 사용되는 도구: json은 JSON을 검증하고 보기 좋게 출력하며, regex는 패턴을 테스트하고 매치 하이라이트를 제공하고, cron은 크론 표현식을 파싱합니다.

BBS 스타일 소셜 기능

chat, irc, board, msg, who, bulletin
실시간 채팅 방, mIRC 스타일 인터페이스, 게시판, 다이렉트 메시징, 그리고 온라인 사용자를 보여주는 who 명령이 포함됩니다. 본질적으로 터미널 안의 현대적인 BBS라고 할 수 있습니다.

게임

adventure, battleship, blackjack, chess, connect4, hangman, minesweeper, snake, tictactoe, wordle, hack
텍스트 어드벤처, 멀티플레이어 배틀쉽, 해킹 시뮬레이션이 포함됩니다.

시스템 및 계정

login, register, account, 2fa, apikey, notifications, support, theme, crt, help, history, clear
사용자는 선택적으로 계정을 생성하여 지속적인 기능(저장된 환경설정, 메시지 기록, 2FA)을 이용할 수 있습니다. 대부분의 도구는 계정 없이도 작동합니다.

아키텍처

  • Backend: Flask (Python)와 SQLAlchemy + MySQL — 단일 app.py 파일에 약 5,400줄.
  • Frontend: Vanilla JavaScript; 102개의 명령 파일을 esbuild로 번들링하여 terminal.bundle.js에 포함.
  • CSS: 테마를 위한 커스텀 프로퍼티 사용, 전처리기 없음.
  • Server: Gunicorn에 gevent 적용 (단일 워커, 동시 1,000 연결).
  • Infrastructure: Nginx 리버스 프록시, 지리적 라우팅을 위한 Cloudflare Worker.

UI는 번들된 JavaScript를 로드하는 최소 HTML 페이지이며, 나머지는 텍스트 라인을 추가하는 JavaScript만으로 동작합니다. 프레임워크는 필요하지 않습니다.

예제 명령 모듈

// static/js/commands/hash.js
export default {
  name: "hash",
  description: "Generates a SHA-256 hash of the input.",
  usage: "hash <input>",
  category: "encoding",

  run({ print, arg, createPrompt, handleCommand }) {
    if (!arg) {
      print("Usage: hash <input>");
      return createPrompt(handleCommand);
    }

    const encoder = new TextEncoder();
    const data = encoder.encode(arg);

    crypto.subtle.digest("SHA-256", data).then(buffer => {
      const hashArray = Array.from(new Uint8Array(buffer));
      const hashHex = hashArray.map(b =>
        b.toString(16).padStart(2, "0")
      ).join("");
      print("SHA-256: " + hashHex);
      createPrompt(handleCommand);
    });
  }
};

각 명령은 동일한 컨텍스트 객체(print, arg, createPrompt, handleCommand)를 받습니다. 새로운 명령을 추가하는 것은 파일을 만들고 가져오는 것만큼 간단합니다.

Real‑Time Features

  • Chat polls every 2 seconds.
  • Visitor count polls every 10 seconds.
  • Polling is preferred over WebSockets to avoid connection‑management complexity and proxy issues.

독립형 도구 페이지

administrator.sh/tools/에 위치하며 Google에 색인됨:

  • 서브넷 계산기
  • Base64 인코드 & 디코드
  • 해시 생성기
  • JSON 포매터
  • 정규식 테스터
  • Chmod 계산기
  • Cron 파서
  • 비밀번호 생성기
  • UUID 생성기
  • URL 인코드 & 디코드

각 페이지는 약 5 KB 크기의 단일 JavaScript 파일을 로드합니다; 모든 처리는 클라이언트 측에서 이루어지므로 데이터가 브라우저를 떠나지 않습니다.

배운 교훈

  1. Polling은 과소평가됩니다. 저빈도 업데이트에 WebSockets보다 간단합니다.
  2. 명령당 하나의 파일이 잘 확장됩니다. 102개의 명령이 있어도 코드베이스는 탐색하기 쉽습니다.
  3. 인메모리 상태가 일시적인 데이터에 충분합니다. 채팅 메시지, 온라인 상태, 게시판 글이 Python 딕셔너리에 저장됩니다.
  4. CSS 커스텀 프로퍼티가 테마 적용을 간단하게 합니다. 여섯 가지 테마는 루트 요소의 클래스만 바꾸면 됩니다.
  5. gevent는 I/O 바운드 Python에 뛰어납니다. gevent를 사용한 단일 Gunicorn 워커가 1,000개의 동시 연결을 원활히 처리합니다.

시작하기

Visit administrator.sh and type help to see all 102 commands, or explore the standalone tools if you prefer a traditional UI.

시도해볼 몇 가지 명령

  • dns google.com — DNS 조회
  • subnet 192.168.1.50 192.168.1.0/24 — 서브넷 확인
  • json {"name":"test"} — JSON 포맷
  • who — 온라인 사용자 보기
  • chat — 채팅방 입장
  • adventure — 텍스트 어드벤처 플레이
  • theme — 색상 테마 변경
  • crt — CRT 스캔라인 효과 토글

Everything runs in your browser. No signup, no install, no tracking.

0 조회
Back to Blog

관련 글

더 보기 »