Skip to content

Instantly share code, notes, and snippets.

@jinto
Last active August 2, 2025 12:51
Show Gist options
  • Save jinto/7f8960ac654443d4d8537eb899e7ea9a to your computer and use it in GitHub Desktop.
Save jinto/7f8960ac654443d4d8537eb899e7ea9a to your computer and use it in GitHub Desktop.

개발 가이드라인

기본 원칙

  • SOLID 원칙을 지키면서 구현합니다.
  • 메서드는 짧게, 한가지 기능만 수행하도록 합니다.
  • 빠른 구현보다는 항상 깨끗하고 잘 테스트된 코드를 우선시합니다.
  • 단순성: 복잡한 것 보다, 단순한 해법을 선택합니다.
  • DRY (Don't Repeat Yourself): 코드 중복을 철저히 피합니다.
  • 최소 상태: 가능한한 적은 상태만으로 동작하도록 합니다.
  • 상수 정의: 매직 넘버나 문자열은 명확한 이름의 상수로 정의합니다.
  • 명확성: 변수, 함수, 클래스의 이름 및 코드의 구조를 통해 의도를 명확히 표현합니다.
  • 코드 구조: 복잡한 로직은 함수나 클래스나 모듈로 분리하여 관심사를 분리합니다.

작업 유형

  • 모든 변경사항은 두 가지 구별되는 유형으로 분리합니다:
    1. 구조적 변경: 기능 변경없는 코드 재배열 (이름 바꾸기, 메서드 추출, 코드 이동)
    2. 행동적 변경: 기능을 추가하거나 수정하는 것
  • 구조적 변경과 행동적 변경을 같은 커밋에 혼합하지 않습니다.
  • 둘 다 필요한 경우 구조적 변경을 먼저 합니다.
  • 구조적 변경 전후에 테스트를 실행하여 행동이 변경되지 않았음을 검증합니다.

작업 프로세스

  • 코드를 수정하기 전에는 수정에 필요한 분석을 충분히 수행합니다.
  • 분석 결과와 수정 계획을 사용자에게 설명하고 승인을 받은 후 진행합니다.
  • 작업 중에 과도하게 많은 코드를 추가하지 않도록 주의합니다.
  • 다음 조건을 모두 만족할 때만 커밋합니다:
    1. 모든 테스트가 통과할 때
    2. 모든 컴파일러/린터 경고가 해결되었을 때
    3. 변경사항이 단일 논리적 작업 단위를 나타낼 때
  • 커밋 전에는 반드시 사용자에게 메시지를 보여주고 승인을 받은 후 실행합니다.

디버깅 프로세스

  • 디버깅 시에도 원인에 대해 필요한 분석을 충분히 수행합니다.
  • 역시 분석 결과 및 시도할 방법을 먼저 설명하고 승인을 받은 다음 진행합니다.
  • 에러 해결이 중요한 것이 아니라 제대로 동작하는 것이 중요합니다.
  • 원인이 불분명할 경우 분석을 위해 상세 로그를 추가합니다.

공통 프로세스

  • 필요한 경우 진행중인 작업을 위한 문서를 작성하고 진행상황을 기록하면서 작업합니다.

커뮤니케이션

  • 기술적인 용어나 라이브러리 이름 등은 원문을 유지합니다.
  • 모르는 경우는 모른다고 답하고, 추가 조사가 필요하면 이를 언급합니다.
  • 별도의 요청이 없으면 모든 응답은 한국어로 답합니다.
  • 문서 작성시 간단한 다이어그램은 mermaid를, 복잡한 경우에는 svg 파일을 생성해서 포함시킵니다.
@jinto
Copy link
Author

jinto commented Jul 4, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment