SpeedGogo
@ich0103
Số lượng đánh giá đã viết
3
Xếp hạng trung bình
5.0
Bài viết
Hỏi & Đáp
실습 파일 문의
# CLAUDE.md — 실습 시작 템플릿 > 이 파일을 프로젝트 루트에 `CLAUDE.md`로 복사하여 사용하세요. > 각 실습 단계마다 해당 섹션의 주석을 제거하여 원칙을 활성화합니다. --- ## 원칙 1: 코딩하기 전에 먼저 생각하라 구문 삭제) --> 코드를 작성하기 전에 반드시 추론을 먼저 드러내야 한다. - 요청을 받으면 "이 요청은 ~라고 이해했습니다"라고 먼저 밝힌다 - 여러 해석이 가능한 경우, 조용히 하나를 선택하지 말고 옵션을 제시하고 확인받는다 - 더 단순한 접근이 있다면 구현 전에 먼저 제안한다 - 불분명한 부분이 있으면 잘못된 방향으로 달리는 대신 그 자리에서 질문한다 --- ## 원칙 2: 단순함이 최우선이다 문제를 해결하는 데 필요한 최소한의 코드만 작성한다. 다음은 명시적 요청 없이 절대 추가하지 않는다: - 요청 범위 밖의 추가 기능 - 한 번만 쓰이는 코드에 인터페이스·추상 클래스·베이스 클래스 - "나중에 필요할 수도 있으니까"라는 이유로 추가되는 유연성·설정값 - 실제로 발생하지 않는 시나리오의 방어적 에러 처리 코드를 더 적게 쓸 수 있다면, 더 적게 써라. 경험 많은 개발자가 "이거 너무 복잡한데?"라고 할 것 같다면 단순화하라. --- ## 원칙 3: 꼭 필요한 것만 건드려라 변경된 모든 줄은 사용자의 요청과 직접 연결되어야 한다. **기존 코드 편집 시:** - 요청한 부분만 정밀하게 수정한다 - 기존 코드 스타일을 그대로 유지한다 (내 취향과 달라도) - 인접 코드·주석·포맷은 건드리지 않는다 - 멀쩡히 동작하는 코드는 리팩토링하지 않는다 - 관련 없는 레거시 코드를 발견하면 삭제하지 말고 언급만 한다 **고아 코드 처리:** - 내 변경으로 생긴 불필요한 import는 내가 제거한다 - 내 수정 때문에 더 이상 쓰이지 않게 된 함수는 내가 삭제한다 - 원래부터 있던 미사용 코드는 요청 없이 삭제하지 않는다 --- ## 원칙 4: 성공 기준을 정의하고 그때까지 반복하라 "어떻게"가 아니라 "무엇이 달성되어야 하는가"를 제시한다. 예시: - ❌ "버그 수정해줘" → ✅ "문제를 재현하는 테스트를 작성하고, 그 테스트가 통과하도록 수정해줘" - ❌ "유효성 검사 추가해줘" → ✅ "잘못된 입력에 대한 테스트를 작성하고, 그 테스트가 통과하도록 만들어줘" - ❌ "리팩토링해줘" → ✅ "리팩토링 전후에 기존 테스트가 모두 통과해야 해" 멀티스텝 작업은 단계마다 완료 기준을 명시한다: 1. [단계 설명] → 검증: [완료 기준] 2. [단계 설명] → 검증: [완료 기준] --- ## 프로젝트 특화 설정 - **언어/프레임워크:** (예: Python 3.11 + FastAPI) - **테스트 도구:** (예: pytest) - **코드 스타일:** (예: Black 포맷터, 타입 힌트 필수) - **특별 규칙:** (예: DB 쿼리는 반드시 트랜잭션 내에서 실행)실습을 따라할수가 없습니다. 예를 들자면## 원칙 3: 꼭 필요한 것만 건드려라 변경된 모든 줄은 사용자의 요청과 직접 연결되어야 한다. **기존 코드 편집 시:** - 요청한 부분만 정밀하게 수정한다 - 기존 코드 스타일을 그대로 유지한다 (내 취향과 달라도) - 인접 코드·주석·포맷은 건드리지 않는다 - 멀쩡히 동작하는 코드는 리팩토링하지 않는다 - 관련 없는 레거시 코드를 발견하면 삭제하지 말고 언급만 한다 **고아 코드 처리:** - 내 변경으로 생긴 불필요한 import는 내가 제거한다 - 내 수정 때문에 더 이상 쓰이지 않게 된 함수는 내가 삭제한다 - 원래부터 있던 미사용 코드는 요청 없이 삭제하지 않는다 ---에서 아래 내용을 제거해본들 무슨 의미가 있는것일까요? 그렇다고 실습3에 가보면 주석은 없습니다. # 실습 3: 최소 개입 (원칙 3) > **목표:** 요청 범위 밖에서 변경된 코드가 없는지 확인하고, "변경된 줄 테스트"를 수행한다. --- ## 사전 준비 1. `sample-project/` 디렉토리에서 git을 초기화한다: ```bash git init git add . git commit -m "initial" ``` 2. 이제 모든 변경사항을 `git diff`로 추적할 수 있다. --- ## 시나리오 A — 범위 초과 수정 관찰 **원칙 3 없이** Claude에게 요청하세요: ``` app.py에서 get_user 함수의 반환값을 딕셔너리 대신 User 객체로 바꿔줘 ``` 요청 후 즉시 diff를 확인하세요: ```bash git diff ``` **"변경된 줄 테스트" 수행:** diff에서 변경된 줄을 하나씩 보면서 각 줄에 대해 묻는다: > "이 줄의 변경이 내 요청(get_user 반환값 변경)과 직접 연결되는가?" ``` 연결되는 변경: ✅ _______________________________________________ ✅ _______________________________________________ 연결되지 않는 변경 (범위 초과): ❌ _______________________________________________ ❌ _______________________________________________ ❌ _______________________________________________ ``` 연결되지 않는 변경의 종류를 분류하세요: ``` [ ] 포맷/들여쓰기 변경 [ ] 주석 추가/수정 [ ] 인접 함수 리팩토링 [ ] import 추가 (요청과 무관한) [ ] 에러 처리 추가 [ ] 변수명 변경 (스타일 차이) [ ] 기타: _______________________________________________ ``` --- ## 시나리오 B — 고아 코드 처리 관찰 **원칙 3 없이** Claude에게 요청하세요: ``` app.py에서 format_response 함수를 제거해줘. 이 함수는 더 이상 사용되지 않아. ``` **관찰 포인트:** - Claude가 `format_response`만 삭제했는가? - 아니면 다른 "오래된" 코드도 같이 삭제했는가? - `format_response`를 호출하던 코드는 어떻게 처리했는가? ```bash git diff ``` ``` 기대한 변경: 1. format_response 함수 삭제 2. format_response를 호출하던 코드 처리 실제 변경된 항목 전체 목록: 1. _______________________________________________ 2. _______________________________________________ 3. _______________________________________________ 4. _______________________________________________ ``` --- ## 시나리오 C — 원칙 3 적용하기 1. `starter-claude.md`에서 **원칙 3** 섹션의 주석을 제거한다 2. CLAUDE.md에 저장한다 3. git을 리셋한다: ```bash git checkout . ``` 4. 시나리오 A와 B를 동일하게 다시 요청한다 **비교:** | 항목 | 원칙 3 없을 때 | 원칙 3 있을 때 | |-----|-------------|-------------| | 총 변경 줄 수 | | | | 요청과 무관한 변경 줄 수 | | | | 범위 초과 수정 종류 | | | --- ## 시나리오 D — 레거시 발견 시 행동 비교 `sample-project/utils.py`에는 사용되지 않는 `legacy_transform` 함수가 있다. **원칙 3 있는 상태에서 요청하세요:** ``` utils.py에서 transform_data 함수에 타입 힌트를 추가해줘 ``` **관찰:** ``` Claude가 legacy_transform에 대해: [ ] 요청 없이 삭제했다 (원칙 위반) [ ] 무시하고 요청한 것만 했다 [ ] 언급은 했지만 삭제하지는 않았다 (올바른 행동) ``` --- ## 심화: 드라이브바이 리팩토링 패턴 식별 여러분의 경험에서 AI가 가장 자주 "이왕이면" 하며 건드리는 것들은 무엇인가요? ``` 자주 범위를 초과하는 패턴: 1. _______________________________________________ 2. _______________________________________________ 이를 방지하기 위해 원칙 3에 추가할 문장: _______________________________________________ ``` --- ## 체크리스트 - [ ] git 초기화 및 최초 커밋 완료 - [ ] 원칙 3 없이 범위 초과 수정 관찰 완료 - [ ] 변경된 줄 테스트 수행 완료 - [ ] 원칙 3 적용 후 비교 완료 - [ ] 레거시 코드 처리 시나리오 관찰 완료 어떻게 하라는것인지 의미 파악이 안됩니다.
- Lượt thích
- 1
- Số bình luận
- 3
- Lượt xem
- 52
Hỏi & Đáp
소스 download
코드가 정상동작하지 않아 버전 문제인지 오타 문제인지 체크를 해봐야할것같은데 소스 코드 제공안되나요?
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 53
Hỏi & Đáp
vscode 환경설정 업데이트 부탁드립니다
Vscode 환경업데이트 설정 강좌 좀 해주세요 ^^
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 413
Hỏi & Đáp
kube-ops-view 노드가 안보이는 이유는 무엇일까요?
알려주신 것 토대로 체크한번해보겠습니다. 아하 특이하게 WSL에서 하는데 이건 아니겠죠? ㅋ 찾으면 답변달아놓을께요. ㅎㅎ 그런데 kubectl get serviceaccounts -n kube-system aws-load-balancer-controller -o yaml | yh 중에 yh는 무엇일까요? 이거 안만 뒤져봐도 안나오네요. 챗gpt도 몰라요. 알려주세요. ^^
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 608
Hỏi & Đáp
EMR 환경시 분산처리가능하게하는 conf 설정 문의
답변감사드립니다. ㅎㅎ
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 400
Hỏi & Đáp
word.txt 파일이 없습니다. 추가 부탁드립니다. ㅎ
선생님~ 노트북 자료는 어디서 받을수 있을까요? 수업중에 github 올려주신다고 들었던것같은데요. url 찾기가 어려운것같습니다.
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 524
Hỏi & Đáp
넘파이와 판다스 중 머신러닝이나 딥러닝할때 어느 것이 더 좋을까요?
네 감사합니다.^^
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 402
Hỏi & Đáp
Github 사용중 에러 발생
네 감사합니다. ^^. installer 다시 실행해보니 확인할 수 있었습니다.
- Lượt thích
- 2
- Số bình luận
- 2
- Lượt xem
- 821




