상세 컨텐츠

본문 제목

당신의 프로젝트 CRUD는 고려했는가?

기획 도전기

by 기여자 2022. 12. 12. 00:01

본문

교내에서 여러 프로젝트를 직접 하거나 다른 사람의 프로젝트를 보면 데이터의 생성부터 활용, 변경, 제거까지 모두 고려를 하지 않고 어딘가 구멍이 나있는 경우가 많다.

 

<상대 프로젝트를 구경하는 상황>

나 : "게시물을 작성하잖아 이거는 어떻게 지워?"

상대 : "어?"

상대 반응
내 반응

물론 교내 프로젝트는 평가 이후 버려질 확률이 높기 때문에 이를 무시하고 진행해도 문제가 없다. 교내에서 수업과제로 제작한 프로젝트중 실서비스까지 진행된 것은 없기 때문이다.

 

나도 그렇게 생각하고 대수롭지 않게 넘겼었다....

 

이번 외부 프로젝트를 진행하면서 기존에 설계한 정보구조가 이상했음을 느꼈다.

 

초기 정보구조 마인드맵

이렇게 테이블의 데이터 타입을 지정한 것은 문제가 없었다

(정확히 따지면 텍스트의 길이 제한, 컬럼의 개수 제한등 개발자랑 상의하고 추가할 영역도 남아있다)

 

그런데 이 테이블을 설정할 수 있도록 한 것은 "생성"이다. 이후 다른 곳에서 이를 어느 시점에서 "읽을지", 컬럼을 "변경"할 때 고려할 것은 무엇인지 언제 변경할 수 있는지, 이제 안 쓰는 컬럼은 언제 "지우"는지 그 어떤 것도 고려가 안되어 있었다.

 

(접은 글은 프로젝트 진행 배경)

더보기

위의 정보구조를 두달전 설계한 뒤 개발을 담당한 친구들에게 "각 화면에 필요한 정보야" 하고 넘겨준 이후 방치하고 있었다. 이후 프로젝트는 실패했다. 이 당시 클라이언트가 화를 내며 전화하기 전까지 프로젝트는 모두의 기억속에 잊혀져 있었다. 이 프로젝트에서 나는 프로젝트를 관리하는 pm으로 온 이상 프로젝트 완료 일정과 개발 해야할 화면, 자료구조 모습, 로직을 명확히 넘겨주고 제때 개발이 끝나도록 관리를 했어야 했었다. 하지만 기획자로 진로를 변경하고 시작한 첫 프로젝트부터 시원하게 납기를 어겨버렸다. 결국 이 책임이 전부 나에게 있었음을 다시 깨닫는 순간이었다.

지금은 1월초 납기를 목표로 지난 실패를 상기하며 다시 진행중이다

 

 

이번 프로젝트는 교내프로젝트와 달리 외부 사람들이 실제로 이 서비스를 사용해야하고 현장에서 문제없이 작동해야한다.

 

다시 CRUD를 꼼꼼하게 체크했다.

이를 정의하고 다시 화면 구조를 보니 문제가 다수 존재했다.

부실한 정보구조로 화면을 그리니 필요없는 테이블을 지우는 기능이 존재하지 않았다.

즉 어플리케이션을 오래 쓰면 재설치해야만 데이터를 지울 수 있다는 것이다.

만들고 지울 수 없다!

기존 작물 테이블의 컬럼을 수정할 때 저장된 데이터가 있는 경우 등 여러 예외상황을 전혀 고려하지 않았다.

현재는 고려되어있다.

데이터는 물론 테이블까지 편집이 가능한 미니 데이터베이스와 같은 프로젝트인 것을 기획도중 깨닫게 되었고 상당히 어려운 프로젝트인 것을 나중에 알게 되었다.

 

초기 화면, 기능기반 정보구조

초기 정보구조는 매우 부실했고 이건 어떤 걸 만들지 나열한 수준밖에 되지 않았다.

 

현재 정보구조도에서 데이터구조만 스크린샷
화면내 표시할 정보 구조

실제 완벽하지도 않고 생략한 것도 많은 정보구조지만 최소한 무얼 개발해야 할지 어떤 기능이 화면 내에 담겨야 할지 볼 수 있다.

처음 만드는 기획서라 잘 할 수는 없겠지만 다행이 개발을 같이 할 친구들이 있어 부족한 점은 메꾸면서 완성할 수 있을 것이다.

 

이 글을 읽는 분들도 개발, 기획하며 기능을 구체화할 때 데이터의 Create, Read, Update, Delete를 모두 고려하고 빠트리는 기능은 없는지 체크했으면 좋겠다.

관련글 더보기