View Code? Open in Web Editor
NEW
[연봉 4000천 이상 이직] 바이러스 백신 예약 시스템
Java 61.92%
Groovy 38.08%
virus-vaccine's Introduction
![alt text](https://github.com/f-lab-edu/virus-vaccine/raw/main/pictures/Architecture.png)
- 사용자는 일반 사용자와 기관 사용자가 있습니다.
- 백신의 종류는 Pf, Md, Az, Js, Nv 가 있습니다.
- 일반 사용자는 선택한 위치의 반경에 있는 접종 기관 목록을 조회할 수 있으며, 백신 물량이 있는 접종 기관에 예약할 수 있습니다.
- 접종기관 조회 시, 사용자 입력 기준 반경 5Km 내 접종기관을 조회합니다.
- 접종기관 조회 시, 사용자는 원하는 백신의 종류를 선택하여 조회할 수 있습니다.
- 접종기관 조회 시, 사용자는 잔여 물량이 있는 접종기관만 요청할 수 있습니다.
- 백신 예약 시, 사용자는 접종시간을 선택할 수 없습니다.
- 백신 예약 시, 잔여 물량이 1회 감소합니다.
- 백신 예약 시, 기관의 백신 물량이 없으면 예약 할 수 없습니다.
- 2회 예약 완료 시, 추가적인 백신 예약이 불가능합니다.
- 기관 사용자는 자신의 기관에 물량을 등록 할 수 있고, 예약한 사용자를 확인할 수 있습니다.
- 백신 물량 등록 시, 종류와 수량, 접종시간을 입력하여 등록합니다.
virus-vaccine's People
virus-vaccine's Issues
nGrinder 부하테스트 스크립트 로직 개선 하겠습니다.
- 하나의 에이전트에서 여러 스레드 작동시 서로 다른 쿠키를 갖도록 개선
- 로그인 상태인지 아닌지 체크하는 기능
- 일반사용자인지 기관사용자인지 권한 체크하는 기능
위 두가지 기능 핸들러 인터셉터가 처리하도록 간소화
1.백신예약 - 낙관적 락킹 로직 수정하겠습니다.
- 로그인 성공 단위테스트 실패
- db 데이터 스크립트 문법 오류
두가지 문제 수정하겠습니다.
- 로그인 및 권한 체크 기능 로직 수정하겠습니다.
현재 구조(package by layer) -> package by feature
프로젝트 생성 내용
- JAVA 11
- SpringBoot
- Gradle
- spring-boot-starter-web
- spring-boot-starter-test
Ngrinder 에서 사용할 부하테스트 스크립트(groovy) 작성 하겠습니다.
- 백신 예약 비관적 락킹 적용하는 로직 구현하겠습니다.
- 현재 하나의 레디스에 캐시, 세션 둘다 관리하는것을 캐시 담당 레디스, 세션 담당 레디스 둘로 분리하겠습니다.
- 디비에서 어플리케이션으로 너무 많은 데이터를 가져와서 처리하는 통계분석 로직 개선 하겠습니다.
property에서 redis host, port 값 주입
- 등록 횟수가 가장 많은 백신
- 예약 횟수가 가장 많은 백신
- 잔여 물량이 가장 많은 기관 및 지역
위와 같은 통계치를 구해 반환하는 기능을 구현하겠습니다.