기존 Flow
> * build
> gradle
> src.main.java.com.sinor.cahce
> commom
| BaseException.java // Controller, Service에서 Response 용으로 공통적으로 사용 될 익셉션 클래스
| BaseResponse.java // Controller 에서 Response 용으로 공통적으로 사용되는 구조를 위한 모델 클래스
| BaseResponseStatus.java // Controller, Service에서 사용할 Response Status 관리 클래스
> constant
| Constant.java // 공통적으로 사용될 상수 값들을 관리하는 곳
| GroupKey.java // url 변수 (임시)
| KeyQueryString.java // url 변수 (임시)
> config
| RedisConfig.java // Redis DB를 사용하기위한 config 설정 파일
| SwaggerConfig.java // frontend와의 협업을 위한 라이브버리
> metadata// 캐시를 관리하기 위한 옵션
> repository
| MetadataRepository.java // 옵션테이블 생성을 위한 JPA 레파지토리
> service
| MetadataService.java // CRUD를 사용하기위해 Jpa상속을 위한 Service
| Metadata.java // 각 캐시별 TTL설정을 위한 Mysql option 테이블
> product // 메인 서버 api 호출 코드 작성 전 캐시 테스트를 위한 임시 Product
> controller
| ProductController.java // 테스트를 위한 상품 생성 & 캐시 조회 & 생성
> dao
| ProductDao.java //JDBC를 이용한 메인서버의 데이터 조회
> response
| ProductRes.java //상품을 생성 , 조회하기위한 Response
> service
| ProductService.java
| Product.java // 각 상품별 테이블 생성을 위한 Entity
| ProductDetail.java // 상품별 디테일 테이블 생성을 위한 entity
> stroage
> controller
| CacheController.java // API로 ADMIN에서 캐시를 관리하기 위한 컨트롤러
> response
| CacheRes.java // 캐시를 생성하거나, Admin측에서 조회하기 위한 Response
> service
| CacheService.java //Cache 생성을 위한 key,value, TTL 설정
> utils
> dataInitialization // 앱 실행시 redis 초기 데이터를 넣기 위한 initialization (임시)
| DataInitializationRunner.java
| DataInitializationService.java
| DemoApplication // SpringBootApplication 서버 시작 지점
> resources
| data.sql // 더미 데이터 생성을 위한 sql쿼리
| application.yml // Database 연동을 위한 설정 값 세팅 및 Port 정의 파일
build.gradle // gradle 빌드시에 필요한 dependency 설정하는 곳
.gitignore // git 에 포함되지 않아야 하는 폴더, 파일들을 작성 해놓는 곳
Git Flow 브랜치 생성 및 merge를 위한 PlugIn 사용
재시작 후 오른쪽 하단에 생기는 Gitflow 버튼을 눌러 init rep 설정
init 설정 이후에 생기는 Branch 생성 버튼을 활용해 Branch 관리
생성하려는 브랜치를 선택해서 규칙에 맞는 생성을 진행
브랜치 작업 완료 후 Finish Feature로 Merge를 할 수 있다.
아래 사진에 적힌 태그를 기반으로 본인의 commit Message를 작성
Title에 tag[option] : Message 형태로 작성한다. (필수)
세부적인 Description을 적어야 할 경우 Title 아래 한 칸을 띄워서 작성한다. (선택 사항)
feat : Cache TTL 수정 기능 추가 or feat[CacheService] : Cache TTL 수정 기능 추가
매개변수로 TTL 값과 Key 값을 넘겨받아 해당 Key의 TTL을 수정
Tag 작성 강제를 위한 Git Hook prepare-commit-msg 파일
해당 파일을 프로젝트 .git/hooks/ 폴더에 삽입한다.
Commit Message Title 예시) [Feat] : Cache TTL 수정 기능 추가
파일이 다운이 안 될 경우 사용
해당 파일의 실행 권한을 위해 프로젝트 터미널에서 실행 권한 명령어를 입력한다.
명령어가 정상 실행되면 위 사진과 같이 표기 된다.
적용 테스트
기본 네이밍 컨벤션은 Naver 캠퍼스 핵데이 컨벤션을 따라간다.
아래 세 파일 다운 (안되면 여기서 내려받기)