우리 회사가 회의록을 Jira에 자동화하는 방법
Source: Dev.to

솔직히 말해봅시다.
대부분의 Jira 티켓은 실제 의사결정이 어떻게 이루어지는지를 반영하지 못합니다.
깨끗해 보이고,
구조화돼 보이지만,
가장 중요한 실제 컨텍스트가 빠져 있습니다.
우리가 계속 무시해 온 문제
우리 회사에서는 회의—기술 토론, 트레이드‑오프, 아키텍처 고민, “이거 하면 X가 깨질 수도 있다” 같은 순간—에서 의사결정이 이루어졌습니다. 그런데 그 내용이 Jira에 전혀 반영되지 않았습니다.
우리 워크플로우는 다음과 같았습니다:
- 회의를 진행함
- 엔지니어가 구현 세부 사항을 논의함
- 프로덕트가 범위를 명확히 함
- 누군가 “티켓은 나중에 만들자”고 말함
“나중에”는 보통 다음을 의미했습니다:
- 애매한 티켓 제목
- 짧은 설명
- 코드베이스 컨텍스트 전무
- “리파인먼트 때 다시 명확히 하자”는 말이 많음
그래서 리파인먼트는:
- 회의를 다시 설명하기
- 결정을 다시 생각하기
- 논쟁을 다시 열기
스프린트 플래닝? 같은 이야기. 개발? 기대보다 느림.
사람들이 능력이 부족해서가 아니라, 회의가 끝나는 순간 컨텍스트가 사라졌기 때문이었습니다.
왜 수동 노트는 확장되지 못했는가
우리는 당연히 생각되는 해결책들을 시도했습니다:
- 누군가가 노트를 작성한다
- 누군가가 회의 후 요약한다
- 누군가가 그 내용을 Jira에 복사한다
그 “누군가”는 금방 번아웃했습니다.
회의에서 좋은 티켓을 작성하는 일은 실제 작업입니다:
- 기술적인 이해가 필요함
- 제품 컨텍스트가 필요함
- 회의 직후 시간이 필요함
솔직히 말해서, 사람에게 전사 서비스를 시키고 싶지는 않죠.
우리가 만든 것
사람 문제라고 착각하는 데 지쳤습니다. 시스템 문제였습니다.
그래서 저는 다음을 수행하는 솔루션을 만들었습니다:
- 회의를 청취한다
- 실제 결정과 액션 아이템을 추출한다
- 기술 토론을 이해한다
- 이를 적절한 Jira 티켓으로 변환한다
요약이 아니라. 단순한 불릿 포인트가 아니라. 컨텍스트가 담긴 실제 이슈.
변화된 점
이제 우리의 워크플로우는 이렇게 보입니다:
이 솔루션을 워크플로우에 통합한 뒤, 상황이 바뀌었습니다:
- 티켓에 무엇뿐 아니라 왜가 포함되기 시작함
- 리파인먼트 회의가 짧아짐
- 스프린트 플래닝이 이전 회의를 다시 재생하는 것이 아님
- 엔지니어가 “컨텍스트가 뭐였지?”라고 묻지 않게 됨
팀 전체적으로 다음이 감소했습니다:
- 개발 마찰
- 티켓 리파인먼트 시간
- 플래닝 오버헤드
예시: 전 vs. 후
Before (Manual Process)
Title: Add user authentication
Description: We discussed adding authentication in the meeting.
Acceptance Criteria:
- User can log in
- User can log out
After (Echother)
Title: Implement OAuth2 authentication flow using existing user service pattern
Description:
Based on the meeting discussion, we need to add OAuth2 authentication
following the pattern established in `services/user_service.py`. The
implementation should integrate with our existing JWT token system
(`utils/auth.py`) and use the same session management approach.
Technical Context:
- Reference implementation: `services/user_service.py:45-120`
- Auth utilities: `utils/auth.py:generate_jwt_token()`
- Database schema: `users` table (already exists)
- Dependencies: `pyjwt==2.8.0`, `python-jose[cryptography]`
Acceptance Criteria:
- [ ] OAuth2 flow matches pattern in `user_service.py`
- [ ] JWT tokens generated using existing `g
> **Source:** (원본 링크는 그대로 유지됩니다)
`generate_jwt_token()` 유틸리티
- [ ] 세션 관리는 현재 인증과 동일한 Redis 패턴을 따릅니다
- [ ] 통합 테스트가 OAuth2 콜백 흐름을 커버합니다
### 구현 작업
1. `user_service` 패턴을 따라 `services/oauth_service.py` 파일을 생성
2. `routers/auth.py`에 OAuth2 라우트를 추가
3. `utils/auth.py`를 업데이트하여 OAuth2 토큰 검증을 지원
4. `tests/test_oauth.py`에 테스트 추가
### 관련 파일
- 수정: `routers/auth.py`
- 생성: `services/oauth_service.py`
- 참고: `services/user_service.py`, `utils/auth.py`
**차이점?** **개발자가 바로 코딩을 시작할 수 있도록 실제적인 컨텍스트를 제공**
이전 방식들은 여전히 누군가가 지루한 작업을 해야 했습니다. 이 솔루션은 그 정신적 부담을 없앱니다.
### 최종 생각
회의가 문제도 아니고, Jira가 문제도 아닙니다.
두 사이의 격차가 문제입니다.
팀이 같은 대화를 두 번 반복한다면—한 번은 회의에서, 또 한 번은 Jira에서—숨은 생산성 비용을 지불하고 있는 겁니다. 우리는 그 비용을 없애기로 했습니다.
**직접 사용해 보세요** – 플랫폼은 무료로 체험할 수 있으며, 회의 내용이나 단순 텍스트 설명만으로도 티켓을 생성할 수 있습니다. 같은 컨텍스트 손실 문제에 직면해 있다면 많은 시간을 절약할 수 있을 것입니다.
```markdown
You those 10+ hours per week too. 

