[조직문화 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
서브 티켓 (0/1 완료)
활동 로그
-
팀팀리드 팀 작업 완료 - [조직문화 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