엘리스LXP에서 수업 관리자가 수업 정보를 입력하는 페이지, 수업 이수 조건 및 수료증 설정 페이지, 분반 구성 페이지, 수업 정보를 소개하는 내용을 조회하는 페이지에서 사용된 레거시 컴포넌트를 Material UI 컴포넌트로 교체하여 코드 베이스 업데이트
1. 공용 컴포넌트 설계 및 구현
- 배경: 엘리스LXP 플랫폼에서 elice/blocks 라이브러리의 input 컴포넌트에 적용된 글자 수 제한 기능을 Material UI의 TextField로 대체하는 과정에서, TextField가 기본적으로 글자 수 제한 기능을 제공하지 않는 것을 발견
- 문제 인식: 초기에는 수업 정보 입력 페이지에서만 사용할 수 있는 커스텀 기능을 구현할 계획이었으나, 프로젝트 전반에 걸쳐 다양한 페이지에서 글자 수 제한 기능의 필요성 인식
- 해결: 중복된 코드 작성과 유지보수의 어려움을 최소화하기 위해 공용 컴포넌트로서 글자 수 제한 기능을 추가한 커스텀 TextField 컴포넌트를 설계. 이를 엘리스의 코드 컨벤션에 맞춰 구현하여, 여러 페이지에서 재사용 가능하도록 구성
- 성과: 공용 컴포넌트를 통해 다양한 페이지에서 통일된 기능을 제공하고 유지보수의 일관성을 유지하면서도 각 페이지별 요구사항 충족
2. 사용자 경험 개선
- 배경: 엘리스LXP 플랫폼에서 관리자가 분반을 구성하는 페이지를 migration하는 과정에서, 분반 이름을 수정하다가 취소 버튼을 눌렀을 때 수정 사항이 제대로 취소되지 않는 문제 발견
- 문제 인식: 취소 버튼을 눌렀음에도 수정하기 위해 입력했던 내용이 그대로 반영되어 취소가 되지 않은 것처럼 보였지만, 페이지를 새로고침하면 취소가 적용된 상태임을 확인. 이 문제의 원인을 분석한 결과, 취소 버튼 클릭 시 수정 전의 값으로 되돌리는 로직이 구현되지 않았다는 것을 확인
- 해결: 취소 버튼 클릭 시 수정하기 이전 값으로 되돌리는 set 함수를 추가하여, 취소 버튼을 눌렀을 때 즉시 수정 전 내용이 나타나도록 기능 개선
- 성과: 관리자는 취소 버튼을 눌렀을 때 명확하게 수정 이전의 내용을 확인할 수 있게 되었고, 이 기능 개선을 통해 사용자 경험 향상