• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 바람의나라 강의게시판 CR
    • 바람의나라 강의게시판 CR
    • 가독성 높은 스크립트 짜기!

      • 김돌돌
      • 2016.12.24 - 22:27 654

    뭐 가독성이라고하면 3개월전에 짠 소스를 다시 들여다봤을때 조금 더 쉽게 소스분석이 쉽게 가능하도록 코딩하는 것 이라고 보시면됩니다.

     

    정말 몇가지만 유의하시면 들이는 노력에 비해 가독성을 높혀주는 코딩을 하실 수 있습니다.

     

    대표적으로 가독성을 떨어뜨리는 대표적인 키워드는 for, while 등의 반복문과 if문이 있겠네요.

     

    if문의 경우에는 중첩되면 중첩될수록 뎁스가 높아지므로 최대한 중첩if문을 피해주시는게 좋습니다.

     

    가장 쉬운예를 들자면

     

    if( 조건 ){

    if ( 조건2 ){

     

    }else{

     

    }

    }

    해당 소스를 보시면 조건에 해당되면 조건2에대한 if 문을 실행하고 else문을 실행하죠, 위의 소스는 2뎁스입니다. 하지만 1뎁스로 바꿔보겠습니다.

     

    if( ! 조건 )

    return;

     

    if(조건2){

     

    }else{

     

    }

     

    위의 소스처럼 변경하시면 1뎁스의 if문으로 변경하실 수 있습니다. 뭐 이게 그렇게 가독성이 좋아지냐고 말씀하시면 if문 뎁스가 3~4가 되는 소스보단 if문 뎁스가 적을수록 소스분석이 쉽겠죠.

     

    또한 for문같은경우에는 가독성을 떨어뜨릴 수도있지만 유연하게 코딩을 할 수 있게 도와주는 키워드이기도 합니다.

     

    예를들면 대표적으로 궁사무기체크 같은경우는 대부분이 if || || || || if문에서 OR 조건으로 코딩되어있는 경우가 많습니다. 이럴경우에는

     

    궁사무기가 추가되면 직접 if문마다 추가되야하기도 하며 나중에 어떤 아이템코드들이 추가되어있는지도 파악이 어렵습니다.

     

    하지만 for과 배열을 이용하면 좀 더 쉽게 가능합니다. 편의상 자바스크립트로 작성해보겠습니다.

     

    function isArrowWeapone(weaponeSid){

    var arrowWeapones = [2414, 2455, 9999, 2305, 1999, 7575];

    for( var i=0; i<arrowWeapones.length; i++ ){

    if(arrowWeapones[i] == weaponeSid)

    return true;

    }

    return false;

    }

     

    해당 함수는 무기번호를 넘겨받아서 배열이랑 비교해서 맞으면 true 를 반환하고 false를 반환합니다. 이처럼 공통으로 처리하면서 for문으로 처리한다면 for문을 모르더라도 배열에 아이템번호만 추가하면 되므로 메인개발자가 아니더라도 해당 컨텐츠를 추가할 수 있습니다.

     

    이처럼 공통작업과 가독성 높히는 코딩 혹은 유연성을 높히는 코딩을 하시면 메인개발자의 부담도 줄어들 뿐만아니라 유지보수에도 굉장히 유용합니다.

    이 게시물을..
    N
    0
    0
    • [CR] 인던 추가방법웨이1
    • 서버 느리게하는 요소김돌돌
    • 0
      김돌돌

    김돌돌 님의 최근 글

    하인즈팩 1.2.373 608 79 2023 11.09 빅뱅전 본메에 가까운 팩이 뭐가있나요 121 3 2020 06.06 북방 좌표 참고 하세요 116 2018 04.08 가독성 높은 스크립트 짜기! 654 2016 12.24 서버 느리게하는 요소 971 2016 12.24

    김돌돌 님의 최근 댓글

    yty 2023 11.21 ㄳ 2023 11.08 감사욤 2023 11.08 화스가 화이트 스타 인가요? 2020 06.08 감사합니다 ㅎ 2018 04.08
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [CR] 인던 추가방법
    • 서버 느리게하는 요소
    • 목록
      view_headline
    × CLOSE
    기본 (92) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    92
    전체 노획 소스.
    프렌치좋아 2024.03.31 - 19:15 24
    91
    링클래식 APM GM 설정 오류 해결법
    마렬 2020.05.14 - 18:53 362
    90
    시간마다 나오는 공지를 수정하려면!
    하늘별풍선 2020.05.07 - 05:08 178
    89
    [CR] Bind Failed 오류 발생 시
    누스 2018.08.28 - 21:55 351
    88
    (초심자 관점) 2. CR 구축 방법
    하얀달 2017.01.15 - 17:06 3786
    87
    (초심자 관점) 1. APMSETUP7 다운 방법
    하얀달 2017.01.15 - 16:30 1659
    86
    [CR] 함수 기능 정리
    마사카 2017.01.07 - 05:18 4124
    85
    CR 운영자 명령어
    웨이1 2017.01.03 - 23:14 2325
    84
    CR 스크립트 if 문
    웨이1 2017.01.03 - 23:12 575
    83
    CR 변수
    웨이1 2017.01.03 - 23:11 392
    82
    스크립트 지식
    웨이1 2017.01.03 - 23:10 695
    81
    아이템 체크 사용자 정의 함수
    웨이1 2017.01.03 - 23:06 388
    80
    npc생성
    웨이1 2017.01.03 - 23:04 598
    79
    cr shop_db 참고
    웨이1 2017.01.03 - 22:46 342
    78
    맵블럭 오류
    웨이1 2017.01.03 - 22:44 465
    77
    CR 아이템 추가
    웨이1 2017.01.03 - 22:41 940
    76
    소지품 확인 사용자 정의 함수
    웨이1 2017.01.03 - 21:29 293
    75
    [CR] 인던 추가방법
    웨이1 2017.01.03 - 21:27 1457
    가독성 높은 스크립트 짜기!
    김돌돌 2016.12.24 - 22:27 654
    73
    서버 느리게하는 요소
    김돌돌 2016.12.24 - 01:30 971
    72
    프바 몹추가 팁
    김돌돌 2016.12.24 - 01:29 1005
    71
    cr 구축법
    김돌돌 2016.12.24 - 01:28 1527
    70
    맵 연결포트 강의입니다.
    김돌돌 2016.12.24 - 00:07 398
    69
    머리 염색 NPC 강의
    옹동봉 2016.12.22 - 20:36 165
    68
    [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin
    우지냥 2016.12.18 - 13:30 350
    67
    [CR] cr에서 숫자값을 저장할 수 있는 함수
    우지냥 2016.12.18 - 13:30 133
    66
    스크립트 팁 - 가독성 좋게해주는 팁
    우지냥 2016.12.09 - 07:21 194
    65
    유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다
    우지냥 2016.12.09 - 07:20 271
    64
    [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점
    우지냥 2016.12.03 - 20:34 798
    63
    [CR] 동화 // 조건의종류
    우지냥 2016.12.03 - 20:33 115
    62
    [CR] 동화 // 조건문의 기초
    우지냥 2016.12.03 - 20:33 113
    61
    CR] 동화 // 변수란 무엇인가?
    우지냥 2016.12.03 - 20:33 134
    60
    [CR] 동화 // 간략하고 짧은 강의
    우지냥 2016.12.03 - 20:32 206
    59
    [CR] 원거리 공격마법 만들기
    우지냥 2016.12.03 - 20:32 351
    58
    [CR] 전설 // 이전 강의에 이은 2번째 강의!
    우지냥 2016.12.03 - 20:31 199
    57
    [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    우지냥 2016.12.03 - 20:31 284
    56
    [CR] 이영아 // callfunc
    우지냥 2016.12.03 - 20:31 177
    55
    [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 123
    54
    [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 247
    53
    [CR] Chapter. 1-2 통합파일의 구조체( 무료 )
    우지냥 2016.12.03 - 20:30 456
    52
    [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 )
    우지냥 2016.12.03 - 20:29 527
    51
    [기타] 레이더즈 // IPv4 Address 구조강좌..
    우지냥 2016.12.03 - 20:29 138
    50
    [CR] 레이더즈 // 상점NPC만들기..
    우지냥 2016.12.03 - 20:29 190
    49
    [CR] 주작 // CALLFUNC "SLOTCHECK"
    우지냥 2016.12.03 - 20:28 96
    48
    [CR] 주작 // CALLFUNC "ITEMCOUNT
    우지냥 2016.12.03 - 20:28 99
    47
    [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기
    우지냥 2016.12.03 - 20:27 156
    46
    [CR] 주작 // switch문 추가 강의
    우지냥 2016.12.03 - 20:27 97
    45
    [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)
    행복e 2016.11.30 - 19:28 346
    44
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명3
    로이로이로이로이 2016.10.25 - 16:50 159
    43
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명2
    로이로이로이로이 2016.10.25 - 16:50 167
    • 1 2
    • / 2 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay