프로젝트 목록

알스솔루션

WBS 시스템 구축

Jira REST API 기반 데이터로 간트 차트·캘린더 뷰를 제공하는 사내 일정 관리 시스템. 드래그앤드롭·낙관적 업데이트·과거 시점 조회·Atlassian OAuth 통합

기간: 2026.01 - 2026.02역할: 프론트엔드 개발
ReactTypeScriptAtlassian OAuthJira REST API

주요 성과

  • 낙관적 업데이트

    드래그앤드롭 일정 편집에 낙관적 업데이트 적용으로 작업 처리 속도 개선

  • 과거 시점 조회

    Changelog 분석으로 과거 시점 조회·고스트 바 비교 기능 구현 (회고/이력 분석 지원)

  • URL로 공유하는 협업 환경

    Atlassian OAuth 연동 및 URL 상태 관리로 별도 저장 없이 공유 가능한 협업 환경 구축

  • Jira REST API 기반 데이터로 간트 차트·캘린더 뷰 설계·구현하여 일정 관리 가시성 향상
  • 팀/상태 기반 색상 시각화·다중 필터링으로 대규모 프로젝트 탐색 효율 최적화

설계 자세히 보기

Jira에 이미 있는 데이터를 다시 저장하지 않고, 보는 방식만 바꿔 일정 가시성을 올린 사내 도구 — 드래그 편집의 반응성과 과거 시점 조회를 어떻게 풀었는지.

1. 전제 — 데이터를 옮기지 않는다

일정 관리 도구를 새로 만들면 팀은 두 곳에 일정을 적게 된다. 그러면 곧 한쪽이 낡고, 낡은 쪽을 아무도 믿지 않게 된다. 그래서 저장소는 Jira 그대로 두고 REST API로 읽어와 보는 방식만 바꾸는 것을 전제로 잡았다. 편집도 이 도구가 아니라 Jira에 쓴다.

2. 무엇을 더 보이게 했나

1

간트 차트 · 캘린더 뷰

Jira의 이슈 목록은 '지금 무엇이 열려 있는가'는 보여줘도 '무엇이 언제까지인가'는 잘 보여주지 않는다. 같은 데이터를 시간 축 위에 올렸다.

2

팀 · 상태 색상 + 다중 필터

규모가 큰 프로젝트는 전체를 한 번에 보면 아무것도 안 보인다. 색으로 묶고 필터로 좁히는 두 단계를 뒀다.

3

URL 상태 관리

필터·기간·뷰 모드를 URL에 담았다. 별도 저장이나 공유 기능 없이 주소창을 복사해 붙이면 상대가 같은 화면을 본다.

3. 드래그 편집의 반응성

간트에서 일정을 옮기는 건 한 번으로 끝나지 않는다. 여러 개를 연달아 조정하는 연속 동작인데, 매번 Jira 응답을 기다리면 그 리듬이 끊긴다. 그래서 드롭 즉시 화면에 반영하고 요청은 뒤에서 보내는 낙관적 업데이트를 적용했다.

서버 응답을 기다리지 않고 먼저 그린다일정 바를 드롭사용자 입력 완료즉시 화면 반영네트워크 왕복을 기다리지 않음Jira 요청 전송뒤에서 진행성공이미 그려진 상태 그대로 확정추가 렌더 없음실패원래 위치로 롤백+ 사유 안내드래그 편집은 연속 동작이라 매번 응답을 기다리면 리듬이 끊긴다대신 롤백 경로를 반드시 갖춰야 한다 — 낙관적 업데이트의 비용은 실패 처리에 있다

→ 낙관적 업데이트의 진짜 비용은 성공 경로가 아니라 실패 경로에 있다. 되돌릴 원래 값을 들고 있어야 하고, 사용자가 이미 다음 동작으로 넘어간 뒤에 롤백이 도착할 수도 있다. 이 처리를 빼면 “바꾼 줄 알았는데 안 바뀐” 상태가 조용히 남는다.

4. 과거 시점을 되살린다

회고에서 가장 자주 나오는 질문이 “이거 언제부터 밀린 거예요?”였다. 현재 일정만 보면 답할 수 없고, 사람의 기억으로 복원해야 했다. Jira Changelog에는 어떤 필드가 언제 무엇에서 무엇으로 바뀌었는지가 남아 있으니, 이걸 역순으로 적용하면 특정 시점의 일정을 복원할 수 있다.

복원한 일정은 화면을 갈아끼우는 대신 현재 일정 옆에 고스트 바로 겹쳐 보여줬다. 시점을 오가며 비교하는 것보다 한 화면에서 폭을 보는 편이 빠르다.

"언제부터 밀렸나"는 현재 상태만 봐서는 알 수 없다Jira Changelog필드가 언제 무엇에서무엇으로 바뀌었는지선택 시점으로 되감기변경 이력을 역순으로 적용해그때의 일정을 복원고스트 바로겹쳐 표시간트 표시 예시2주 전 계획 (고스트)현재 일정밀린 폭회고에서 "계획이 어떻게 변해왔는지"를 말로 복원하지 않아도 된다

5. 공유는 기능이 아니라 주소로

“이 화면 좀 보세요”를 위해 저장·공유 기능을 만들면 관리할 상태가 하나 더 생긴다. 대신 필터·기간·뷰 모드를 전부 URL에 담았다. 주소창을 복사해 붙이면 상대가 같은 화면을 보고, 브라우저 뒤로 가기가 그대로 실행 취소처럼 동작한다.

→ Atlassian OAuth로 각자 자기 권한으로 접근하므로, 링크를 받아도 원래 Jira에서 볼 수 있는 범위만 보인다.