XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.

가령 A = 게시판, B = 알림 관리, C = 관리자 패널... 이라고 할때, ABC를 모두 포함한 모듈을 제작하고 있습니다.

 

확실히 모듈화 측면에서 보면 말도 안되는 개발이지만 개발 시일이 촉박해서 그렇게 만들고 있습니다.

 

제가 궁금한 것은 이렇게 큰 모듈을 만드는게 성능상 불이익을 받을 수 있는가 입니다. 

 

  • ?
    후하니 2016.12.27 07:45:12

    한 사이트에서 쓸꺼면 그냥 합치는게 낫지 않을까요?
    저라면 합칠듯 합니다.

  • profile
    투정 2016.12.27 07:49:23
    일단은 한 사이트에서 쓸거지만 향후 유사한 상황에서도 재사용을 하고 싶습니다. 사실 패키지 성격이고 내부적으로만 종속이 되기 때문에 굳이 쪼개서 번거롭게 할 필요성을 못 느끼긴 합니다. 하지만 성능상 이점이 있나 싶어서 여쭤봅니다.
  • ?
    후하니 2016.12.27 07:51:05

    php에서 성능이야 해괴하게 짜지 않거나 기가막힌 알고리즘을 짜지 않는 이상 별 차이 없지 않을까 싶네요

  • profile
    투정 2016.12.27 07:55:03
    답변 고맙습니다.
  • profile
    레믹스 2016.12.27 08:26:15
    음... 큰 모듈을 만들면 그만큼 함수 정의가 많아지니 아주아주아주~ 조금은 성능차이가 있겠죠.
    별 차이가 없을것 같긴 하지만요.
  • profile
    기진곰 2016.12.27 10:37:01

    XE에서는 controller, model, view (+admin, mobile, api) 정도밖에 구분하지 않기 때문에 이 구조 안에서 많은 기능을 넣으면 파일 하나에 몇천 줄씩 들어가게 됩니다. 파일이 커질수록 현재 페이지와 무관한 코드를 많이 로딩하게 되니 성능이 안 좋아지는 건 당연하고요. 특히 트리거가 들어가는 파일이 커지면 전혀 상관없는 페이지에서도 부담이 커집니다.

    코드 복붙을 최소화하고 공통 기능을 별도의 함수로 빼내면 많이 절약이 되지만 이것도 한계가 있고, 결국 어느 시점에선가 파일을 쪼개야 합니다. 그러나 여러 모듈로 쪼갤 필요는 없다고 생각해요. 한 모듈 안에서도 XE에서 기본으로 제공하는 구조 외에 얼마든지 파일을 만들 수 있고, 꼭 필요한 곳에서만 include_once를 사용하거나 spl_autoload_register로 끌어다 쓸 수 있으니까요.

    이런 방법으로 많은 파일을 그때그때 불러다 쓰는 예로는 고급 메일 발송 모듈이 있습니다. 트리거가 들어가는 파일은 몇 줄 없지만, 메일을 보내려고 하면 어마어마하게 많은 파일이 쓱~ 인클루드되지요.
    https://github.com/kijin/xe-advanced-mailer

  • profile
    투정 2016.12.27 12:19:06
    도움이 정말 많이 되었습니다. 감사합니다.
  • profile
    투정 2016.12.27 12:16:41
    음... @기진곰님 이 트리거 말씀을 하셔서 module.handler를 보고 있는데, 일단 모듈의 기본 MVC는 최대한 다이어트를 하는게 조금이라도 속도를 빨라지게 하는 핵심같네요.

    클래스 파일의 줄 수 자체의 문제보다도 트리거 실행을 위해 getModule로 모듈의 함수들을 다 끌어와서 인스턴스를 만드는데 이게 속도를 느려지게 할 수 있을 것 같습니다. method_exists도 중복이 되고 있네요.
  • profile
    기진곰 2016.12.27 12:17:46

    네, 트리거 실행시 상당히 많은 것이 로딩됩니다. 만약 모듈을 분리하신다면 트리거만 따로 모으는 것도 성능을 개선하는 한 방법이 될 수 있습니다.

  • profile
    투정 2016.12.27 12:20:44

    아... 그럴 수도 있겠네요. 근데 지금 생각해보니까 아예 트리거 전용 클래스로 가령 document.trigger.php를 만들어놓으면 트리거 불러오는데에 getModuleInstance까지 쓸 필요도 없을 것 같은데...

     

    아니면 그냥 trigger 디렉토리를 따로 파서 그 안에 trigger_name.php 이런 식으로 트리거를 모아놓거나요.

  • profile
    투정 2016.12.27 12:25:03
    아무튼 트리거 부분 지금 살펴보니까 개선의 여지가 상당히 있는 것 같습니다. 고수분들이 손 좀 봐주셨으면 하는 바램입니다.

    전 이만 의뢰받은 모듈 마저 만들러 가보겠습니다 ㅠㅠ

List of Articles
번호 제목 글쓴이 날짜
3555 XE알림센터 모듈 + 익명게시판에 대한 질문입니다. Hafree 2016.12.29
3554 사용자검색위젯 모바일에서 사용할 수 있는 방법이 있나요 ? 나만의너 2016.12.29
3553 안녕하세요 광고위치 때문에 질문드립니다. 1 file 낙타 2016.12.29
3552 글내용양식처럼 글제목양식도 미리 출력되도록 가능할까요? XE러버 2016.12.28
3551 helf me! 스티커 모듈 설치관련 9 보고하비 2016.12.28
3550 fc2스트리밍 영상에 관해 고수님들 답변좀부탁드려요. 5 배트매닝 2016.12.28
3549 앗.. 아래 질문 다시 수정해요. 문서에 태그가 없다면으로 고치고 싶습니다. 1 웹지기 2016.12.28
3548 스케치북 모바일 본문 글 복사하는법 2 디지털리스트 2016.12.28
3547 로그인버튼 1 Asound 2016.12.28
3546 익명게시판에서 댓글닉네임에 대한 질문 배트매닝 2016.12.28
3545 아톰 CPU에서 아톰 에디터가 구동되나요? 4 레믹스 2016.12.28
3544 PHP 그러니까 애드온에 조건을 넣어서 출력하려고 하는데요. 10 웹지기 2016.12.28
3543 소셜XE 상세한 질문 합니다 답변 부탁드립니다. 7 file 낙타 2016.12.28
3542 카페24 방화벽 설정이 맞게 되었는지 도움 말씀 부탁드립니다. 2 file yoon 2016.12.27
3541 xe보드에서 fc2 동영상 링크 안되나요? 18 배트매닝 2016.12.27
3540 폰트 적용 순서를 어떻게 바꾸나요? 1 file 라그릿 2016.12.27
3539 nginx 에러로그 문제 라그릿 2016.12.27
3538 닷홈 무제한 호스팅 질문드립니다. 1 file Overachiever 2016.12.27
3537 .soo_maps 이 없다면 이라는 조건을 걸고 싶습니다. 5 웹지기 2016.12.27
» 모듈을 크게 만드는게 좋을까요 아니면 기능별로 잘게 쪼개는게 성능상 좋을까요? 11 투정 2016.12.27
Board Pagination Prev 1 ... 45 46 47 48 49 50 51 52 53 54 ... 227 Next
/ 227
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...