ilhae.ai한양대 기계공학부 · Claude Code 특강
1회차 과제 · 11월 7일(토) 22:00 마감

1회차 과제 안내 — 내 데이터에 한 번 통과시켜 오기

Claude Code 자동화 에이전트 교육 · 한양대학교 기계공학부 대학원

항목 내용
마감 2026-11-07(토) 22:00
분량 60분이 넘으면 멈추십시오. 회차 간격이 1주라 이 이상은 요구하지 않습니다. 멈춘 자리가 곧 제출물 ①입니다
최소 제출선 ① 막힌 장면 하나만 내도 제출로 인정합니다. ②·③은 선택입니다
제출 hthp.ilhae.ai → 제출 (제출 폼에서 공개 동의 여부를 고릅니다. 5절)
문의 jaewoo@ilhae.ai · 질문은 hthp.ilhae.ai → Q&A 또는 제출 폼의 질문란으로

막힌 장면이 가장 좋은 제출물입니다. 끝까지 성공하지 못해도 괜찮습니다. 제출된 막힌 장면이 11/9 2회차 C1 클리닉의 재료가 됩니다. 강사가 일요일에 사례를 분류해 클리닉을 준비하므로 마감을 토요일로 두었습니다.


0. 출발점 맞추기 — /analyze-run이 없다면

과제는 1회차 A5에서 만든 /analyze-run에서 출발합니다. 프롬프트 박스에 /를 쳤을 때 목록에 analyze-run이 없거나 A1~A5 중 끝내지 못한 모듈이 있으면 배포 페이지의 cp-A5.zip(= d1-done.zip, 내용이 같습니다)을 받아 실습 폴더에 덮어쓰고 시작합니다. 레퍼런스 스크립트(인자형) · out · figures · CLAUDE.md · .claude(settings.json, skills\analyze-run)가 들어 있습니다.

TERMINAL · PowerShell (다운로드 폴더에 받았다고 가정)

Copy-Item -Path C:\hthp-lab -Destination C:\hthp-lab-mine -Recurse
Expand-Archive -Path "$HOME\Downloads\cp-A5.zip" -DestinationPath C:\hthp-lab -Force
  • 첫 줄은 지금까지 만든 내 파일을 C:\hthp-lab-mine에 보관합니다. 둘째 줄이 덮어쓰기입니다.
  • 끝나면 VS Code에서 C:\hthp-lab을 다시 열고 Claude 패널에서 새 대화를 엽니다. 그래도 analyze-run이 목록에 없으면 /reload-skills를 입력하고 그래도 없으면 새 대화를 한 번 더 엽니다.
  • 받은 스크립트는 레퍼런스입니다. 내 것과 무엇이 다른지 Claude에게 비교시켜 보면 그것도 공부가 됩니다.

첫 단계 — 처음 보는 로그에 /analyze-run 돌려 보기 (10분)

1회차 A5 STEP 2에서 강사가 보여 드린 장면을 직접 해 봅니다. 권한 모드를 Edit automatically로 바꾸고 입력합니다.

PROMPT · Claude에게 그대로 입력

/analyze-run data/hthp_run_log_b.csv
  • 이 파일에는 처음 보는 컬럼 이름이 하나 있습니다. Claude가 추측해서 넘어가는지, CLAUDE.md의 [질문] 규칙대로 여러분에게 묻는지 지켜봅니다. 물으면 어떤 컬럼인지 여러분이 값 범위를 보고 판단해 답합니다.
  • 완료 기준: out/hthp_run_log_b/ 에 run_gated.csv · fig2_cop.pdf · summary.csv가 생기면 성공입니다.
  • Edit automatically에서는 파일 수정 승인이 사라지고 py 실행 같은 명령만 묻습니다. .claude 폴더 파일은 이 모드에서도 묻습니다.

/analyze-run이 하는 일 (범위)

/analyze-run은 히트펌프 운전 로그 전용입니다. 순서는 컬럼·단위 점검 → 전처리(삭제 대신 flag) → 게이트 ①② → Figure 2(COP 산점도) → 요약표입니다. 게이트③(핀치)과 Figure 1은 가스냉각기 분포 파일이 따로 있어야 하므로 이 스킬에 들어 있지 않습니다. 그래서 축열조·가스냉각기 데이터(4절 대체 과제)는 /analyze-run으로 돌리지 않고 4절 프롬프트를 씁니다.

게이트 ①②의 기준은 1회차와 같습니다.

게이트 판정식
① 에너지 수지 |Q_water − Q_ref| / Q_water < 3 % (계측 불확도로 정한 허용치. 근거 없이 바꾸지 않습니다)
② 카르노 기준 (간이 상한) COP ≤ T_h / (T_h − T_c), 온도는 K. T_h = 물 출구, T_c = 열원수 입구

1. 시작 전에 — 실데이터 3단계

내 연구 데이터를 쓴다면 아래 세 단계를 먼저 거칩니다. 하나라도 확인이 안 되면 대체 데이터로 합니다. 불이익은 없습니다.

  1. 규정 확인 — 지도교수·과제 책임자에게 외부 AI 서비스에 이 데이터를 넣어도 되는지 묻습니다. 산학과제는 협약서의 보안 조항이 기준입니다.
  2. 줄이고 가리기 — 공개 가능한 구간만 쓰거나, 컬럼명·장비명·고객사·날짜를 바꾼 익명화본을 만듭니다. 물리량의 단위와 크기는 그대로 둡니다. 익명화를 Claude에게 통째로 맡기면 원본이 전송됩니다. Python을 쓰지 않는 분은 Claude에게 컬럼 이름만 알려 주고 "파일은 열지 말고 익명화 스크립트만 써 줘"라고 한 뒤, 실행은 내가 터미널에서 직접 합니다. 이때 전송되는 것은 컬럼 이름뿐입니다.
  3. 원본은 밖에 — 미공개 원본은 작업 폴더(C:\hthp-lab 등) 밖에 둡니다. 꼭 안에 둬야 하면 1회차 A4의 deny 규칙을 겁니다.
  • 실데이터 파일은 VS Code 편집기에서 열거나 드래그하지 않습니다. 편집기에서 선택한 텍스트와 열린 파일 이름도 Claude에게 전달됩니다.
  • /bug·/feedback으로 보낸 대화는 '모델 개선' 설정과 관계없이 5년, '세션 기록 공유' 설문에 Yes를 누르면 최대 6개월 보관됩니다. 실데이터 작업 중에는 누르지 않습니다.

2. 내 상황에 맞는 길 고르기

내 상황 이렇게 합니다
내 데이터를 쓸 수 있음 /analyze-run 또는 단계별 프롬프트(3.1)로 처리합니다. 게이트는 아래 '내 데이터의 게이트 찾기' 세 질문으로 정합니다
일부만 쓸 수 있음 · 규정상 어려움 공개 가능한 구간만, 또는 컬럼명·장비명·날짜를 바꾼 익명화본으로 합니다 (규정 확인 먼저)
아직 쓸 데이터가 없음 대체 과제 A(pcm_cascade.csv) 또는 B(gascooler_profile_v2.csv). /analyze-run이 아니라 4절 프롬프트를 그대로 씁니다

내 데이터의 게이트 찾기 — 세 질문

히트펌프가 아니어도, 시뮬레이션만 다뤄도 같은 방법으로 게이트를 정합니다.

질문 예
① 보존되는 양은? (에너지·질량·전하) 해석 결과 → 고온측 열량 = 저온측 열량
② 넘을 수 없는 한계는? (카르노, 측정 범위, 0 이상) 배터리 → 충전량 ≤ 정격 용량, 두께·농도 → 0 이상
③ 순서·부호가 정해진 것은? (시간 증가, 온도차 부호) 착상 실험 → 착상량은 줄지 않음, 열교환기 → 고온 유체 > 저온 유체

세 질문의 답을 3.1의 프롬프트 3)에 그대로 붙여 "이 세 가지로 게이트 후보를 제안해"라고 해도 됩니다.

3. 진행 순서 — 5줄만 보면 됩니다

  1. 폴더를 VS Code로 열고 Claude 패널 띄우기 — 처음엔 Manual 모드
  2. /plan 으로 계획을 받고, 코멘트로 고친 뒤 승인
  3. diff를 읽고 승인. 결과는 전후 비교표로 확인
  4. 게이트로 물리 검증. 탈락은 지우지 않고 플래그
  5. CLAUDE.md와 /analyze-run 으로 굳히기

3.1 내 데이터 — 첫 프롬프트 예시

내 데이터 폴더를 따로 만들었다면 그 폴더에 1회차 CLAUDE.md와 .claude 폴더(또는 cp-A5.zip 내용)를 복사해 두고 시작합니다.

@[내 파일 경로] 는 우리 장치의 [실험 이름] 데이터야.
1) 앞 30줄을 그대로 보여 주고 파일 구조(헤더, 구분자, 인코딩)부터 설명해
2) 컬럼마다 추정 의미와 단위를 표로. 값 범위로 단위를 추정하고, 확실하지 않으면 [질문]으로 표시해
3) 아직 코드는 고치지 말고, 이 데이터에 맞는 게이트 후보를 제안해. 결정은 내가 할게

그다음 /plan 으로 전처리 → 게이트 → 그림 순서의 계획을 받습니다. 형식이 1회차 운전 로그와 같다면 바로 /analyze-run [내 파일 경로] 를 실행해도 됩니다.

4. 대체 과제 — 둘 중 하나

대체 과제 A · pcm_cascade.csv — 충전 완료 시각과 열전대 이상 탐지

데이터 3단 PCM 축열조 48시간 운전(1분 간격, 2,880행). 0–24 h 충전, 24–48 h 방전. 컬럼: time_min, mode(charge/discharge), T_htf_in_C, T_htf_out_C, m_htf_kgs, TC1_C~TC5_C. 열매체(HTF)는 물(비열 4.19 kJ/(kg·K))

단 PCM 녹는점 열전대
1단 58 °C TC1, TC2
2단 48 °C TC3
3단 38 °C TC4, TC5

PROMPT · Claude에게 그대로 입력

@data/pcm_cascade.csv 는 3단 PCM 축열조의 충·방전 로그야. PCM 녹는점은 1단 58 °C(TC1·TC2), 2단 48 °C(TC3), 3단 38 °C(TC4·TC5). HTF는 물이고 비열은 4.19 kJ/(kg·K)로 계산해.
1) 충전 완료 시각의 정의를 2가지 제안하고, 단별 충전 완료 시각을 표로. 정의는 내가 고를게
2) 열전대별로 결측·스파이크·드리프트를 찾는 검사를 만들어 돌리고, 이상이 의심되는 열전대와 근거를 표로
3) 열매체(HTF) 측 누적 열량을 충전·방전 구간별로 계산해 비교하고, 시작과 끝의 축열조 온도 차이도 함께 표로
4) 단별 온도 이력 그림 → figures/fig_pcm.pdf, 1회차 그림 규격(폭 90 mm, Arial 8 pt, 흑백 구분)으로
5) 코드는 scripts/pcm_analysis.py 하나로

검증 포인트

힌트: 충전과 방전의 누적 열량은 정확히 같지 않아도 됩니다. 시작할 때와 끝날 때 축열조 온도가 다르면 그 온도 차이만큼의 현열이 더 나오거나 덜 나옵니다. 그래서 손실이 있어도 방전 열량이 충전보다 조금 크게 나올 수 있습니다. 방전이 더 크다는 것만으로 에너지 보존 위반이라고 판단하지 말고 3)의 시작·끝 온도 차이로 설명이 되는지 먼저 봅니다.

대체 과제 B · gascooler_profile_v2.csv — 게이트③ 적용, 범위 점검, Figure 1 재현

데이터 1회차 gascooler_profile.csv와 같은 구성(op_id, node, x_norm, T_ref_C, T_w_C, …)의 다른 운전점 40개

PROMPT · Claude에게 그대로 입력

@data/gascooler_profile_v2.csv 는 1회차 gascooler_profile.csv와 같은 구성의 다른 운전점 세트야.
1) 1회차 gates.py의 게이트③(핀치 ΔT > 0)을 적용하고, 결과를 운전점별 표로. 탈락 운전점은 지우지 말고 사유와 함께
2) 운전점별 냉매·물 온도(T_ref_C, T_w_C)의 최솟값·최댓값 표를 만들고, °C로 말이 되는지 운전점마다 판정해. 이상해 보이는 운전점은 근거와 함께 표시만 하고 고치지는 마
3) 1)과 2)의 결과를 나란히 놓고, 게이트③과 범위 점검이 서로 다른 결론을 낸 운전점이 있는지 알려 줘
4) 게이트③과 범위 점검을 모두 통과한 운전점 중 3개(K로 기록됐다가 고친 운전점 1개 포함)로 scripts/fig1_profile.py 와 같은 규격의 Figure 1을 다시 그려 → figures/fig1_profile_v2.pdf
5) 다른 건 바꾸지 마

검증 포인트

5. 제출물

제출물 내용 형식
① 막힌 장면 1개 (필수) 막힌 화면의 캡처 + 그때 입력한 프롬프트나 명령 + 입력 파일 경로 이미지 + 텍스트
② 성공한 결과 1개 (선택) 게이트를 통과한 그림 또는 표 PDF·PNG 또는 CSV·표 캡처
③ 규칙 한 줄 (선택) 과제 중 CLAUDE.md에 새로 추가한 규칙 텍스트 한 줄
  • ①에 입력 파일 경로 / 그때 넣은 프롬프트나 명령 / 오류 메시지나 이상한 결과 세 가지가 있으면 2회차 클리닉에서 바로 재현할 수 있습니다.
  • 막힌 장면이 없다면 "가장 불안했던 결과"를 ①로 냅니다.
  • 실데이터가 찍힌 화면은 수치·컬럼명이 보이지 않게 가리거나, 익명화본에서 다시 캡처합니다.

공개 동의 (제출 폼에서 하나를 고릅니다)

선택 2회차 C1에서 이렇게 다룹니다
화면 공개 동의 이름은 밝히지 않고, 강사가 실데이터 수치·컬럼명·장비명을 가린 뒤 화면에 띄웁니다
수치를 가린 사본으로만 동의 강사가 컬럼명을 바꾸고 수치 스케일을 바꾼 사본을 만들어 그 사본으로만 보여 줍니다
비공개 강사만 보고, 수업에서는 같은 유형의 다른 사례로 다룹니다

동의하지 않아도 불이익은 없습니다.

6. 막히면

증상 바로 해 볼 것
analyze-run이 목록에 없음 /reload-skills 입력, 그래도 없으면 새 대화. 그래도 없으면 0절의 cp-A5.zip
파일을 못 읽음 "앞 30줄을 그대로 보여 주고 구조부터 설명해"
단위가 이상함 "각 컬럼 값 범위로 단위를 추정하고 근거를 적어"
게이트가 거의 다 걸림 "게이트별 탈락 행 10개를 보여 주고, 기준은 바꾸지 마"
같은 수정을 반복 되감기로 되돌린 뒤 /plan 으로 계획부터
사용량 한도 경고 /usage 확인. 남은 단계는 막힌 장면으로 제출
60분이 지남 거기서 멈추고, 지금 화면을 ①로 제출

막힌 상태 그대로 제출해도 됩니다. 그것이 이 과제의 목적입니다.