YooYoungmo / AEP

1 stars 1 forks source link

profile System.property 설정 구체화 하기. #6

Closed LangVE closed 7 years ago

LangVE commented 7 years ago

위키 상의로 논의 된 부분 등록합니다.


질문 1. System.property app.env.profile.active 는 필수로 전달 받을 것 인가? 받지 않아도 되는가?

답변.

이영호 : 필수로 받으며 미 입력 시 Exception 발생.


질문 2. System.property app.env.profile.active 의 value 유효성 체크 방식은?

선택.

  1. 예약된 키워드만 제공 예) local, dev, staging, product
  2. 예약된 키워드 없음. app-config.json profile 하위 name을 사용.
  3. 예약된 키워드 정의를 유저에게 제공한다.

답변.

이영호 : [선택 3.] 으로 하고자 함. 인터페이스 방식은 AEP 동작을 위한 내부 config 설정 파일을 제공함.

이유 :

[선택 1.] 서비스 별 예약된 키워드 이외의 환경에 대한 프로파일링 불가. 예) smtest, sptest..
[선택 2.] profile 하위 name이 profile 종류에 대한 키워드 보장 불가.
[선택 3.] 유저 사용 자유도 증가.

예)

/* aep-config.json */
{
  "KindOfProfileName" : ["local", "dev", "staging", "product"]
}

LangVE commented 7 years ago

※고려사항. System.property 값을 필수로 전달받는 방향으로 처리했을 때 동일 프로젝트 사용자들에게 환경세팅에 대한 안내가 필요함.

LangVE commented 7 years ago

유영모 의견 : 위에 의견을 반영하여 1/13 짝 프로그래밍이 가능할 정도로 구체적인 샘플 JSON 파일을 만들어서 커밋해 주세요. 예를 들면 아래와 같이 제가 만든 것 처럼요.

  {
    "profile": {
      "dev": {
        "paymentGateway": {
          "domain": "http://dev-pg.com",
          "propertyPath": "classpath:conf/dev-pg.properties"
        }
      },
      "prod": {
        "paymentGateway": {
          "domain": "http://pg.com",
          "propertyPath": "classpath:conf/dev-pg.properties"
        }
      }
    },
    "googleMaps" : {
      "url" : "http://google.com/maps"
    }
  }