2026, 새로운 도약을 시작합니다.

개발자님께 전하는 그누보드6 관련 피드백

3553679647_1705746749.1597.png

얼마전 그누보드5로 만들어진 사이트를 마이그레이션을 해보았습니다.

이 과정에서 버그가 상당히 많이 발생해서,, 아래 나열된 몇몇 버그는 직접 수정을 거쳤고

기존에 사용하던 이윰빌더 기능들은 가급적 코어 부분을 건드리지 않고 플러그인 형태로 이식하여 작업을 진행중입니다.

이 과정에서 알게된 점 몇가지를 소개드리겠습니다.

1. 첨부파일 오동작

 - g5_board_file 테이블에서 일괄적으로 앞에 /data/file/{보드이름}/ 을 추가해주면 정상 동작하는걸로 확인되었습니다.

2. 외부 이미지 썸네일 오작동

 - 썸네일 불러오는 코드를 다음과 같이 변경하니 정상 작동하였습니다.

=============board_lib.py============================

def get_list_thumbnail(request: Request, board: Board, write: WriteBaseModel, thumb_width: int, thumb_height: int, **kwargs):

    """게시글 목록의 섬네일 이미지를 생성한다.

    Args:

        request (Request): _description_

        board (Board): _description_

        write (WriteBaseModel): _description_

        thumb_width (int, optional): _description_. Defaults to 0.

        thumb_height (int, optional): _description_. Defaults to 0.

    """

    config = request.state.config

    images, files = BoardFileManager(board, write.wr_id).get_board_files_by_type(request)

    source_file = None

    result = {"src": "", "alt": ""}

    if images:

        # TODO : 게시글의 파일정보를 캐시된 데이터에서 조회한다.

        # 업로드 파일 목록

        source_file = images[0].bf_file

        result["alt"] = images[0].bf_content

    else:

        # TODO : 게시글의 본문정보를 캐시된 데이터에서 조회한다.

        # 게시글 본문

        editor_images = get_editor_image(write.wr_content, view=False)

        for image in editor_images:

            imageS = image

            ext = image.split(".")[-1].lower()

            # TODO: 아래 코드가 정상처리되는지 확인 필요

            # image의 경로 앞에 /가 있으면 /를 제거한다. 에디터 본문의 경로와 python의 경로가 다르기 때문에..

            if image.startswith("{HTTPS 도메인}"):

                image = image.replace("HTTPS 도메인}","")

            if image.startswith("HTTP 도메인}"):

                image = image.replace("HTTP 도메인}","")

            if image.startswith("/"):

                image = image[1:]

            # image경로의 파일이 존재하고 이미지파일인지 확인

            if (os.path.exists(image)

                    and os.path.isfile(image)

                    and os.path.getsize(image) > 0

                    and ext in config.cf_image_extension):

                source_file = image

                break

            else:

                source_file = imageS

    # 섬네일 생성

    if source_file:

        src = thumbnail(source_file, width=thumb_width, height=thumb_height, **kwargs)

        if src:

            result["src"] = '/' + src

        else:

            result["src"] = source_file

    return result

===============썸네일 불러오는 코드===============================

기존 : 

{% if thumbnail.src %}

                <img src="/{{ thumbnail.src }}" alt="{{ thumbnail.alt }}">

{% else %}

변경 이후:

{% if thumbnail.src %}

                <img src="{{ thumbnail.src }}" alt="{{ thumbnail.alt }}">

{% else %}

=============================================================

3. sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')

상시로 이 문제가 발생하는데, 이건 저도 어떻게 해결해야 할지 영 모르겠습니다 ;;

|

댓글 5개

3번은 저도 그렇던데 DB 커넥션 풀 설정 조정해야되는거 같아요

임시로  database.py 의 create_engine 함수에다 pool_recycle=600

(600초 마다 연결 풀체크 갱신) 를 추가하니까 조금 줄었어요 그런데 가끔씩 나긴 하더라고요.

이런 상세한 설정들좀 env 로 빼줬으면 좋겠어요.

여기다 제보하면 고쳐주시겠죠

아 깃허브에 올려야 되나요

3번 항목 트랜젝션이 제때 안끝나서 쿼리가 오래걸려서 그렇다는 글이있네요

혹시 3번 에러가 발생한 개발 환경을 알려주실 수 있을까요?

@taltal CentOS7에서 파이썬3.11 설치해서 사용중입니다

요즘 버전에는 Lost connection  커넥션에러가 없네요

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드6 파이써니스타

그누보드6, 파이썬에 대한 지식과 경험, 일상 대화를 나누는 교류의 장입니다.
번호 제목 글쓴이 날짜 조회
50 3개월 전 조회 593
49 8개월 전 조회 665
48 10개월 전 조회 1,596
47 1년 전 조회 1,833
46 1년 전 조회 1,972
45 1년 전 조회 1,506
44 1년 전 조회 994
43 1년 전 조회 1,939
42 1년 전 조회 1,208
41 1년 전 조회 797
40 1년 전 조회 887
39 1년 전 조회 827
38 1년 전 조회 641
37 1년 전 조회 835
36 1년 전 조회 741
35 1년 전 조회 972
34 1년 전 조회 1,977
33 1년 전 조회 523
32 1년 전 조회 3,721
31 1년 전 조회 2,364
30 1년 전 조회 1,081
29 1년 전 조회 839
28 1년 전 조회 1,013
27 1년 전 조회 1,057
26 1년 전 조회 725
25 1년 전 조회 953
24 1년 전 조회 1,274
23 1년 전 조회 1,292
22 1년 전 조회 1,129
21 1년 전 조회 1,665
🐛 버그신고