[260728 21일차] 프로젝트 #2

2026. 7. 28. 16:38AI 기반 프론트엔드 웹개발자 양성과정

# 포트폴리오 학습일지

[프로젝트 2일차] 주제 선정 · 회의록 시스템 미션
Git 전략 · 하네스 엔지니어링

2026.07.28 · 오전·오후 팀 회의 (주제 확정 → 협업 규칙·운영 방식 결정)

📋 오늘 다룬 것들

오늘은 프로젝트 주제를 확정하고, 그걸 어떻게 굴릴지 운영 방식까지 못 박은 날이었다. 오전엔 팀원 각자가 준비해 온 기획을 소개·투표해 주제를 골랐고, 오후엔 확정된 주제와 함께 주간 미션(회의록 시스템), Git 브랜치 전략, 그리고 프로젝트 운영에 하네스 엔지니어링을 도입하기로 했다. "무엇을 만들지"에서 "어떻게 같이 만들지"로 넘어가는 단계였다.

주제 선정
기획 4개투표
확정 주제
실시간 피드백 모니터링
주간 미션
회의록 시스템플러그인Notion MCP
Git 전략
main/devfeature/**PR 보호
운영
하네스 엔지니어링
기타
API 계약서issue-log 연동

🗳 오전 회의 — 주제 선정

안건은 "주제 선정을 위한 팀원별 기획 소개". 각자 준비한 기획을 발표하고, 서로의 기획을 상세히 검토한 뒤 투표하기로 했다.

제안자기획 주제
팀원 A실시간 이벤트 피드백 모니터링 서비스
팀원 B실시간 협업 여행 계획 서비스
팀장반려동물 동반 여행 가이드 서비스
AI 기반 감정 일기장 서비스

오전 액션 아이템

1검토·투표오전 11:30까지 다른 팀원 기획을 상세 검토 후 투표
2Claude 검토전체 기획 문서를 Claude에 전달 → "4주·4명" 팀 상황에 맞게 구현 가능한 주제인지 검토 요청
3API 계약서주제 선정 후, 생성형 모델 API 호출 계약서용 범주 설정
API 계약서 범주 — 생성형 모델을 쓴다면 사용처 · 예상 월 금액 · 과금 책임 여부를 정해 계약서(제약서)에 담아야 한다. 주제를 고를 때 "AI를 어디에·얼마나 쓰는가"를 함께 따져야 한다는 점이 인상적이었다.

✅ 오후 회의 — 주제 확정

참석자 전원. 오전 검토·투표 결과, 주제는 「실시간 피드백 모니터링 서비스」(팀원 A 제안)로 확정됐다.

주제 확정 — 실시간 피드백 모니터링 서비스. 4주·4명이라는 팀 상황과 구현 가능성을 함께 고려한 결과였다.

🧾 주간 미션 — 회의록 시스템

이번 주 미션은 "회의록 시스템". raw 회의록 마크다운을 넣으면 정해진 서식으로 정리해 주는 도구를 직접 만든다.

1정리raw 회의록 .md를 전달하면 정해진 서식에 맞게 섹션 분리·정리
2자동 작성Notion MCP 연결로 팀스페이스 '회의록' 섹션에 페이지 자동 생성
3액션 아이템회의록의 액션 아이템을 '액션 아이템' 섹션에 자동 추가
4형식Claude Code에서 쓰는 플러그인 방식
왜 플러그인 방식인가 — ① 도구 최소화(Notion 팀스페이스로 관리 플랫폼 통합), ② 배포·사용 편의(GitHub repo로 배포, 몇 줄 명령어로 설치). 며칠 전 배운 플러그인·MCP가 바로 팀 도구로 이어졌다.
기한 — 팀장이 7/29(수) 15:00까지 회의록 플러그인 기획서를 작성·제출한다.

🌿 Github Repo & 브랜치 전략

1직접 권한Organization Repo에서 fork 없이, 각 멤버에게 쓰기 권한 부여 → 같은 repo에 직접 접근
2브랜치 보호main·dev에 바로 병합 못 하게 보호 장치 필요 (Claude로 방안 확인·검토 예정)
3브랜치 전략main·dev 기본 + feature/**·refactor/** 를 만들어 PR/커밋
4issue-logissue-log 플러그인과의 연동 고려
# 브랜치 전략
main      # 안정 버전
 └ dev    # 통합 개발
    ├ feature/**    # 기능 개발
    └ refactor/**   # 리팩토링
# main·dev 직접 병합 금지 → PR로만
PR 메시지에 하네스 엔지니어링 적용 — Claude와 함께 구현한 코드 중 "이해가 잘 안 된 부분"도 PR에 명시하기로 했다. AI가 짠 코드를 그냥 넘기지 않고, 모르는 곳을 드러내 팀이 함께 검토하는 안전장치 — 하네스의 감각을 협업 규칙으로 옮긴 셈이다.

🔧 환경 설정 — 하네스 엔지니어링 도입

프로젝트 운영 자체에 하네스 엔지니어링을 도입하기로 했다. 각자 하네스에 추가할 환경설정 항목을 검색·조사해 오고, 오후 15:30에 다시 모여 어떤 항목을 넣을지 결정한다.

📌 결정 사항 · 액션 아이템

결정 사항
주제: 실시간 피드백 모니터링 서비스 선정
Repo: Organization Repo에서 fork 없이 멤버별 쓰기 권한 부여
브랜치 전략: main·dev + feature/**·refactor/**
PR 메시지에 이해 안 되는 부분 명시하는 하네스 엔지니어링 적용
프로젝트 운영에 하네스 엔지니어링 도입
팀장회의록 플러그인 기획서 작성·제출 — 기한 2026-07-29
전원main·dev 병합 보호 장치 방안 확인·검토 (Claude 활용)
전원하네스 환경설정 항목 검색·조사 — 기한 2026-07-28

🧑‍💻 오늘의 코드 리뷰 — label vs p (HTML 1일차)

7/28부터 매일 코드 리뷰가 시작됐다. 첫 주제는 "입력칸의 이름표는 <p>가 아니라 <label>로 붙인다". 겉으론 멀쩡한 회원가입 폼인데, "아이디" 글자를 눌러도 입력칸에 커서가 안 들어가는 게 문제였다.

❌ 문제 코드 (전체)

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>회원가입</title>
</head>
<body>
  <h1>회원가입</h1>

  <form action="/signup" method="post">
    <p>아이디</p>              <!-- ❌ 이름표를 p 로 -->
    <input type="text" id="userId" name="userId" required>

    <p>비밀번호</p>            <!-- ❌ 여기도 p -->
    <input type="password" id="userPw" name="userPw" required>

    <button type="submit">가입하기</button>
  </form>
</body>
</html>

✅ 정답 (수정 부분)

<!-- p → label 로, for 의 값은 input 의 id 와 같게 -->
<label for="userId">아이디</label>
<input type="text" id="userId" name="userId" required>

<label for="userPw">비밀번호</label>
<input type="password" id="userPw" name="userPw" required>
<!-- for 의 값 = input 의 id (한 글자만 달라도 안 묶임) -->
왜 label이어야 하나labelfor를 쓰면 브라우저가 그 입력칸과 한 쌍으로 묶어준다. 그래서 ① 글자를 클릭하면 입력칸에 커서가 들어가고, ② 스크린리더가 "아이디, 입력"처럼 무슨 칸인지 읽어준다. for에 적는 값이 곧 입력칸의 id라, id가 필요했던 것.

확인 방법

방법문제(p)정답(label)
글자 클릭아무 일 없음입력칸에 커서 들어옴
Console document.querySelector('#userId').labels.length0 (연결된 이름표 없음)1 (이름표와 묶임)
F12 → Accessibility → Name비어 있음"아이디"
실무에선 이렇게 터진다 — 화면이 멀쩡해 보여 끝까지 발견 안 됨. 모바일에선 label이 묶여 있어야 글자 영역까지 눌러 커서를 넣을 수 있어 오탭이 준다. 스크린리더 사용자에겐 이름 없는 칸이 되어 가입 자체가 막힌다. 입력칸을 만들 때마다 label을 같이 쓰는 습관이 필요.
같이 자주 틀리는 것 — ① placeholder로 이름표를 대신하기(입력하면 사라져 무슨 칸인지 모름 → label 대체 불가), ② forname 값 적기(forid를 가리킨다, name 아님).

✍️ 마치며

주제를 정하는 것보다 인상 깊었던 건, "AI로 짠 코드를 어떻게 우리 것으로 만드느냐"를 규칙으로 못 박은 부분이었다. PR에 이해 안 된 부분을 일부러 적는 하네스 방식은, 며칠 전 배운 개념이 실제 팀 워크플로로 살아나는 순간이라 반가웠다. 회의록 시스템 미션도 결국 우리가 배운 플러그인·MCP를 팀 도구로 만드는 일이라, 배운 게 곧바로 쓰인다는 게 좋았다. 내일은 각자 하네스 항목을 들고 와 운영 규칙을 확정한다 — 판이 점점 갖춰지고 있다.

🏷️ 포트폴리오  |  팀 프로젝트  |  주제선정  |  Git 전략  |  하네스 엔지니어링  |  회의록