본문 바로가기

관심분야/게임

데이터 변경에 대한 로깅

대부분의 서비스는 데이터베이스를 통해서, 데이터를 관리하고 그에 대한 변경 내용을 일일이 관리합니다.


이러한 데이터는 이후 서비스의 유지 보수와 사용자 응대에 사용되기 마련입니다.

그러다 보니, 개발자 입장에서 이러한 데이터를 저장하고, 처리하는 업무가 중요할수 밖에 없습니다.

나름, 이러한 처리를 저 또한 많이 하고, 단순화 시키기 위해서 많은 노력을 합니다.


그래서 사용하는 방법이 Observer 형태의 개발 패턴을 사용하였습니다.


이러한 패턴을 사용하기 위해 다음과 같은 접근 방식을 택하였습니다.


- 쿼리를 통해, 데이터는 Map형태로 정규화 시킨다.

- Map형태로 저장된 데이터의 변경을 로깅 관리한다.

- 변경된 내용을 기록하는 함수를 통해 데이터베이스에 반영한다.

- 데이터베이스에 정상적으로 반영이 되면, 로깅 테이블에 데이터를 비동기로 기록한다.


해당 처리의 장점은, 단순히 데이터를 접근하는 쿼리만 사용하여, INSERT나 UPDATE, DELETE를 직접 사용하여

발생될수 있는 데이터의 잘못된 접근을 최소화 할수 있고, 데이터의 접근성을 높일수 있다는 장점이 있습니다.


관련된 코드는 정리되면 다시 공유해 보도록 하겠습니다.