LRIM 리뉴얼 전체 지원자 관리 페이지 최적화
100개의 테이블
데이터 형태
// 이런 데이터가 100개
{
data: {
"id": "682681dad12a496ef8ebab14",
"name": "조훈",
"email": "hunchokr@naver.com",
"phone": "010-8998-2730",
"experienceType": "경력",
"experienceYears": 21,
"createdAt": "2025-05-16T00:07:54.686Z",
"updatedAt": "2025-05-16T00:07:54.686Z",
"document": {
"_id": "682681dad12a496ef8ebab23",
"applicantId": "682681dad12a496ef8ebab14",
"recruitmentId": "66f0e31e54528140cb4d760f",
"positionTitle": "인공위성기업 [루미르] 기구 설계 개발 채용",
"isDeleted": false,
"isRejected": false,
"isHired": false,
"previousStage": {
"id": "682230792338ffd827900b6e"
},
"currentStage": {
"id": "682230792338ffd827900b6e",
"name": "서류 지원",
"categoryId": "682230792338ffd827900b6a",
"categoryName": "Opened"
},
"createdAt": "2025-05-16T00:07:54.868Z",
"updatedAt": "2025-05-16T00:07:54.868Z",
"__v": 0
},
"viewInfo": {
"hasViewed": false
},
page: 1,
limit: 100,
total: 935,
totalPages: 11
}테이블 가상화 적용 전

테이블 가상화 적용 후

감소된 시간: 224ms - 152ms = 72ms 향상 비율: (72ms / 224ms) x 100% = 약 32%
조건부 데이터 호출 로직 적용 (지원자 상세 패널)
감소된 시간: (160ms - 136ms) = 24ms 향상 비율: (24ms / 160ms) x 100% = 약 15%
LRIM 리뉴얼 지원자 관리 페이지 최적화 기술 레포트
개요
LRIM 리뉴얼 프로젝트의 지원자 관리 페이지에서 대용량 데이터(100개 테이블, 총 935명의 지원자 데이터) 처리 시 발생하는 성능 문제를 해결하기 위해 두 가지 최적화 기법을 적용했습니다. 본 레포트는 적용된 최적화 기법과 그 결과를 분석합니다.
성능 최적화 전략
1. 테이블 가상화(Table Virtualization) 적용
문제점
- 100개의 지원자 테이블을 동시에 렌더링하여 초기 로딩 시간이 과도하게 소요
- DOM 노드 수 증가로 인한 메모리 사용량 증가 및 스크롤 성능 저하
해결 방안
테이블 가상화 기법을 적용하여 화면에 보이는 영역의 테이블만 렌더링하고, 스크롤 시 동적으로 테이블을 생성/제거하는 방식으로 구현
데이터 구조
각 지원자 데이터는 다음과 같은 구조로 구성됩니다:
json
{
"data": {
"id": "682681dad12a496ef8ebab14",
"name": "조훈",
"email": "hunchokr@naver.com",
"phone": "010-8998-2730",
"experienceType": "경력",
"experienceYears": 21,
"createdAt": "2025-05-16T00:07:54.686Z",
"updatedAt": "2025-05-16T00:07:54.686Z",
"document": {
"_id": "682681dad12a496ef8ebab23",
"applicantId": "682681dad12a496ef8ebab14",
"recruitmentId": "66f0e31e54528140cb4d760f",
"positionTitle": "인공위성기업 [루미르] 기구 설계 개발 채용",
"currentStage": {
"id": "682230792338ffd827900b6e",
"name": "서류 지원",
"categoryId": "682230792338ffd827900b6a",
"categoryName": "Opened"
}
},
"viewInfo": {
"hasViewed": false
}
},
"page": 1,
"limit": 100,
"total": 935,
"totalPages": 11
}성능 개선 결과
- 적용 전: 224ms
- 적용 후: 152ms
- 개선 효과: 72ms 단축 (약 32% 성능 향상)
2. 조건부 데이터 호출 로직 적용
문제점
- 지원자 상세 패널을 열 때마다 불필요한 데이터 호출 발생
- 이미 로드된 데이터를 중복으로 요청하여 네트워크 비용 및 응답 시간 증가
해결 방안
지원자 상세 정보 조회 시 다음과 같은 조건부 로직을 적용:
- 지원자 행 클릭 시 상세 정보를 각 탭을 클릭했을 때 조회하도록 로직 개선
성능 개선 결과
- 적용 전: 160ms
- 적용 후: 136ms
- 개선 효과: 24ms 단축 (약 15% 성능 향상)
전체 성능 개선 효과
누적 성능 향상
두 가지 최적화 기법을 통해 달성한 전체 성능 개선:
| 구분 | 적용 전 | 적용 후 | 개선 효과 |
|---|---|---|---|
| 테이블 렌더링 | 224ms | 152ms | 72ms (32% 향상) |
| 상세 패널 로딩 | 160ms | 136ms | 24ms (15% 향상) |
| 총 개선 효과 | 384ms | 288ms | 96ms (25% 향상) |
사용자 경험 개선
- 초기 로딩 시간 단축: 페이지 진입 시 체감 속도 32% 개선
- 인터랙션 응답성 향상: 지원자 상세 정보 조회 시 15% 빠른 응답
- 메모리 사용량 최적화: DOM 노드 수 감소로 브라우저 메모리 효율성 증대
기술적 고려사항
구현 복잡도
- 테이블 가상화: 스크롤 이벤트 처리 및 동적 렌더링 로직의 복잡성 증가
- 조건부 데이터 호출: 캐시 무효화 전략 및 데이터 일관성 관리 필요
확장성
- 현재 935명의 지원자 데이터를 기준으로 최적화되었으나, 더 많은 데이터에 대해서도 확장 가능한 구조
- 페이지네이션과 결합하여 추가적인 성능 개선 여지 존재
결론 및 향후 계획
LRIM 리뉴얼 프로젝트에서 적용한 두 가지 최적화 기법을 통해 전체적으로 25%의 성능 향상을 달성했습니다. 특히 테이블 가상화를 통한 32%의 초기 로딩 시간 단축은 사용자 경험에 직접적인 개선 효과를 제공합니다.