질문
Q #10056
ci관련 질문과 조언을 구하고자 합니다.
짱큰형
2012-10-11 22:05:46
현재 프로젝트 하나를 들어가는데요.
ci를 사용하려고 합니다.
모델 / 뷰 / 콘트롤러 중
모델과 콘트롤러의 역할 분담에 고민이 생기더라고요.
문서의 량을 최소화 하자!! 이러고는 있는데. 기준이 모호해서 그런지 마구마구 문서만 늘어나고 있네요.
질문1
1안 db 출력은 모델에서 전담을 하며, 입력/수정/삭제의 경우엔 콘트롤러에서 처리후 모델에서 가져옵니다.
2안 모델에서 출력 입력 수정 삭제를 전부 다 한다.
3안 모델에서 출력만 담당 콘트롤러에서는 중계적인 운영만, 연산은 라이브러리를 만들어서 모든걸 처리(입력 수정 삭제 회원 가입 처리 등).
프로젝트의 특성이 비슷한 출력이 많지만 약간씩 다릅니다.
예를 들어
-콘텐츠 를 출력한다.
1.콘텐츠-코멘트-유저정보-좋아요-뷰어수(일반 출력물)
2.콘텐츠-유저정보-유저의 활동로그(a가 좋아요했습니다. a가 코멘트를 달았습니다. a가 클립했습니다 등)
이런 소셜서비스 같은 출력이 많습니다.
최초 로드시 출력은 기본 출력 나머지 더 불러오기는 ajax를 사용 합니다.
11개의 기본문서(뼈대)와 인클루드문서 50개(ci적용 전 순수 뷰문서 수)
뷰같은 경우엔 부분적으로 페이지 전환이 (중앙 콘텐츠 출력부분과 메뉴 네이게이션 바) 많으며, 출력 콘텐츠도 달라집니다.
출력 부분의 디자인의 경우엔 4가지정도 입니다. 이미지를 많이 불러옵니다. 출력물 마다 이미지가 한장 이상이며, 다수의 장이 가능합니다.
질문2
ci이 실행시 초기화를 하는데.. 제가 문서에 사용한 라이브러리만 불러 오는건가요? 아니면 ci 전체 내장된 모든 기능이 초기실행시 다 불러오는건가요?
처음 실행시 셋팅되는 것이?
질문3
콘트롤러 하에 있는 문서에서 다른 문서를 호출하는게 많아지던데 문제가 없나요?
헬퍼 라이브러리를 문서마다 선언해 줬더니.. 엄청 느려지더라고요..
질문4
모델역할을 어디까지 하는것이 좋은지 조언좀..
질문5
validation 폼검증.. 어디까지 ci를 사용하는것이 좋은지? ajax로 중복값 처리를 하는것이 좋을까요? 아니면 그냥 콜백함수를 사용하여 하는것이?
자바스크립트로 클라이언트 영역에서 검증하는게 좋은지? 아니면 ci form validation를 사용하는게 좋을까요?
아니면 제이쿼리 벨리데이션을 사용하는것이 좋을까요?
질문6
한 문서가 길어지는게 문서가 많아지는것 보다 낫나요?
질문7
redirect 함수 사용시 값을 같이 보낼순 없나요?
기타
반복되는 페이지 불러오는 곳이 있습니다. 폼으로 전송되는 값에 따라 뷰를 뿌려주는데 케이스문을 사용하여 뿌려 줍니다.
4개 정도의 뷰를 케이스문으로 하였습니다. 괜찮은지와..
반복되는 페이지 이지만. 모델에서 db에 접속하여 검증을 하여 다시 뷰를 부릅니다. 이때 오류 메시지를 뿌려줘여 하는데.
이것이 엄청 꼬였어요.. 질문 5번과 같은 질문입니다. 검증부분을 어떻게 처리해야 깔끔하게 오류 메시지까지 뿌려줄수 있을런지.. 조언 부탁드립니다.
마지막으로 날씨가 많이 추워 졌습니다.
다들 건강하시길 바랍니다. 꾸벅.
폼전송으로 받은 데이터 보안처리 후 모델로 넘기고 넘어온 데이터 가공(또는 원쿼리로 처리)하여 뷰에 전달하는 것은 컨트롤러의 역할입니다.
아주 기본 라이브러리 빼고는 사용자가 로딩을 해야 실행시 메모리에 적재됩니다. 매뉴얼 찬찬히 보시면 input, output, uri 등 주소와 입출력에 관련된 것은 자동로딩입니다.
자바스크립트로 또는 ajax로 처리하더라도 프로그램단에서 한번 더 체크해야 합니다. ci 폼검증을 이용하면 한번의 액션으로 끝납니다.
파일이 많아지는 것도 길어지는 것도 개인적인 성향일 수 있습니다. 제 경우엔 사이트 레이아웃을 최소한의 파일로 구성하고 하나의 파일로 처리하는 편입니다.
리다이렉트시 변수 보내고 싶다면 주소에 붙여서 넘기세요. 주소 만드는 것은 누구?
케이스문이던지 if문이던지 상관없습니다만 다른 사람이 유지보수 한다고 생각을 하고 다른 사람이 봤을 때 유지보수를 편하게 할 수 있는지 없는지 생각을 해보세요.
꼬일 정도라면 분리 하시는 것이 좋습니다.