LGES-OC5-PtoP-Welder/docs/CODING_RULES.md
2026-06-05 13:44:39 +09:00

3.8 KiB

코딩 규칙 — ILSOS 프로젝트

1. 파일 인코딩 규칙 (필수)

규칙: 모든 C# / XAML / 텍스트 파일은 UTF-8 with BOM + CRLF

이 프로젝트의 모든 소스 파일은 UTF-8 with BOM 인코딩과 CRLF 줄바꿈을 사용한다.
Visual Studio 2022가 기본으로 생성하는 방식이며, 한글이 포함된 주석/문자열이 깨지지 않으려면 반드시 이를 지켜야 한다.

인코딩: UTF-8 with BOM  (BOM = EF BB BF)
줄바꿈: CRLF            (\r\n)

Claude가 파일을 생성/수정할 때 지켜야 할 사항

파일 신규 생성 시

  • Write 도구로 파일을 생성한 뒤, 반드시 아래 Python 명령으로 BOM을 추가하고 CRLF로 변환한다.
python3 -c "
import sys
path = r'생성한_파일_경로.cs'
with open(path, 'r', encoding='utf-8') as f:
    content = f.read()
content = content.replace('\r\n', '\n').replace('\n', '\r\n')
with open(path, 'wb') as f:
    f.write(b'\xef\xbb\xbf')  # UTF-8 BOM
    f.write(content.encode('utf-8'))
"

기존 파일 수정 시

  • Edit 도구로 파일을 수정한 경우, BOM과 CRLF는 기존 파일에 유지된다.
    단, Edit 도구가 BOM을 제거하거나 LF로 변경한 경우에는 위 Python 명령으로 복구한다.

수정 후 인코딩 검증

python3 -c "
with open(r'파일경로.cs', 'rb') as f:
    raw = f.read(3)
print('BOM 존재:', raw == b'\xef\xbb\xbf')  # True여야 함
"

file 파일경로.cs
# 출력에 'UTF-8 (with BOM)' 및 'CRLF' 포함되어야 함

2. 한글 깨짐 방지 체크리스트

파일을 생성하거나 수정한 후 아래를 확인한다.

  • file 명령 출력에 UTF-8 (with BOM) 포함
  • file 명령 출력에 CRLF 포함
  • 파일 첫 3바이트가 EF BB BF (BOM)
  • 한글 주석/문자열이 포함된 경우 Visual Studio에서 열어 깨짐 여부 확인

3. 네이밍 컨벤션

클래스/메서드

  • PascalCase: SequenceManager, ProcessManager, SeqAutoRunPrismaticGunStageA

필드/변수

  • private 필드: _camelCase (언더스코어 접두사)
    예) _acs, _plc, _ajin
  • 지역 변수: camelCase

파일명

  • 클래스명과 동일하게 유지
  • Stage 구분: StageA / StageB 접미사

4. 시퀀스 작성 규칙

Stage A / Stage B 이원 구조 유지

  • PrismaticGun에서 StageA와 StageB 시퀀스는 항상 대칭적으로 작성한다.
  • StageA에 기능을 추가하면 StageB에도 동일하게 추가한다.

시퀀스 파일 위치

Sequences/SubSequence/StageA/SeqXxx.cs  ← Stage A 전용
Sequences/SubSequence/StageB/SeqXxx.cs  ← Stage B 전용 (StageA와 대칭)

ID 등록

  • 새 시퀀스/디바이스/레시피/뷰 추가 시 반드시 EquipDef.cs의 해당 ID 클래스에 상수를 먼저 등록한다.

5. 디바이스 추가 규칙

  1. EquipDef.cs → DeviceIds 상수 추가
  2. EquipmentSetup.cs → 디바이스 인스턴스 생성 및 이벤트 구독
  3. EquipmentSetup.cs → BuildMainStatusView()에 상태 항목 추가
  4. 필요 시 AuroraDevices/ 하위에 새 디바이스 프로젝트 생성

6. 주석 작성

  • 한글 주석 사용 권장 (팀 내부 프로젝트)
  • 주석에 한글이 포함되는 파일은 인코딩 규칙(섹션 1) 필수 적용
  • 복잡한 시퀀스 흐름은 단계별 번호 주석 사용:
    // 1. 로드 완료 대기
    // 2. 높이 측정
    // 3. 용접 위치 이동
    // 4. 용접 실행
    

7. 빠른 참조

작업 규칙
새 C# 파일 생성 UTF-8 BOM + CRLF 적용 필수
새 시퀀스 추가 EquipDef.cs ID 등록 → 파일 생성 → StageA/B 대칭
새 디바이스 추가 EquipDef.cs → EquipmentSetup.cs → BuildMainStatusView
한글 포함 수정 수정 후 BOM/CRLF 검증