제목 | 어제 작업하면서 생각해본 모듈화의 결론.. | ||
---|---|---|---|
글쓴이 | 규지니 | 작성시각 | 2012/11/16 11:29:55 |
|
|||
목적. 최대한의 공통점을 찾아서 2차 작업시에 노가다를 안해야 한다. 결론. 업무의 효율성을 높여야 된다. HMVC를 이용합니다. 저는.. 코드이그니터의 개념은 MVC모델을 이용해서 controller, model, view 가 조합되어 사용자 페이지에 보여지게 되는데 공통적인 문제점이 URL에 따른 모듈확장 문제 1. 일반적인 사이트의 경우 관리자모드와 사용자모드가 별도로 존재하는 것에 대한 문제 - 모델은 공통으로 사용하지만 컨트롤러에 중복되는 소스가 많이 들어감(경험상 저의 경우) - 대표적으로 컨트롤러에서 직접적으로 모델에 접근(경험상 저의 경우) 2. 기존접근방식은 URL을 기준으로 프로그램을 작성하는데 CI는 이 기준이 달라질 수 있다. 그래서 생각해본 결론은.. 모듈 = [ 컨트롤러 -> 공통 라이브러리 -> 모델 -> 뷰] 코드이그니터의 기본 라이브러리들이 딱 그 수준이었습니다. 거기서 조금더 살을 붙이고 다듬으면 모듈수준으로 올라올 수 있을거 같습니다...ㅡㅜ 배포판이 아니라면 공통 라이브러리까지만 이용해도 내가 원하는 어느 페이지라도 모듈/컨트롤러/메소드/URL 에 구애 받지 않고 목록보기, 쓰기, 읽기, 보기 등 모든 기능들이 가능할 거 같습니다. 지금까지는 php 닥 코딩은 이런 생각 자체를 하지 못했는데 참 좋네요. 다른 어떤 이유를 떠나서 객체지향 못버릴거 같습니다....ㅜㅜ 기술적으로 배워가는 부분이 있어서 두서없으실지도... |
|||
다음글 | 혹시 mpdf 파일 얻을수 있는 방법 좀 알수 없을까여... (2) | ||
이전글 | 오늘 정모네요. (5) | ||
변종원(웅파)
/
2012/11/16 13:17:52 /
추천
0
|
규지니
/
2012/11/16 15:37:32 /
추천
0
네 맞습니다~ 웅파님
처음에는 tank_auth 를 사용해보고 이거 왜 이런식으로 짜놨는지 더 불편하더라구요 그런데 직접 프로젝트에 적용하다보니 동일한 소스는 늘어가고 수정하기도 힘들어지니.. 자연스럽게 이게 왜 이렇게 짜뒀는지 이해가 됩니다. 공통 라이브러리 구조도 소스가 수정이 어려운건 맞을거 같습니다. 웅파님께서 말씀하신 부분은 공통 라이브러리가 필요없이 헬퍼에 해당 함수를 선언하고 사용하는 것을 말씀하시는 건가요? |
변종원(웅파)
/
2012/11/16 15:42:44 /
추천
0
네. 클래스 라는 것이 일련의 연결된 함수들의 그룹핑이라고 생각하면 공통 라이브러리는 그냥
공통으로 쓰는 것만 모은거라 굳이 클래스까지는 필요가 없는 것 같아서요. 헬퍼 안에서도 ci instance 선언하여 사용할 수 있기 때문에 헬퍼정도가 좋은 것 같아요. |
라이브러리에서 모델에서 select, update 등 수행 후 그 결과가 라이브러리로 반환,
라이브러리에서 컨트롤러로 반환, 그 결과를 뷰로 출력.
모듈화를 위해서는 그렇게 구현하시는게 좋습니다.
라이브러리만 로딩하면 모든 액션을 이용할 수 있으니까요.
전 개인적으로는 선호하지 않는 구조이긴 합니다. (그냥 mvc패턴에 충실한... ^^;)
예전 개발구조라면 mysql 라이브러리에서 직접 입출력을 담당하고 그 안에 로직도 넣고 했던 터라
그러한 패턴이 맞지만 ci에서는 데이터베이스는 라이브러리와 분리된 개념으로 따로 떨어져있습니다.
한동안은 분석을 해서 공통 라이브러리와 공통 모델을 만들어서 사용했는데 지금에 와서는
굳이 공통 라이브러리가 필요할까 싶습니다. 그냥 공통헬퍼로 사용을 하고
공통 모델만 만드는 형태를 생각하고 있습니다.