프로젝트/팀 개발일지
[Spring Boot/Toy Project] Quostomize - Admin 페이지와 로그 관리 기능 개발 (w. 개발 범위와 우선순위 조정의 중요성)
Se On
2024. 11. 13. 19:19
들어가며
✍️ 프로젝트의 초기 목표와 클라이언트 요구사항
백엔드 API 개발 종료기한을 이틀 앞둔 가운데, 오늘은 클라이언트의 주요 요구사항인 Admin 페이지 개발과 로그 데이터 수집 및 관리에 집중했습니다.
- 초기 목표
- Admin의 권한 관리, 통계 시각화, 우리금융그룹과의 연계 기능 등을 포함한 관리자 페이지를 목표로 했습니다.
- 사용자의 이용기록을 관리하는 별도 로그 기능을 기획했습니다.
- 실제 개발 과정
- 그러나 실제 개발 과정에서는 우선순위 조정과 구체적인 기능 범위 설정이 필요했습니다.
- 클라이언트가 요구하는 핵심기능을 반영하고, 프로젝트 기한 내 완성할 수 있는 현실적인 접근법을 선택하게 되면서 여러 차이점을 경험했습니다.
1. Admin 및 Admin page 정의
💭 초기 목표
- 의도한 결과: Admin의 권한을 정의하고 이에 따른 기능을 정리하여 관리자 페이지 개발하는 것
- 중점 사항: 회원 및 카드에 대한 권한조정, 통계데이터를 시각화, 우리금융그룹과의 연계 기능을 중심으로 기획
🖼️ 현실
- 진행 상황: 우리FISA에서 필수구현사항을 제시해 두었기에, 이를 기반으로 우선순위 재조정
- 필수기능
- 알림기능
- 정보조회 및 권한수정
- 가맹점 제휴 및 혜택 퍼센트 변경
- 개선기능
- 우리금융그룹 연계
- 통계지표
- 필수기능
✏️ 배운 점
- 우선순위 조정의 필요성: 프로젝트 평가에 있어 클라이언트(우리FISA)의 요구사항을 최우선으로 반영하는 것이 중요함을 깨달음
- 적정선 찾기: 클라이언트 요구사항을 충족하면서도 팀이 구현하고자 하는 기능을 함께 보여줄 수 있는 균형이 필요
- ex
가맹점 제휴 및 혜택비율 변경: 실제 변경이 아닌 결재요청 단계까지만 구현
결재요청 단계까지만 구현해도 되는 이유: 회사의 일반적인 결재로직
- ex
🎯 목적
- 지속
- 우선순위에 따른 기능 개발(필수 → 개선)
- 필수: 알림기능, 정보조회 및 권한수정, 가맹점 제휴 및 혜택 퍼센트 변경
- 개선
- 추가: 우리금융그룹 연계 및 통계지표 제공 기능
- 포기
- 구체적인 기능 개발 (기초 결재로직만 구현하기로 협의)
2. 로그 데이터 수집 및 관리방안 협의
💭 초기 목표
- 의도한 결과: 우리FISA 프로젝트 요구사항에 맞는 로그관리 기능 개발
- 기획 내용: 사용자의 서비스 로그인 및 이용기록을 별도 로그로 저장하고 조회할 수 있는 기능 구현
🖼️ 현실
- 진행 상황: 로그 관리 방안이 명확하지 않음, 로그데이터 저장 방법 협의 필요
- 로그인 및 이용기록
- 이용기록: 초기에는 결제기록이 아닌 포인트 사용 기록으로 대체하려고 했으나, 포인트기록 테이블이 없어 불가능하다는 점과 촉박한 개발 일정으로 인해 결제기록을 이용하기로 결정
- 로그데이터 저장방법
- 초기에는 결제기록을 위한 ip_address, transaction_id, amount 필드를 고려했으나, 프로젝트의 최소 요구사항에 맞춰 필드 간소화하기로 협의
- 최종 결정: 로그종류와 상태구분만 필드에 포함, 11/29(금) 이후 백엔드 및 프론트엔드 기능 개발과 함께 세부로그항목을 추가할 예정
필드 목록 | 타입 및 설명 |
log_sequence_id | 로그 고유 식별 ID (bigint, auto increment, PK) |
member_id | 회원 식별 ID (FK) |
log_type | 로그 종류 구분 (varchar(50), not null) ex: login, logout, payment |
log_message | 로그 설명 (text, not null) |
status | 로그 상태 (varchar(20)) ex: success, failed, pending |
회원이 로그인한 ip 주소 암호화 필요 |
|
결제 로그의 경우, 결제 트랜잭션 id 기록 암호화 필요 |
|
결제 로그의 경우, 결제금액 암호화 필요 |
✏️ 배운 점
- 로그 관리 방안에 대한 멘토님 조언
- 대규모 로그데이터를 효율적으로 관리하기 위해 주기적인 데이터 삭제 및 성능 향상을 위한 인덱스 설계 필요성 인식
- 특히 우리은행에서는 로그를 1년 주기로 삭제하는 정책 진행 중
- 개발 일정 관리: 촉박한 일정를 고려하여 개발범위를 정하고 우선순위를 조정하는 것이 중요함을 깨달음
- 로그 수집 방법 협의
- 새벽 12:30~1:00 스케줄링 또는 배치 작업
- 로그데이터 일괄 저장하는 방식으로 협의 완료
- 이번에 스케줄링이나 배치를 공부하여 개발해보았기에 기술적인 문제는 없을 것으로 예상됨
🎯 목적
- 지속
- 로그 관리 기능 개발
- 개선
- 기능 개선을 위한 인덱스 설계
- 포기
- 구체적인 로그데이터 관리 (필드 최소화 및 필수 요구사항 충족)
정리하면
✍️ 오늘 회고록을 정리하며 배운 점은...
- 구체적인 기능을 개발하는 것도 좋지만, 일정을 고려하여 개발 범위를 정하고 우선순위를 조정하는 것이 기한 내 개발 성공에 결정적이라는 것입니다.
- 때로는 모든 기능을 완벽하게 구현하기보다 클라이언트의 요구사항에 따라 필요한 기능을 우선 개발하고, 효율적인 관리 방안을 적용하는 것이 더 효과적일 수 있음을 느꼈습니다.
- 앞으로도 프로젝트를 진행하면서 이를 바탕으로 목표에 맞는 최적의 개발 범위와 우선순위를 설정해 효율적으로 진행해 나가고자 합니다.
GitHub - woorifisa-projects-3rd/Quostomize-BE
Contribute to woorifisa-projects-3rd/Quostomize-BE development by creating an account on GitHub.
github.com
반응형