SSH/SFTP · Git · CI/CD를 하나로 — DevOps Hub

반복되는 서버 접속, 파일 이동, Git 작업, 배포 스크립트를 한 화면에서 처리하는 실시간 DevOps 도구입니다.

Monorepo(Turborepo) NestJS · MySQL · Socket.IO React(Vite) · Electron SSH2/SFTP · Git CLI
개발 기간
2025.06 – 2025.07
역할
백엔드 중심 풀스택 (개인)
핵심 임팩트
원격 배포 작업 시간 40%↓ (PoC)
주요 기술
NestJS · Socket.IO · SSH2 · MySQL
socket ▶ ssh2 ▶ sftp

$ ssh ec2-user@server
  Welcome. Connected via Socket.IO → SSH2
  $ ls -la
  drwxr-xr-x  7 ec2-user app
  -rw-r--r--  1 ec2-user deploy.sh
  ... (SFTP 업/다운로드, vi/vim 원격 열기)
                

주요 기능 (핵심만 빠르게)

터미널 + SFTP 탐색기

JWT 검증 후 세션별 SSH/SFTP 연결. 드래그앤드롭 업로드/ZIP 다운로드, explorer-open-file로 원격 vim 열기.

  • 실시간 스트림·세션 수명주기 관리
  • 권한/소유자 뱃지, 대용량 전송 진행률
  • 오류/재시도·일시정지 재개 설계

Git Manager

로컬 경로 기반 저장소 관리·시각화. 변경파일/스테이징/커밋, stash 관리, conflict diff.

  • 파일 변경 감지(chokidar) 알림
  • 브랜치/원격(remote) CRUD
  • 히스토리/파일 diff 조회

CI/CD (설계 완료·구현 진행)

서버·경로·레포·빌드/배포 스크립트를 마법사로 구성, 파이프라인 러너 연동 예정.

  • 엔티티 설계·UI 시나리오 완성
  • 실행 로그 스트리밍 목표
  • 권한/감사 로깅 계획

케이스 스터디 — Problem → Solution → Impact

Problem

운영 서버 접속·파일 이동·Git 동작·배포가 툴/창이 분절되어 맥락 전환 비용이 증가. 반복 스크립트의 인적 오류도 빈번.

  • SSH/SFTP/터미널/에디터/브라우저 다중전환
  • 서버별 자격·경로·브랜치 기억 부담

Solution

모노레포 기반으로 웹·데스크톱 어디서나 동일 경험. Socket.IO 게이트웨이로 SSH2/SFTP/깃 명령을 세션 단위로 추상화.

  • JWT + RoleGuard, Throttler, Helmet
  • 파일 업/다운로드·diff·stash 일원화 UI
  • CI/CD 마법사로 파이프라인 표준화

Impact

PoC 기준, 배포 전후 작업의 체류시간맥락 전환이 줄어 총 작업시간 30~40% 감소 목표(실측치로 교체 권장).

  • 반복 스크립트 오류율 감소
  • 온보딩·핸드오프 가속

아키텍처

React(Vite)·Socket.IO Client ↔ NestJS 게이트웨이(/, /git, /cicd) ↔ SSH2/SFTP, Git CLI, TypeORM→MySQL

  • 게이트웨이: SessionGateway, GitGateway, CicdGateway
  • 관심사 분리: 인증/로깅/예외 전역화
  • Electron 포장으로 오프라인/온프리미스 대응
React (Vite)
 ├─ Axios (REST)
 └─ Socket.IO (/, /git, /cicd)
      │
      ▼
NestJS Gateways
 ├─ SSH2 / SFTP
 ├─ Git (exec + chokidar)
 └─ TypeORM → MySQL

기술 스택

Backend

  • NestJS 11, TypeORM, MySQL
  • Socket.IO, ssh2, ssh2-sftp-client
  • @nestjs/jwt, Winston, Helmet, Throttler
  • Swagger UI

Frontend

  • React 19, Vite, React Router
  • socket.io-client, xterm, framer-motion
  • Electron(선택)

Infra

  • Monorepo: Turborepo
  • Docker Compose(MySQL/Redis)
  • Node 18+

Contact

협업과 코드 리뷰를 좋아합니다. 필요 시 실사용 데모·코드 워크스루 제공 가능합니다.