Skip to content

[club] autoSizeColumn 제거, 고정 폭 적용 - #424

Open
ZaMan0806 wants to merge 2 commits into
developfrom
refactor/club-excel-column-width
Open

[club] autoSizeColumn 제거, 고정 폭 적용#424
ZaMan0806 wants to merge 2 commits into
developfrom
refactor/club-excel-column-width

Conversation

@ZaMan0806

Copy link
Copy Markdown
Collaborator

개요

CreateClubExcelServiceImpl의 동아리 엑셀 생성 로직에서 autoSizeColumn 호출을 제거하고 고정 컬럼 폭(setColumnWidth)으로 대체하였습니다.

본문

autoSizeColumn은 AWT 폰트 렌더링을 이용해 컬럼별로 전체 행을 순회하며 셀 너비를 실측하는 고비용 연산입니다. 동아리 엑셀은 컬럼 구성이 고정되어 있어 자동 폭 계산이 굳이 필요하지 않다고 판단하여, 각 컬럼에 적절한 고정 폭을 지정하는 방식으로 변경하였습니다.

동일한 항목을 다루는 CreateStudentExcelServiceImpl에는 원래 autoSizeColumn 호출이 없었으며, 프로젝트 전체를 검색한 결과 이번에 수정한 CreateClubExcelServiceImpl이 유일한 사용처였습니다.

POI XSSFWorkbook 생성 및 직렬화만 분리하여 측정한 결과는 다음과 같습니다.

행 수 autoSizeColumn setColumnWidth 개선 배수
30 11.56ms 4.14ms 2.79배
100 13.95ms 4.24ms 3.29배
500 46.03ms 14.28ms 3.22배

절대 시간 자체는 크지 않아 전체 API 응답 시간(DB 조회, 네트워크 전송 포함) 대비 체감 개선은 제한적일 수 있으나, 불필요한 CPU 연산을 제거하여 확인 가능한 성능 이득을 확보하였습니다.

기존 CreateClubExcelServiceTest 테스트가 정상 통과함을 확인하였습니다.

@ZaMan0806 ZaMan0806 added the enhancement:개선작업 새 기능 또는 기존 코드 개선에 관한 내용입니다 label Aug 25, 2026
@github-actions github-actions Bot added the waiting for review:검토 대기 확인을 대기하고 있습니다 label Aug 25, 2026

@pr-agent-demo pr-agent-demo Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Overview

    • 동아리 엑셀 생성 로직에서 autoSizeColumn 호출을 제거하고, 컬럼별 고정 폭(setColumnWidth)을 적용하도록 변경했습니다.
  • Intent

    • autoSizeColumn의 AWT 폰트 렌더링 기반 셀 실측으로 인한 불필요한 CPU 비용 제거
    • 동아리 엑셀은 컬럼 구성이 고정되어 있어 고정 폭으로도 충분하다는 판단
    • 경미하지만 확인 가능한 엑셀 생성 성능 개선
  • Risk

    • 전체적으로 낮은 리스크
    • 리뷰 시점에 중점적으로 확인할 부분:
      • 고정 폭이 너무 좁아 동아리명, 담당자명 등 긴 텍스트가 잘릴 가능성
      • 한글/특수문자/긴 값 포함 케이스에서 가독성 유지 여부
      • 기존 테스트 통과 확인은 언급되어 있으나, 실제 생성된 엑셀 화면 확인 필요

2 inline comment(s)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement:개선작업 새 기능 또는 기존 코드 개선에 관한 내용입니다 waiting for review:검토 대기 확인을 대기하고 있습니다

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant