CI 묻고 답하기

제목 컨트롤러와 모델의 분리에 대해서 질문드리겠습니다.
글쓴이 오징어 작성시각 2010/10/05 16:02:16
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 20743   RSS
회원가입을 예로 들면

현재 회원을 받을지 유무
필수 입력값 검증(아이디, 비밀번호, 메일주소)
설정에 따라 입력값 검증(특기, 취미, 학력)
아이디 중복 검사
비밀번호 md5
db 입력

생각해보면 이런식으로 흐름?이 있다고 생각합니다.
궁금한 점은 위에 저런식으로 나열되어 있을 때
어느 부분은 컨트롤러로 해야하는지
어느 부분은 모델로 빼야하는지 분리하기 난해하여 질문드립니다..

예를 들어 회원가입이 방문자가 할 수도 있고,
관리자가 가입시켜줄 수도 있고........

아이디 중복 검사부분을 따로 빼서 처리한다면
모델로 뺴야하는지  컨트롤러로 빼야하는지...... 아니면 라이러브리로 뺴야하는지......

만약 사진 업로드 부분도 있다면 또 어디로 뺴서 처리해야하는지...

참고 관련 문서도 있으시면 링크도좀 부탁드려요...

 다음글 세션이 자주 끊깁니다. (1)
 이전글 혹시 system 폴더 파일들 압축된게 있나요

댓글

변종원(웅파) / 2010/10/05 16:40:04 / 추천 0
컨트롤러는 말 그대로 컨트롤하는 주체입니다.

말씀하신 부분은 기능에 해당하는 것이라 모델로 처리하시는 것이 맞습니다.
예로 드신 회원가입을 유저가 할 수도 있고 운영자가 할 수도 있는데 컨트롤러에서 처리를 한다면
컨트롤러가 2개가 되던가 운영자가 사용하는 가입주소나 유저가 사용하는 가입주소가 동일해야겠죠
(물론 라우팅을 이용하여 처리할 수는 있지만 논외로 하고)

회원가입에 대한 각각의 기능들이 모델로 되어 있다면 유저 회원가입 컨트롤러에서 불러서 사용하고
운영자 컨트롤러에서도 그 모델을 불러서 사용할 수 있습니다.

모델은 각각의 기능들의 실제 액션을 담아놓는다고 생각하시면 됩니다.

회원가입 컨트롤러

1. db나 배열의 회원사용여부 값에 따라 아래 로직을 진행할지 여부 판단

2. 폼검증 라이브러리에서 처리(필수 입력값 검증(아이디, 비밀번호, 메일주소), 설정에 따라 입력값 검증(특기, 취미, 학력), 아이디 중복 검사) <- ci의 form validation 라이브러리에서 처리

3. 이상없이 넘어온 post값을 db에 insert <- 모델에서 처리

4. 가입완료후 페이지로 이동


좌측 메뉴에 보시면 포럼소스가 공개되어 있습니다. 그리고 마냐님의 게시판소스도 공개되어 있습니다.
다른 분들은 어떤 식으로 컨트롤러와 모델을 사용하시는지 참고하실 수 있습니다.
오징어 / 2010/10/05 17:01:28 / 추천 0
컨트롤러 부분에서
가입할지 안할지 여부 확인
입력값 검증
아이디중복확인
뷰 처리

모델은
단순 입력값 db입력

다른 모델에
아이디중복 검사 모듈 작성

이런식으로 개발하면 된다는 말씀이신가요??

답변 감사합니다.