포럼

제가 프로그램쪽은 잘 몰라서 지식이 많이 부족합니다.
앞으로 이야기하는 내용에 잘못된 점은 지적해주시고 좋은 방법이 있다면 이야기해주셨으면 합니다.


XE의 core중 core는 sequence설계입니다. XE는 그 sequence를 담을 정수형을 bigint로 설정하였습니다.

bigint

-2^63(-9223372036854775808) ~ 2^63-1(9223372036854775807) 8바이트


최대수인 값을 직접 document_srl에 입력 한 후 돌려보았습니다. 문제없이 조회, 수정 되었습니다. 하지만 저의 고민은 이곳이 아닌 다른곳에서부터 시작되었습니다.


function getNumberingPath($no, $size=3) {
    $mod = pow(10, $size);
    $output = sprintf('%0'.$size.'d/', $no%$mod);
    if($no >= $mod) $output .= getNumberingPath((int)$no/$mod, $size);
    return $output;
}

echo getNumberingPath(9223372036854775807);


결과

-01/000


일반 php로는 수를 담고 출력은 되지만 연산이 들어가게되면 올바른 처리를 하지못하게 됩니다.

9.22337203685E+18


실제 저런 터무니 없는 수까지 도달은 상당히 어려우니 일단 어느자릿수부터 문제가 나왔는지 테스트해보았습니다.

echo getNumberingPath(999999999);

결과

999/999/999


php의 조건상 9자리실제 10자리까지가 한계입니다.

XE는 sequence가 9자리를 넘어가게되면 모든 기능이 전부다 정상적인 동작이 되지 못하며, 첨부파일 등 sequence를 연산하는 곳에 대해서 문제가 발생하고 맙니다. 이 말은 결국 XE가 사용하가능한 데이터의 수는 000000000~999999999 = 1000000000 이라는 결과가 됩니다.

9.22337203685E+18처럼 나오는 수를 숫자모양처럼 나오게는 가능합니다.


function getNumberingPath($no, $size=3) {
    $mod = pow(10, $size);
    $output = sprintf('%0'.$size.'d/', sprintf("%.0f",$no)%$mod);
    if($no >= $mod) $output .= getNumberingPath((int)sprintf("%.0f",$no)/$mod, $size);
    return $output;
}
    
echo getNumberingPath(9223372036854775807);

결과

647/484/147/002/


하지만 이것은 그냥 그럴듯하게 보이게할뿐 결코 올바른 정보가 아닙니다. 입력한 숫자가 10자릿수를 넘는 순간 저 수만 나오게되니까요.


제가 이 문제 때문에 짧은 시간이지만 몇일간 여러 자료를 보고 검색을 해보았지만 결국 일반 php를 이용해서는 극복이 안되는걸로 결론을 냈습니다. 만약 이 부분에 대해서 규칙에 얽매이지 않고 연산처리없이 받은 수 그대로 폴더를 생성해낸다면 XE가 사용가능한 데이터 수는 bigint 자료형 그대로 사용되지 않을까 생각합니다.
연산처리 외에 기본적인 처리에 대해서는 pico님께서 이슈를 이미 남기셨더군요.


XE공홈에 sequence는 현재 8자리이네요. 앞에 설명한대로 10자리부터 이상증상이 나온걸 고려해본다면 9자리의 도달은 지극히 일반적이며 결코 무한이 아니라고 봅니다.


위의 문제점에 대해서 XE개발팀 이하 고수여러분들께서 좋은 방법이나 해결 방향을 고민하고 계시다면 어떠한 방법을 해보고계신지 이야기해주셨으면 합니다.

글쓴이 제목 최종 글
휘즈 ㅋㅋ 너무 어렵네^^; [3] 2020.03.14 by BNU
파파민 최고관리 권한으로 수정하니 작성자 변경 됨, 버그(?) [5] 2013.12.25 by 파파민
socialskyo [주관적] XE 운영자라면 필수로 고마워해야 할 레이아웃/위젯 [8] 2013.12.25 by socialskyo
철갑 자바스크립트, CSS 참조에 좋은 사이트 koxo.com을 추천합니다. [4] 2013.12.25 by Lansi
송이파파 외부페이지 관련? [1] 2013.12.25 by Lansi
nado0124 XE SEO가 자료실에 없네요???  
참빛바다 자료등록이 안되네요. [3] 2013.12.24 by 참빛바다
참빛바다 어제부터 XE 관리자분이 휴일인가요?  
참빛바다 첨부파일 업로드 버튼이 안되서.. [3] 2013.12.24 by 참빛바다
하늘(skycheer) HTML, CSS, 자바스크립트, J쿼리, XML, ASP.Net, PHP, SOL 등의 수업 제공사이트 [1] file 2013.12.24 by 쿡래빗
정도의길을걷기싫다 XE 공홈 다운로드 자료실에 가장 필요한것이 무엇인가요  
낮은자 자료가 올라 안 가네요~ file  
socialskyo 어랏 묻고 답하기가...깔끔해진듯... [4] 2013.12.23 by qwms
착한부산남자 자음퀴즈를 만들어주셨으면 좋겠어요. ㅠ [7] 2013.12.23 by 착한부산남자
또별 1.7.4-beta.5 에서 2가지 문제발생 [4] 2013.12.23 by 또별
explode The Bootstrap 레이아웃 사용하시는 분들  
쿡래빗 레이아웃의 추세는? [5] 2013.12.22 by DynamicLaser
클로여 sqs 호스팅서 대체 무슨 일이 일어난거죠? [2] 2013.12.21 by LI-NA
jahong 웹서핑시 XE cannot connect to DB. 오류 [1] 2013.12.21 by XE
쿡래빗 반응형 레이아웃 개발시 [5] 2013.12.21 by 클로여