TL;DR
- MyDef는 보일러플레이트를 배경 계층으로 옮기고 설계 세부 사항을 분리해, 코드의 의도를 명확히 하면서 기능별 맥락을 한곳에 모으는 전처리기임.
- MyDef에서는 입력 파일의 각 줄을 처리하고 줄 수와 단어 수를 세는 과정을 동료에게 설명하듯 상위 계층에 작성할 수 있음.
- 파일 열기와 반복 처리 같은 관례는 하위 계층에 한 번 정의하고, 필요한 페이지에서 호출하는 구조임.
- 템플릿으로 설계의 핵심 결정을 상위 계층에 두고, 변경 여부의 판단 방식이나 복사 위치 같은 세부 사항은 하위 계층에서 바꿀 수 있음.
- 기능별 설정과 처리, 보고 맥락을 모아 두므로 AI가 관련 정보를 찾기 쉽고, 기능 추가와 제거도 해당 서브코드와 호출을 수정하는 방식임.
MyDef를 쓰는 이유
- 좋은 프로그래밍 언어 앞에 왜 전처리기를 두는지 궁금하다면, MyDef를 사용하는 이유는 크게 세 가지임.
1. 깔끔한 코드
- 깔끔한 코드는 의도를 분명하고 직접적으로 드러내고, 각 맥락을 가까운 곳에 두며, 위에서 아래로 이어지는 계층적 흐름으로 구성됨.
- 프로그래밍 언어는 의미 전달과 무관하고 컴파일러를 만족시키기 위한 보일러플레이트를 요구함. 자연스럽지 않은 관례와 문법은 읽기 흐름을 끊고, 코드를 사람이 설명하기 편한 순서가 아니라 컴파일러가 요구하는 순서로 배치하게 함.
- MyDef는 보일러플레이트를 배경 계층으로 옮기고 자체 관례를 설정해, 사람이 설명하고 이해하는 방식으로 코드를 작성하게 함.
- 단어 세기 예시의 상위 페이지는 입력 파일의 각 줄에 대해 줄 수와 단어 수를 세고 결과를 보고하는 흐름을 호출하는 구성임.
- 파일을 열고 줄마다 반복하는 방법은 관례로서 배경에 한 번 작성하고 여러 페이지에서 사용할 수 있음.
each_line(path)서브코드는 초기화 블록에서sys를 가져오고 파일을 연 뒤 각 줄을 순회함.import sys는 필요한 코드 옆에 선언되며, MyDef가 이를 파이썬 출력물의 맨 위로 옮김.
2. 설계 우선 개발
- 실제 설계는 우선순위가 있고, 세부 사항이 다른 계층으로 새어 나가며, 모호함을 허용함. 설계는 가장 중요한 것을 정하고 나머지는 열어 둠.
- 프로그래밍은 모든 세부 사항을 명시하도록 요구하므로 설계를 코드로 직접 옮기면 각 계층에서 세부 사항을 채워야 함. 세부 사항은 설계 목표를 흐리고, 나중에는 설계를 뒷받침하는 대신 제약할 수 있음.
- MyDef는 템플릿으로 모호성을 허용하는 설계 수준의 코드를 작성하게 함. 중요한 결정은 상위 계층에, 세부 사항은 하위 계층에 놓임.
- 백업 예시의 상위 계층은 변경된 파일 찾기, 파일 복사, 결과 보고를 호출하는 설계임.
- 여기서 ‘변경됨’이 타임스탬프를 뜻하는지 체크섬을 뜻하는지, 복사 대상이 로컬 디스크인지 네트워크인지와 관계없이 상위 계층은 그대로 유지됨. 해당 선택은 하위 계층에 있으며 상위 계층을 건드리지 않고 바꿀 수 있음.
- MyDef는 설계 계층을 분리해 코드가 커져도 각 계층을 이해하기 쉬운 크기로 유지함.
3. AI 보조 소프트웨어 개발
- AI는 맥락을 바탕으로 작업함. 맥락이 불완전하면 환각을 일으키고, 맥락이 서로 충돌하면 실수함. 필요한 맥락을 찾고 모으는 데도 토큰의 대부분이 쓰임.
- MyDef는 하나의 설계 아이디어나 기능에 필요한 맥락을 한곳에 두고, 기능을 최소한의 복잡성으로 결합할 수 있도록 격리하는 것을 목표로 함.
- 단어 세기 예시에서 줄 수 세기와 단어 수 세기 기능은 각각 자체 초기화, 줄별 처리, 결과 보고를 갖는 서브코드로 구성됨.
- MyDef는 각 코드를 대상 언어가 요구하는 위치에 배치함. 출력된 파이썬 코드는
sys를 가져오고, 두 카운터를 초기화하며, 입력 파일을 순회해 줄 수와 단어 수를 센 뒤 결과를 출력하는 흐름임. - 문자 수 세기 같은 기능을 추가할 때는 새 서브코드 하나를 작성하고 호출 하나를 추가하면 됨. 파일의 서로 다른 세 위치를 편집할 필요가 없으며, 기능을 제거할 때는 같은 코드를 삭제하면 됨.
- 관련 맥락이 한곳에 있으면 AI가 더 나은 작업을 수행하고, 구성 요소를 깔끔하게 결합할 수 있으면 복잡성을 키우지 않고 기능을 만들 수 있음.
시작하기
- README: 설치 및 첫 번째 예시
- Manual: 문법 및 출력 모듈
ai_skills/: AI 코딩 도우미가 MyDef를 작성하도록 안내하는 스킬
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요