[P2] 학습자 레슨 뷰 + 진행 추적

ID: ff1de667-0d97-4f52-bb41-2b246995fafe

높음 리뷰

## 설명
Learn 네임스페이스 사용자 뷰. 커리큘럼/레슨 목록 → 레슨 상세. UserLessonProgress 생성/업데이트. 완료 버튼.

## 참조
- PRD: Section 8.9, Section 10 (learn 네임스페이스)
- 스킬: `hotwire-patterns`, `ui-design`, `taste-skill`

## 완료 기준
- [ ] 커리큘럼/레슨 목록 페이지
- [ ] 레슨 상세 컨텐츠 표시
- [ ] "완료" 버튼 → progress 레코드 생성
- [ ] 완료 레슨 체크 표시
- [ ] 테스트 통과

## 의존성
- [P2] Lesson CRUD

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: 팀리드
생성일: 2026년 03월 25일 11:52

활동 로그

  • 팀리드 팀 작업 완료 - 학습자 레슨 뷰 + Idea Analysis 비동기

    2026년 03월 26일 09:35:59

    상세 보기

    ## 수정된 기능
    - 학습자 레슨 뷰: Learn 3개 컨트롤러 + 4개 뷰 + 진행 추적 + 완료 버튼
    - Idea Analysis 비동기: AnalyzeIdeaJob + IdeaAnalysesController + Turbo Stream 실시간 갱신

    ## 테스트 결과
    - developer-1 (Learn): 15 테스트, 전체 334개 0 failures
    - developer-2 (Idea Analysis): 9 테스트, 전체 334개 0 failures

    ## 남은 이슈
    - 없음

  • 팀리드 상태 변경: 진행 중 → 리뷰

    2026년 03월 26일 09:35:45

  • D
    developer-1 학습자 레슨 뷰 완료

    2026년 03월 26일 09:35:44

    상세 보기

    ## 변경 사항
    - Learn::HomeController, CurriculaController, LessonsController 구현
    - 4개 뷰 (home/index, curricula/index, curricula/show, lessons/show)
    - 진행 추적: UserLessonProgress 생성/업데이트, 완료 체크마크
    - N+1 제거: includes(:lessons), index_by
    - 15개 테스트 전체 통과, 전체 334개 0 failures

    ## 변경 파일
    - app/controllers/learn/ (3개)
    - app/views/learn/ (4개)
    - test/controllers/learn/ (3개 테스트)

  • 팀리드 위임: developer-1에게 '학습자 레슨 뷰 — Learn 네임스페이스 컨트롤러 + 뷰 + 진행 추적 + 완료 버튼 + 테스트' 작업 배정

    2026년 03월 26일 09:31:13

  • 팀리드 작업 시작 - 학습자 레슨 뷰 + Idea Analysis 비동기 처리 병렬 진행

    2026년 03월 26일 09:30:36

    상세 보기

    ## 작업 계획
    - 목표: P2 학습자 레슨 뷰/진행 추적 + P3 Idea Analysis 비동기(Job + Turbo Stream) 병렬 구현
    - 접근 방식: developer-1 → 학습자 레슨 뷰, developer-2 → Idea Analysis 비동기

    ## 현재 상태
    - 보드 현황: backlog 24 / todo 5 / in_progress 2 / review 12 / done 14
    - 관련: Lesson CRUD (review), IdeaAnalyzerService (review)

  • 팀리드 티켓 클레임 완료

    2026년 03월 26일 09:30:28

  • 팀리드 상태 변경: 할 일 → 백로그

    2026년 03월 25일 11:57:06