- MSA 환경에서 운영한다는 것
- GUID는 어떻게 도움이 되는가
- GUID는 어디서 채번해야 하는가
- GUID 채번 규칙은 어떠해야 하는가
- GUID 채번은 어떻게 해야하는가
- GUID를 잘 활용하기 위해 뒷받침되어야 하는 것들
IT 서비스가 커지면 > 서버가 쪼개지고 > 조직이 생겨난다. 조직 간에는 알력 다툼이 있고, 조직원은 웬만하면 일하기 싫어한다. 이러한 조직 + MSA 환경에서 에러가 터진다면 어떨까? 웬만하면 에러를 해결하려 들지 않고 책임을 떠넘기려 한다.
그래서 조직 간에 협업을 원활하게 하고, 에러 발생 지점을 쉽게 발견하도록 IT 시스템을 설계해야 한다. 당행에서는 대표적으로 (1)메타데이터 시스템, (2) 오류메시지 시스템, (3) GUID (4) 로깅 시스템을 활용하고 있다.
request 별로 Global하고 Unique한 ID를 채번하는 것이다. MSA 환경에서 request는 A 서버 > B 서버 > C 서버를 거쳐 처리된다. GUID는 request의 시작점인 A 서버에서 채번되며, B서버와 C서버에서도 동일하게 사용된다.
GUID를 활용하기 위해서는 여러 전제 조건이 필요하다. 먼저 A서버, B서버, C서버가 모두 동일한 GUID를 사용해야 한다. 다음으로 GUID를 전제로 로깅하는 시스템이 구축되어 있어야 한다.
에러가 발생하면 아래와 같이 대응한다. 먼저 A서버에서 로깅시스템을 뒤져서 문제가 되는 request의 GUID를 찾는다. 해당 request의 로직을 확인한 뒤, A 서버 문제가 아님을 확인한다. 그러면 B 서버에 GUID를 알려준다.
B서버는 로깅시스템을 뒤져서 문제가 되는 reuqest를 찾는다. 해당 request의 로직을 확인한 뒤, B 서버 문제가 아님을 확인한다. 그러면 C 서버에 GUID를 알려준다.
GUID 채번에 관한 문제는 기술적인 관점과, 업무적인 관점 두 가지 측면에서 볼 수 있다.
기술적으로는 (1)유일한 id를 (2)빠르게 채번해야 한다. 이와 관려해 겪은 문제들이다.
GUID에 업무 성격이 드러난다면, guid만 보고도 원인을 대략적으로 파악할 수 있다. 동시에 보안 취약점이 되기도 한다.