KREAM을 모티브로 한 리셀 중고 거래 플랫폼 프로젝트입니다.
클라이언트는 Kakao Oven을 활용한 프로토타입을 제작하여, REST API 서버 개발에 중점을 두었습니다.
배치 작업을 수행하는 fkream-batch 프로젝트는 여기에서 볼 수 있습니다.
Java 11, Spring Boot 2.7., Gradle, MyBatis, Redis, Docker, MySql, MongoDB, Elasticsearch, Kibana, Kafka, Jenkins, Naver Cloud Platform, Pinpoint, NGrinder
- 객체 지향 원리를 토대로 올바른 코드 작성
- 대용량 트래픽 처리를 고려하여 서비스 기능 구현
- 병목 지점 파악
- 응답속도 성능 개선
- 새로운 기술을 학습하고 프로젝트 적재적소에 적용
- 매 시간 갱신되는 실시간 검색 순위 구현: 엘라스틱서치와 카프카 사용
- 상품 시세 그래프를 위한 통계 작업 : 카프카
- 엘라스틱 서치를 사용한 상품 검색 기능 구현
- 분산 환경에서 동시성 문제를 어떻게 해결할까?
- DB 커넥션 풀 사이즈에 따른 성능 차이
- 자동완성 기능 성능 개선: Trie 알고리즘
- ngrinder 성능 테스트 : 사용자 행동을 시뮬레이션한 시나리오 성능 테스트
- 글로벌 캐시: 분산 환경일 때 캐시는 어디에 저장될까?
- 로드밸런싱: 분산 환경일 때 트래픽을 어떻게 분산할까?
- 세션 스토리지 분리: 분산 환경일 때 세션은 어디에 저장될까?
- Scale-Out 적용: 가용성, 확장성, 성능을 어떻게 개선할까?
- CI/CD 환경 구성: Jenkins
위키 에서 자세히 확인할 수 있습니다.
- Google code Style 준수
GitHub Flow를 사용하여 브랜치를 관리합니다.
Main 브랜치로부터 새로운 Feature 브랜치를 생성하고 Pull Request에 코드 리뷰를 진행한 후 Jenkins를 통한 테스트 이후 Main 브랜치로 merge 됩니다.