플랜티파이(PlantiFy)

생성일
2024/11/05 → 2024/12/19
Position
BE
PM
Design
FE
NextJS
TypeScript
BE
Java
AWS
Python
MySQL

기획 의도 및 기능

Plant(환경/사회) + Amplify(통합)
=> 가치있는 결제의 시작, 플랜티파이(PlantiFy)
주요 기능
Pay - 페이 결제 시스템
PlantiPay: 나만의 페이, 피피 / 한 번의 터치로 한 번의 결제
Funding - 온라인 펀딩 참여 / 내 참여 내역
PlantiFunding: 손쉬운 기분 펀딩, 피프 / 쌓여있는 포인트로 언제 어디서나
Forest - 캐시로 나만의 숲 꾸미기
PlantiForest: 나만의 숲 꾸미기, 피포 / 자유롭게 꾸미는 내 손 안의 숲
Card - 카드 추천 서비스 / 더 큰 혜택 찾기
PlantiFit: 다양한 혜택 한 번에, 피핏 / 숨겨진 카드 혜택까지 모두 모아
Chat - 사용자 맞춤 기부 펀딩 추천
PlantiPick: 기부 도우미, 피픽 / 나눔의 길을 안내하는 길잡이

역할

PM / BE(SpringBoot, FastAPI) / Design(Figma)
기능명세서/ API 명세서/ ERD / 개발 아키텍처
백엔드 개발(MSA) - Spring Security, Jasypt
플랜티파이 서비스
auth service
Kakao Login, JWT
admin service
관리자 페이지
item service
GraphQL
cash service
funding service
chat service
gRPC, WebFlux + Netty
apiUser service
notification service
SSE
card service(FastAPI)
결제 서비스 - 2PC, 분산락(Redis)
pay service
JWT
transaction service
payment service
AWS EKS, Docker, Helm, FluxCD, Git Actions -> 서버 배포

구현

Link
기능명세서
API 명세서
User Flow
ERD
Sequence Diagram - 결제 로직
System Architecture
Loading PDF…

회고

결제 시스템(Pay-Transaction-Payment)
결합도
외부 클라이언트
실제 결제할 때 한 번 더 확인?
포인트 및 실결제
계좌 예외 처리
취소 및 환불
Acitivity History
관리자
코드 분리
아이템(GraphQL)
채팅방(gRPC, WebFlux + Netty)
이번 개발에는 단순 구현보다 트러블 슈팅과 기술의 필요성에 대해 집중해서 개발했다.
도메인에 대한 깊은 이해가 필요하다는 것을 느꼈다. 특히, 결제 로직을 구현하면서 여러 방법 중 2PC를 선택했는데 다음에는 Saga패턴을 사용해 개발하고 두 서비스를 비교하고 개선하는 작업을 해보고 싶다.
또한, 고도화 작업도 중요하지만, 버전별로 나눈 작업의 필요성을 깨달았다.