기존 개인 프로젝트 개선 계획성장기록/개인프로젝트2024. 7. 31. 01:23
목차
기존 프로젝트 문제점
- 요구사항 정의 미흡
- 구체적인 예약 대상 도메인 미지정
- 세부 예약 프로세스 미정의
- 제공할 서비스의 구체적 범위 미설정
- 데이터베이스 구조 및 데이터 관련 문제
- 실데이터 부재로 인한 기능 검증 불가
- MSA 환경에 부적합한 단일 MySQL 인스턴스 사용
- 마이크로서비스 아키텍처(MSA) 구현 미흡
- 서비스 간 독립성 부족
- API 게이트웨이를 비롯한 서비스가 Eureka 환경 내에서 돌지 않음
- 실질적인 MSA 통신 구조 미구현(단일 DB)
- 개별 서비스 구현 상의 문제
- User 서비스
- 인증 서비스의 구체적 기능 부족 - Newsfeed 서비스
- 실제 데이터 부재로 인한 기능 검증 불가 - Product 서비스
- 동시성 처리에 대한 구체적 구현 및 검증 부족 - Order 서비스
- 실제 결제 시스템 연동 부재
- 테스트 데이터 부족으로 인한 기능 검증 불가
- User 서비스
- 테스트 코드 부재
- 단위 테스트 미구현
- 통합 테스트 미구현
- 성능 테스트 미실시
- 인프라 환경 없음
- 실제 클라우드 환경 미구축
- 쿠버네티스 환경 미구성
- CI/CD 파이프라인 부재
- 프론트엔드 영역 부재
- 사용자 인터페이스 미구현
- 프론트엔드와 백엔드 통합 검증 불가
- 추가 개선 필요 사항
- 서비스 디스커버리(Eureka) 미구현
- 메시징 시스템(Kafka) 도입 필요
- 올바른 DB 분리 및 분산 트랜잭션 처리
리팩토링 진행 예정(WBS 약 15일)
요구사항 정의 및 도메인 선택(1일)구체적인 도메인 선택핵심 기능 및 사용자 스토리 정의시스템 아키텍처 및 데이터 흐름 다이어그램 작성
데이터베이스 구조 개선(2일)마이크로 서비스 아키텍처 개선(3일)eureka를 이용한 서비스 디스커버리 구현Kafka를 통한 이벤트 기반 통신 구현API Gateway 최적화각 서비스의 독립성 강화
서비스별 기능 구현 및 개선(4일)User 서비스 인증/인가 로직 강화, 소셜 로그인 추가Newsfeed 서비스 실시간 업데이트 기능 추가주문 서비스: 동시성 제어 로직 구현 및 테스트구매 서비스 : 결제 시스템 연동(가상의 결제 게이트웨이)
테스트 코드 작성(2일)단위테스트, 통합 테스트 작성성능테스트 시나리오 구현
인프라 배포 환경 구축(2일)Docker 컨테이너화 완료Kubernetes 클러스터 설정CI/CD 파이프라인 구축(Jenkins)
문서화 및 마무리(1일)README 파일 업데이트API 문서화(Swagger)시스템 아키텍처 및 기술 스택 문서화
기타보안: SSL/TLS 적용모니터링: Prometheus, Grafana를 이용한 시스템 모니터링 구축로깅: ELK 스택을 이용한 중앙 집중식 로깅 시스템 구축
9/2 방향 수정
각각의 서비스의 범위가 너무 넓어지는 느낌이라 고민 끝에 이 넓이를 줄이고, 예약 도메인에 초점을 맞추도록 변경 중.
- Service-Discovery 추가. 서비스 로드밸런싱 및 관리에 용이하기 때문. 장애 전파 및 시계열 데이터 저장하는 기능도 가능.
- User service(유저 관리)에서는 기존 인증의 권한만 담당하고, 인가는 gateway에서 하도록 변경필요.(현재 인증까지는 완료)
- Order service(예약구매 관리)에서 예약 관련 기능이 메인이므로 관련된 로직을 deep하게 추가 예정.
- Product service(상품 관리)에서 재고관리 처리를 위한 고민 필요. kafka등
- Newsfeed, Activity service가 이 서비스 전체에 있어 필요한 기능일까? 더 고민해보고 삭제할 예정.
'성장기록 > 개인프로젝트' 카테고리의 다른 글
sequel pro - caching_sha2_password 오류 (0) | 2024.08.03 |
---|---|
트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 2. 동시 구매시 재고관리 접근 (0) | 2024.03.11 |
트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 1. 재고 관리 프로세스 (0) | 2024.03.08 |
트러블 슈팅 - DB 연관관계에서의 N+1 문제 (0) | 2024.03.04 |
jwt 토큰을 관리하는 방법에 대한 고민 (0) | 2024.03.03 |
@BW_tree :: TREE BLOG
남에게 설명할 때 비로소 자신의 지식이 된다.
포스팅이 도움되셨다면 하트❤️ 또는 구독👍🏻 부탁드립니다!! 잘못된 정보가 있다면 댓글로 알려주세요.