[조직문화 PR2] 서비스: 설문 생성/응답 제출/결과 집계

ID: 783a907f-422f-47cc-a9e0-d93813202b9e

높음 리뷰

## 설명
3개 서비스 객체 구현.

### EngagementSurveys::CreateService
- 워크스페이스 + 연도/분기로 설문 생성
- access_token 자동 발급 (SecureRandom.alphanumeric(8).upcase)
- 동일 워크스페이스+분기 중복 방지

### EngagementSurveys::SubmitResponseService
- 그룹 선택 + 10문항 응답을 DiagnosisSession으로 저장
- context_type = "b2b", workspace_engagement_survey_id, workspace_group_id 설정
- 로그인 사용자는 user_id 참고용 기록, 비로그인도 허용
- 기존 EngagementCalculator로 채점

### EngagementSurveys::ResultAggregator
- 전체/그룹별 집계 (3명 이하 그룹 결과 nil 반환)
- overall 점수 = 10번 문항 전체 평균
- 몰입 유형 비율 = 10번 문항 기준: 적극적(6,7) / 소극적(4,5) / 비몰입(1,2,3)
- 3요인 분석: psychological_safety, self_efficacy, flow_experience 평균
- 9요인 분석: 9개 dimension별 평균
- 강약점 해석 포함

## 완료 기준
- [ ] 각 서비스 단위 테스트 통과
- [ ] 3명 이하 그룹 비공개 로직 테스트
- [ ] 몰입 유형 비율 계산 정확성 테스트
- [ ] 기존 EngagementCalculator와 정상 연동 확인

## 의존성
PR1 완료 후

첨부 이미지

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

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

담당자: 팀리드
생성일: 2026년 03월 17일 07:43

활동 로그

  • 팀리드 팀 작업 완료 - [조직문화 PR2] 서비스 레이어

    2026년 03월 17일 08:21:16

    상세 보기

    ## 수정된 기능
    - CreateService: 설문 생성 + 중복 방지 + title 자동 생성
    - SubmitResponseService: DiagnosisSession 기반 응답 저장 + EngagementCalculator 채점
    - ResultAggregator: 전체/그룹별 집계, 3명 이하 필터링, 몰입 유형 비율, 3요인/9요인 분석, 강약점

    ## 생성 파일
    - `app/services/engagement_surveys/create_service.rb`
    - `app/services/engagement_surveys/submit_response_service.rb`
    - `app/services/engagement_surveys/result_aggregator.rb`
    - `test/services/engagement_surveys/create_service_test.rb`
    - `test/services/engagement_surveys/submit_response_service_test.rb`
    - `test/services/engagement_surveys/result_aggregator_test.rb`

    ## 기술적 결정
    - DiagnosisSession 재사용 (context_type="b2b", scoring_framework="engagement_3factor")
    - 기존 EngagementCalculator + ScoreCalculatorFactory 완전 재사용
    - Data.define Result 패턴 (기존 서비스 패턴 준수)
    - MINIMUM_RESPONSES=3 상수로 3명 이하 필터링

    ## 테스트: 17 runs, 59 assertions, 0 failures

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

    2026년 03월 17일 08:21:08

  • 팀리드 위임: developer-1에게 'EngagementSurveys 서비스 3개 TDD 구현' 작업 배정

    2026년 03월 17일 08:14:41

  • 팀리드 작업 시작 - [조직문화 PR2] 서비스 레이어

    2026년 03월 17일 08:14:12

    상세 보기

    ## 작업 계획
    - 목표: 3개 서비스 객체 구현 (CreateService, SubmitResponseService, ResultAggregator)
    - 접근 방식: developer-1이 TDD로 구현

    ## 핵심 로직
    - CreateService: 설문 생성 + 중복 방지
    - SubmitResponseService: DiagnosisSession으로 응답 저장 + EngagementCalculator 채점
    - ResultAggregator: 전체/그룹별 집계, 3명 이하 필터링, 몰입 유형 비율, 3요인/9요인 분석

  • 팀리드 티켓 클레임 완료

    2026년 03월 17일 08:14:02

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

    2026년 03월 17일 07:44:12