본문 바로가기

교훈

DB Table 간의 연동 작업을 어떻게 할 것인가? 지금 진행하는 작업은 세 개의 테이블이 서로 얽히고 섥혀서 돌아가는 어플리케이션이다. 좀더 상세하게는, 특별한 복사본을 갖고있는 두 개의 테이블과, 테이블 간의 관계를 관리하는 테이블 한개를 포함해서 여섯개의 테이블이 맞물려 있다. 특히 어려운 점은, 이 테이블들이 동시에 설계된 것이 아니고 전혀 별개의 기능들을 구현하면서 설계된 테이블인데다 이 기능을 위한 특화된 테이블 들도 아니라는 점이다. 이런 상황에서 문제를 해결하기 위해, 복잡한 알고리즘을 고안하기 보다는, 끊임없이 테이블간의 싱크를 맞추는 방법을 선택했다. 어떤 동작을 할 때 마다, 화면의 갱신이 있을 때 마다 가장 최신의 정보를 모든 테이블이 동일하게 갖을 수 있도록 쿼리를 짰다. DB를 사용하면 편한점이, 일일이 루프를 돌려서 경신할 필요.. 더보기
왜 제대로 하지 못했을까 문제가 굉장히 심각하다. 맡은 기능을 구현함에 있어서, 요구사항 문서를 명확하게 확인하지 못한게 문제의 시작이었다. 이미 납품된 레퍼런스 폰이 있어서, 문서 분석을 등한시하고 작업을 시작한 것이 일을 크게 만들었다. 문제는, 납품되었던 레퍼런스 폰이 요구사항을 자의적으로 해석해서 잘못 적용한 폰이었다는 것이다. 그걸 따라한 나도 바보가 되어 버렸다. 요구사항 분석은 모든 구현 작업에 선행되어서 꼼꼼하게 진행되어야 함에도 불구하고, 난 가장 기본을 무시하고 진행을 했던 것이다. 프로젝트 시작 몇달 전에 문서를 읽어본 것이 다고, UI 문서는 몇번 더 읽었지만 정작 요구사항 문서가 뭔지, 어떤 의미를 갖는지, 뭐가 더 중요시되야 하는 문서인지 전혀 배경지식도 없이 일을 진행하고 있었다. 이건 시말서를 쓰라고.. 더보기