CI 묻고 답하기

제목 공통 모델 사용에 관한 조언 부탁해요
글쓴이 꾸숑 작성시각 2013/05/03 06:54:41
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 17426   RSS
제가 CI 매뉴얼 본지가 3달이 지나가고 있습니다.
나름 이런 저런 삽질끝에 이제 조금 알겠군요^^

다름이 아니라 작업하다 보면 항상 컨트롤러, 모델, 뷰 작업하는데 조금 작업량이 많군요...
컨디션이 안좋을때는 진짜 오타에 오류에 MVC를 왔다 갔다 하다 보면 해뜰때도 있더군요^^
일단 만들어 놓으면 정리가 되고 확장성등 관리가 편한 반면에 처음 제작시 머리와 손이 바쁜것이 불만입니다.~~
MVC와 스키마 자동 생성하는것도 사용해봤는데 재미 삼아 할만 하지만 어짜피 그대로는 못쓰겠더군요~~~

그래서 이리 저리 작업하다가 생각해본것인데.. 모델을 공통 모델을 만들어서 사용하는것이 어떻지 생각해 봤습니다.
항상 모델 작업하다보면 했던 작업 또 하는 느낌이 많이 들어서 확인해보니 매번 같은작업을 하고 있더군요
테이블명 등만 다르게 계속 만들었던것 같습니다. insert, update, delete ...

모델에서 변화되는것은 테이블명, where문 등 4가지정도만  변수등으로 처리하고 그러면 가능도 하지 않을까 생각이 드네요...
물론 공통모델을 사용하기 위해서는 나름대로의 규칙을 만들어서 일관되게 모델에 접근? 해야 겠지요...

이런 형태로 공통 모델을 사용한다면 로딩속도, 작업속도, 작업소스의 질? 등에 도움이 되지 않을까 조심히 생각해보면서

작업 들어가기 전에 선배님들의 말씀 듣고 해볼까 합니다.


★요즘 소스 길이 줄이는데 재미 붙었어요^^
불필요한 내용 삭제하고 공통적으로 사용할것은 하나로 통합하고
이제 파일숫자 줄여 볼까 합니다.^^
타켓은 모델~~~~~~~~~~
태그 로딩속도,작업량,공통모델,모델
 다음글 혹시 PHPExcel 에서 pdf사용해보신분계신가요? (7)
 이전글 마냐님 test 보드에서요 . (3)

댓글

milosz / 2013/05/03 08:04:46 / 추천 0
모델은 기본적으로 CI_Model을 상속받는 구조니 아래의 문서를 참고하셔서 코어 클래스를 확장시켜 상속받는 방법도 좋을듯 합니다. 기본적인 get_list(), get_item() 과 같은 메소드를 선언해두면 좀 편하게 사용할 수 있지 않을까요?
 
변종원(웅파) / 2013/05/03 08:08:57 / 추천 0
 정상적인 방향으로 가고계시네요.

단순 입출력이나 게시뭉 카운트 정도 작업하시면 될거구요. 

많은 상황을 하나의 함수에 담으려고 하면 로딩시 사이즈도 그렇고 
유지보수도 문제가 될수있습니다.

복잡해지면 안쓰는 코드가 나와도 찾지못하고 방치가 됩니다.

그리고 협업시 1명만 공통함수를 수정하게 하고 수정시 전파를 확실하게 해야합니다.

공용 라이브러리, 공용 모델 사용하다가 둘다 없앨건 없애고 몇개의 헬퍼로 분할해서 사용중입니다. ^^
꾸숑 / 2013/05/03 08:58:38 / 추천 0
milosz//
답변 감사합니다.
코어는 만질 능력이 않되어서 실력을 키운후에 함 살펴 봐야 겠네요..

웅파//
답변 감사합니다.
나름 연구 해본것인데 방향을 처음에 제대로 잡고 갈려고 질문 드렸네요^^
경험적인 답변 감사 합니다.
덕분에 시행착오 줄일 수 있을것 같습니다.

열공!
risa / 2013/05/03 09:06:36 / 추천 0
 저도 상속을 추천 합니다.

이건 100% 동일 하게 사용할수 있다. 혹은 빈도율이 매우 높다.

뭐 그런게 있다면야 어디에 담든 추가로 상속을 하시면 됩니다.

개인적으론 완벽하게 하나의 모델로 가는건 저도 반대입니다.

관리가 어렵다는 점도 있지요.

하지만 다른게 유지보수가 용이하다고 하는게 아닙니다.

소스 한줄이라도 더 줄이고 직관적으로 눈에 보이면 그게 유지보수가 용이 한겁니다.

공통모델을 따로 빼고 개별적으로 빼야 하는것을 따로 빼서 상황에 맞게 조합 하는것이

지금으로선 가장 좋은 방법이라 생각 합니다.
한대승(불의회상) / 2013/05/03 09:18:10 / 추천 0
꾸숑// 도움이 될지 모르겠습니다만...
코어 만지는게 부담이 되신다면 아래 글 참조 함 해보세요.

cikorea.net/tip/view/1006/page/3/
꾸숑 / 2013/05/03 17:28:41 / 추천 0
risa// 답변 감사합니다. 방법이 많아서 고민 스럽네요^^
불의회상//공통모델을 상속해보란 말씀이시지요?

일단 학습차원에서 공통모델(common_model.php)을 만들고
공통모델에서 가장 기본적이고 많이 사용하는 insert, update, delete 등을 넣어 놓고 상속이든 로드든  가져와 사용해 볼게요...
그리고 공통모델에서 벋어 나는것만 기존 model에 넣어 사용하기....
즉 model파일 숫자 줄이는게 아니라 model 소스 줄수 줄이기가 되겠네요...

이정도 하면 모델들 소스 줄수를 최소한 절반 이상은 줄일수 있고... 정리가 쉽게 될것도 같네요...
현재 제가  제작 사용하는 모델이 15개 이니까....  소스를 절반씩 줄인다면 좋은 효과가 있을것 같네요