Communitygithub.com

SynthKernel

🧩 타입 안전하고 조합 가능한 모듈러 모놀리스 개발을 위한 TypeScript 아키텍처입니다.

SynthKernel란 무엇인가요?

SynthKernel은 TypeScript 애플리케이션을 위한 소프트웨어 아키텍처로, 효율적이고 깔끔하며 모듈화된 코드를 작성할 수 있도록 돕습니다. 이 아키텍처는 모듈 로더 클래스와 모듈 클래스로 구성됩니다. 모듈 로더는 모듈의 생명주기를 관리하고, 타입을 오케스트레이션하며, 애플리케이션 로직의 외부 퍼사드 역할을 합니다. 모든 모듈은 `BaseModule` 클래스를 확장하고, 의존성 주입을 통해 서로 연결됩니다. SynthKernel은 백엔드 서비스, 복잡한 자동화, CLI 애플리케이션, 캔버스 렌더링 엔진 등 거의 모든 사용 사례에 적용 가능하며, Claude Code, Cursor, Codex와 같은 AI 에이전트와 함께 사용하기에 적합합니다. 초기 개발 단계, 리팩토링 시, 혹은 새로운 기능 추가 시 유용하며, 파일 시스템은 트리 패턴으로 구조화하는 것이 관례입니다. 200줄 미만의 단순 프로젝트나 웹 UI 개발에는 권장되지 않습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add hesprs/synthkernel

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

SynthKernel 개요

SynthKernel은 효율적이고 깔끔하며 모듈화된 코드를 작성할 수 있도록 돕는 TypeScript 소프트웨어 아키텍처입니다.

SynthKernel의 일반적인 사용 방식은 모듈 로더 클래스와 모듈 클래스로 구성됩니다:

  • 모듈 로더 클래스는 모듈의 생명주기를 관리하고, 타입을 오케스트레이션하며, 애플리케이션 로직의 외부 퍼사드 역할을 합니다.
  • 모든 모듈 클래스는 BaseModule 클래스를 확장하며, API를 정의하고 실제 로직을 실행하며, 로더 클래스를 확장하고 의존성 주입을 통해 서로 연결됩니다.
  • 타입은 제네릭 오케스트레이션을 통해 해결됩니다.
  • 모듈은 로더에 구성되어 APP을 형성합니다. 모듈 로더는 상위 로더의 모듈이 될 수도 있습니다.
  • 백엔드 서비스, 복잡한 자동화, CLI 애플리케이션, 캔버스 렌더링 엔진을 포함하되 이에 국한되지 않는 거의 모든 사용 사례에 적용할 수 있습니다.

파일 시스템 규칙

SynthKernel은 트리 패턴으로 구조화되어야 합니다.

로더는 기본 모듈 및 모든 직속 모듈과 함께 한 폴더에 평평하게 배치되어야 합니다:

  • 로더를 담는 파일은 index.ts로 명명합니다.
  • 기본 모듈은 BaseModule.ts로 명명합니다.
  • 타입은 types.ts로 명명합니다.
  • 모든 모듈은 (PascalCase 형식의 모듈 이름).ts로 명명합니다.
  • 다른 파일의 이름에는 제한이 없습니다.

과도하게 비대해진 모듈을 새로운 로더-모듈 구조로 전환한 후, 해당 모듈을 위와 동일한 요구 사항을 가진 폴더로 만드는 것이 표준 관행입니다.

사용 시기

  • 개발 초기 단계에서, 로직에 대한 실마리는 있지만 아직 코드를 작성하지 않은 경우.
  • 명확한 아키텍처 규칙이 없는 경우.
  • 일부 큰 모듈을 분할하거나 프로젝트를 모듈화하려는 리팩토링 중.
  • 새로운 기능을 추가하면서 새 모듈을 만들고 SynthKernel을 이해하려는 경우.

사용하지 말아야 할 시기

  • 아키텍처를 생성하거나 변경할 의도가 없는 경우.
  • 자체 규칙이 있는 웹 UI를 개발 중인 경우.
  • 고전적인 모놀리스가 더 편리한 간단한 프로젝트(200줄 미만)를 작업 중인 경우.

작업 안내

  • SynthKernel을 처음부터 구현하거나 기존 코드를 SynthKernel로 리팩토링하려면 시작하기로 이동하세요.
  • 새 모듈을 추가하거나 모듈을 분할하려면 유지보수로 이동하세요.
  • 표준 관행의 예제는 ./example에서 확인할 수 있습니다.

관련 스킬