- 문제해결전략
Properties 파일을 읽어서 Dict 을 만든다.
차단목록 Dict 의 구조는 { CIDR: [start_ip_num] } 의 구조이다.
임의의 IP 가 들어오면 현재 차단 목록에 들어있는 CIDR 이 낮은 순서대로 IP 의 해당 CIDR 의 start_ipnum 를 구한다.
차단목록 Dict 에 start_ip_num 이 존재하면 차단을 시키고 아니면 통과시킨다.
[start_ip_num] 은 HashSet 을 사용하여 중복을 없애고 O(1) 로 찾을 수 있게 하였다.
- 빌드방법
프로젝트는 gradle 를 이용하여 빌드할 수 있다.
IntelliJ 를 이용하여 spring boot 를 실행시킬 수 있다.
- 웹어플리케이셔 부하테스트
nGrinder 를 이용하였다.
로컬에 Agent 와 서버, controller 를 모두 동작시켰다.