회사 백오피스 기능 개선 기록

dodog·2023년 10월 29일
0

문제 해결 기록

목록 보기
3/3

지난 2주간 백오피스 툴을 갈아엎으며
새로운 기능을 추가하고, UX를 개선하며 겪었던 고민, 어려움, 해결방법을 기록해보려 한다.

1. 경기 리스트에서 등록한 경기와 등록하지 않은 경기를 구별할 수 없던 문제.

우리 회사는 외부 업체에서 경기 데이터를 받아온다.
그렇기 때문에 우리가 회사 게임 앱에서 사용할 경기를 등록하기 위해서
먼저 우리 경기 DB로 raw한 경기 데이터를 복사해서 집어넣어야한다.
그래서 외부에서 받아온 경기 리스트에서는 이 경기가 우리 게임에 등록이 되었는지
안 되었는지 알 수가 없었고,
번거롭게 또 다른 탭의 우리 DB의 등록된 경기 리스트를 받아와서 비교해보아야했다.

해결방법
raw 데이터와 우리 db데이터는 완전히 동일한 구조이기 때문에,
1. 양 쪽에서 경기 데이터를 모두 불러오고,
2. raw데이터에 filter를 쳐서 등록된 리스트에 있는 경기는 제거하고
3. filtered된 raw 데이터와 등록된 경기 데이터를 합친다.
이렇게 되면, 2개의 다른 endpoint에서 가져온 데이터를 사용해서,
등록된 경기의 경우 target이라는 필드를 추가로 갖게 되어
MUI Datagrid에서 시각적으로 등록 / 미등록 경기 구별이 가능해졌다.

2. 경기 등록 요청, target지정 요청을 번거롭게 따로 해주어야 하는 문제

백엔드 api가 경기 등록 api와
우리 DB에 등록된 경기 데이터의 update api 이 2가지 밖에 없어서
하는 수 없이 경기를 먼저 등록하고, 반드시 수정하여 target을 추가해야했다.
(등록시에 바로 target을 추가할 수 없음)
(target은 2개의 게임앱 중 어디에 경기를 등록할 것인지 지정하기 위한 필수값)

처음에는 조금 번거롭지만 백엔드 api 때문에 어쩔 수 없다고 생각했었다.
그러나 이걸 만드는 운영팀 입장에서는 도저히 이해하지 못할 것 같았다.

해결방법
그래서 경기를 등록할 때, 작은 모달창을 띄워서 target을 선택하도록 하고,
그리고 등록 버튼을 누를 수 있도록 프론트에서 순서를 바꾸어 만들었다.

유저가
1. 타겟을 선택
2. 경기를 등록하면

실제로는
1. 경기 등록 요청,
2. 등록한 경기의 target을 update

이렇게 동작하도록 수정했다.

이렇게 유저 입장에서 직관적이고 헷갈리지 않게 바꿔놓으니까 훨씬 만족스러웠다.
물론 운영팀은 내가 고민하며 편하게 만들어 놓은 것을 절대 모르겠지만 말이다.

느낀점

요즘 자주 느끼지만, 구조상 그렇게 만들 수가 없다는 말은 다 핑계인 것 같다.
사실 어떻게든 만들 수는 있는데 어려울 뿐인 것 아닐까.

나도 일차원적으로만 생각해보고 그쳤다면 UX가 처참하게 놔두고
운영팀에서 사용이 힘들다고 해도 어쩔 수 없다고 말했을 것 같다.

알고리즘 문제를 풀듯이, '어떻게든 만들어 내야만 한다'라고 생각해보면
온갖 수단과 방법을 다 떠올리게 되어 대부분은 답을 찾을 수 있는 것 같다.

진짜 안된다는 말은 이렇게 깊이 고민해보고 나서야 할 수 있는 말이지 않을까.

profile
심리학, 사회문제해결에 관심이 많은 프론트엔드 개발자

0개의 댓글