CodePack 내에 동일한 로직을 중복 사용할 수 있도록 Code 이름이 중복된 경우도 허용한다.
Why?
기존에는 CodePack에 포함된 Code의 이름이 중복될 경우, 일종의 덮어쓰기가 발생하여 정상적인 동작을 기대할 수 없었다.
2023-01-27 사용자 VOC를 받았다: "CodePack을 만들 때, 구성하는 Code들의 중복 키가 가능하도록 JSON serialization 했을 때의 구조를 변경해주세요."
중복된 이름의 Code를 사용할 수 있게 개선하는 세 가지 방법
(1) Code ID에 randomized된 instance ID를 붙여주는 방법 (e.g. serial_number): 이 경우, 실행이 아니라 단순히 CodePack 생성 요청을 하는 시나리오에서는 바람직하지 않다. serial_number라는 것은 실행할 때의 instance ID, 즉, Job ID같은 개념인데, 단순히 CodePack의 CRUD 측면에서 별도의 serial_number가 추가적으로 사용되면, serial number의 원래 사용 의도를 해치게 된다. 또한, 관리 측면에서 헷갈리고 이해가 어려울 듯 하다.
(2) Suffix 붙여주기 (e.g. code1, code1_2, etc.): 이 방식을 채택하면 기존의 구조로도 문제는 해결되지만, 사용자에게 올바른 사용을 가이드해야 한다고 사용자가 반드시 이를 따라줘야 한다는 제약이 있다. 사실상 아무런 조치도 취하지 않고 가이드만 제공하는 것과 다르지 않다. 사용자가 실수로 중복된 ID를 써서 시스템이 예상치 못한 동작을 수행하는 경우가 많을 듯 하다.
(3) incremental한 node ID 개념 도입하기: 새로운 개념인 node_id를 추가해야 한다는 점에서는 부담이 된다. 하지만, CodePack에서 뼈대 (일종의 Graph 구조)를 구성하기 위한 고유의 ID라고 생각하면 수용할 만하다. 사용자가 Code 자체의 ID를 신경쓸 필요 없고, node_id라는 명확한 개념이 도입되었기 때문에, 직관적으로 시스템이 예상대로 동작할 것이라는 기대를 할 수 있다.
How?
[ ] CodePack 내부 Code들의 연결 관계를 표현하는 방식을 node ID를 활용하여 개선하기 (중복 Code ID 허용)
What?
CodePack 내에 동일한 로직을 중복 사용할 수 있도록 Code 이름이 중복된 경우도 허용한다.
Why?
How?