proto-socket/agent-ops/rules/project/domain/go/rules.md
toki d0754a353a refactor: rename toki_socket to proto_socket across all languages
- Rename package/module from toki_socket to proto_socket in Dart, Kotlin, Python
- Update crosstest implementations to use renamed packages
- Add new proto_socket skill, deprecate add-toki-socket-crosstest-language skill
- Update domain rules for all languages
- Update documentation (README, PORTING_GUIDE, PROTOCOL, VERSIONING)
2026-05-02 07:19:12 +09:00

40 lines
1.4 KiB
Markdown

# go
## 목적 / 책임
Proto Socket의 Go 구현체를 담당한다. TCP/WebSocket 서버·클라이언트, TLS 지원, 타입 헬퍼 함수를 제공하며, 서버·툴링·스크립팅 용도로 사용된다.
## 포함 경로
- `go/*.go` — 핵심 구현 (packets/ 제외)
- `go/test/` — 동일 언어 테스트
- `go/crosstest/` — 크로스 언어 테스트 (Dart, Kotlin과 연동). 오케스트레이터 또는 클라이언트 헬퍼
- `go/go.mod`, `go/go.sum` — 모듈 의존성
- `go/examples/` — 사용 예제
## 제외 경로
- `go/packets/` — protocol 도메인
## 주요 구성 요소
- `TcpServer` / `TcpClient` — TCP 서버/클라이언트
- `WsServer` / `WsClient` — WebSocket 서버/클라이언트
- `Communicator` — 메시지 라우팅 및 요청-응답 상관관계 공통 로직
- `AddListenerTyped`, `AddRequestListenerTyped`, `SendRequestTyped` — 타입 헬퍼
## 유지할 패턴
- `go test ./...`로 테스트 실행
- `ParserMap`으로 타입명 → 파서 함수 등록
- TLS 변형은 기본 구현과 같은 인터페이스 유지
## 다른 도메인과의 경계
- **protocol**: packets/ 패키지를 import하지만, 패키지 내용은 protocol 도메인
- **dart/kotlin**: crosstest에서 상호 연동
## 금지 사항
- `go/packets/` proto 파일을 메시지 스키마 변경 목적으로 편집하지 않는다
- Communicator에 애플리케이션 도메인 로직(인증, 세션 등)을 추가하지 않는다