Closed PENEKhun closed 1 month ago
런타임(매핑 빈 등록되는 시기)에 파싱하는 것.
따로 런타임에 정보를 넘기기 위한 코드들이 필요하지 않음 (간편함)
빌드 이전에 파싱함.
빠르고 깔끔함
어노테이션 프로세싱 과정에서 파싱한 정보를 넘기긴 해야되는데... 어떤식으로 넘겨야할지... 고민해 보아야함.
어노테이션 프로세싱때 DB를 잠깐 켜서 할까?
json 파일을 만들거나... (근데 이건 좀 별로인듯)
그냥 정적 class를 빈으로 등록하는 코드를 생성하는 것 (괜찮은거 같기도) 혹은, application이 띄워졌을때 정보를 디비에 저장하는 코드를 그냥 째로 생성?? 다른 모듈간에 의존성을 낮추는데 많이 도움될거 같음.
그냥 런타임때 컨트롤러 정보를 가져오는 것으로 결정.
저장할때, 전체 해쉬를 버전 테이블에서 비교
다르다면, endpoint hash | 다른 정보 endpoint Parameter hash | 다른 정보 해시 정보로 변경 추적(변경테이블에 기록) ACTIVATED_BUT_NEVER_FOUND C, D 추적 완료 후, endpoint 테이블 밀고 다시 데이터 삽입
버전관리 대상 API endpoint 목록이 기존과 달라짐
형상관리 대상
버전테이블 pk id(date), hash, endpoints_string
변경테이블 pk id(autogener), version_id, change_type(C,D)
TODO:
어느정도 구현되면, 코드정리 할 것 (shared에 너무 몰빵됨..)
그냥 일단 Caffeine으로 프로토타입 만들고, 나중에 ehcache로 변경하자.
Memo
Backlog:
@RequestMapping
,@ModelAttribute
대응In Progress:
Done:
@RequestMapping
,@ModelAttribute
남음)