
인쇄·엑셀 내보내기 노하우 — 손님 응대 자료 1분 워크플로
엑셀 6곳(단지비교·미분양 단지/지역/실거래/추이·미분양비교) + BE 매물 엑셀 1곳 + /compare 인쇄(펼침→rAF 2회→print→afterprint 복원) + 수식 인젝션 6글자 방어(=+@-탭엔터). 7개 위치를 한 번씩 눌러 손님 자료를 1분에 떨어뜨리는 사용법.
손님 앞에서 상담을 마무리할 때 "PDF 로 보내드려도 될까요" "엑셀 한 장 더 받을 수 있을까요" 요청은 자주 들어옵니다. 이때마다 자료를 다시 만들면 5분이 사라지죠. 이 사이트는 엑셀 6곳 + 인쇄 1곳 = 총 7 위치에서 손님 자료를 1분 안에 떨어뜨리도록 설계해 두었습니다.
엑셀은 4단지 비교 / 미분양 단지 목록 / 지역 통계 / 실거래 / 미분양 추이 / 미분양 비교 6개 화면에서
바로 다운로드되고, 인쇄는 /compare 4단지 비교에서 한 장짜리 자료로 떨어집니다. 이 글에서는
각 위치 사용법 + 수식 인젝션 방어 + 클라이언트 vs 서버 아키텍처 차이를 한 줄씩 풀어둡니다.
엑셀 내보내기 6 위치 — 한 줄 정리
손님 자료 유형별로 어느 화면에서 어떤 파일이 떨어지는지 표로 정리했습니다. 파일명은 모두 한국어 + 날짜 형식이라 손님께 보내드릴 때 그대로 의미가 통합니다.
| 화면 | 버튼 위치 | 파일명 형식 | 컬럼 수 |
|---|---|---|---|
/compare 4단지 비교 | 상단 "엑셀 다운로드" | 단지비교_YYYY-MM-DD.xlsx | 항목 + 단지 N |
/complex/{id} 매물 목록 | 상단 "엑셀 다운로드" | {단지명}_{시각}.xlsx | 28 컬럼 |
/mibunyang 미분양 단지 | 상단 "엑셀" | 미분양단지_YYYY-MM-DD.xlsx | 11 컬럼 |
/mibunyang 지역 통계 | 탭 안 "엑셀" | 지역통계_YYYY-MM-DD.xlsx | 10 컬럼 |
/mibunyang 실거래 | 탭 안 "엑셀" | 실거래_YYYY-MM-DD.xlsx | 11 컬럼 |
/mibunyang/{id} 미분양 추이 | 차트 옆 "엑셀" | 미분양추이_{단지명}_YYYY-MM-DD.xlsx | 4 컬럼 |
/mibunyang/compare 미분양 비교 | 상단 "엑셀" | 미분양비교_YYYY-MM-DD.xlsx | 항목 + 단지 N |
표를 세어 보시면 7행입니다. 매물 목록은 BE 서버에서 만들어 보내는 1곳이고, 나머지 6곳은 브라우저에서 직접 파일을 만들어 다운로드합니다 (아래 "아키텍처 차이" 참고).
인쇄 1 위치 — /compare 한 장 자료
손님께 종이 자료를 드릴 때는 /compare 페이지의 인쇄 버튼이 권장 진입점입니다. 4단지 비교
24행 + 5종 차트가 한 장 (또는 두 장) A4 자료로 떨어져요. 다른 화면 인쇄는 브라우저 기본 인쇄
(Ctrl+P) 로 정렬이 깨질 수 있어 권장하지 않습니다.
인쇄 버튼 한 번 누르면 내부에서 세 단계가 자동으로 돕니다.
- 모든 행 펼침 — 24행 中 접혀 있던 비교 행을 한 번에 다 펼쳐서 인쇄 영역에 포함시킵니다.
- 두 번 다음 프레임 대기 —
requestAnimationFrame두 번으로 펼침 결과를 DOM 에 반영하고 브라우저가 다시 그리는 시점을 기다립니다. 한 번만 기다리면 일부 행이 빈 상태로 인쇄될 수 있어요. window.print()호출 — 운영체제 인쇄 대화상자가 뜹니다. PDF 로 저장하시려면 "PDF 로 저장" 프린터를 고르시면 됩니다.
인쇄가 끝나면 afterprint 이벤트가 자동으로 발화돼서 펼침 상태가 원래대로 접힙니다. 손님께서
"한 번 더 인쇄해도 될까요" 하실 때 화면 상태가 인쇄 직전 그대로 남아 있지 않아 다음 단지 비교에
방해되지 않아요.
수식 인젝션 방어 — 엑셀로 손님 PC 가 공격당하지 않게
엑셀 파일을 외부에서 열 때 = + - @ 같은 글자로 시작하는 셀이 있으면 수식으로 해석돼서
의도치 않은 동작이 일어날 수 있어요. 단지명이 =cmd|... 처럼 시작하는 악의적 데이터를 손님이 받아
열면 PC 가 위험해질 수 있습니다.
사이트는 엑셀 셀에 글자를 쓰기 전에 한 글자만 확인합니다. 첫 글자가 = + - @ \t \r
6개 中 하나면 앞에 작은따옴표 ' 를 자동으로 붙여서 일반 텍스트로 만들어 버립니다. 그러면
엑셀이 더 이상 수식으로 해석하지 않아요.
이 방어는 브라우저 측 엑셀 6곳 + 서버 측 엑셀 1곳 모두 같은 6글자 패턴으로 동일하게 들어가 있어요. 어느 화면에서 받은 파일이든 손님 PC 가 위험에 노출되지 않습니다.
아키텍처 — 브라우저 vs 서버, 어느 쪽이 만드나
같은 엑셀 다운로드도 만드는 위치가 두 가지입니다. 손님께 자료를 받을 때 차이를 알아두시면 속도 설명에 도움이 됩니다.
브라우저 (클라이언트) — 6곳 — /compare 단지비교 / 미분양 단지·지역·실거래·추이 / 미분양
비교 6개 화면은 브라우저가 직접 엑셀 파일을 만들어 즉시 다운로드합니다. 서버를 거치지 않아서
빠르고, 인터넷이 잠시 끊겨도 화면에 떠 있는 자료는 받을 수 있어요. 자바스크립트로 동적 로드되는
exceljs 모듈을 첫 다운로드 때만 받아 두기 때문에 첫 클릭은 1초 정도 느릴 수 있습니다.
서버 (백엔드) — 1곳 — /complex/{id} 매물 목록 엑셀은 서버가 만들어 파일로 보내옵니다.
매물 1000건 이상까지 한 번에 떨어뜨리려면 브라우저 메모리로는 부담이라 서버에서 xlsxwriter
엔진으로 만든 뒤 파일을 전송해요. 매물 수가 많은 단지는 30초 정도 걸릴 수 있고, 인증된 손님 계정은
일일 다운로드 한도가 적용됩니다.
두 위치 모두 같은 6글자 수식 인젝션 방어 패턴이 들어가 있어서 손님 안전 수준은 동일합니다.
손님 응대 5분 워크플로
상담 자료를 손님께 한 번에 떨어뜨리는 흐름은 이렇습니다.
- 검색·필터 —
/search에서 손님이 관심 있는 동·아파트명·예산을 잡고 매물을 압축합니다. - + 비교 추가 — 후보 단지 3~4개에 + 버튼을 눌러 /compare 로 보냅니다.
- 24행 검토 —
/compare에서 평당가·매매·전세·면적 24행을 손님과 함께 봅니다. - 인쇄 1번 — 상단 인쇄 버튼 → A4 한 장으로 즉시 떨어집니다. 종이 손님은 여기서 끝입니다.
- 엑셀 1번 — 디지털 자료를 원하시면 인쇄 옆 "엑셀 다운로드" 로 같은 비교를 받습니다. 이름은
단지비교_2026-05-13.xlsx처럼 날짜가 자동으로 들어가서 며칠 후 손님이 다시 열어도 헷갈리지 않아요.
매물 표가 더 필요하시면 단지를 한 번 더 클릭해서 매물 목록 페이지의 엑셀 버튼을 누르시면 28컬럼 매물 자료가 떨어집니다. 미분양 손님은 같은 흐름을 /mibunyang 에서 반복하시면 돼요.
한계·주의사항
좋은 도구도 한계가 있어요. 손님께 자료를 약속하기 전에 알아두면 좋은 점 5가지입니다.
- 첫 클릭 1초 느림 (브라우저 6곳) — 자바스크립트 엑셀 모듈이 처음 로딩될 때 1초 정도 걸려요. 같은 화면에서 두 번째 다운로드부터는 즉시 떨어집니다.
- 매물 엑셀 일일 한도 (서버 1곳) — 인증된 손님 계정은 매물 엑셀 다운로드에 일일 한도가 적용됩니다. 한도 초과 시 다음날 자동 복구.
- 인쇄는
/compare한 곳만 — 다른 화면 인쇄는 Ctrl+P 가능하지만 정렬이 깨질 수 있어 손님 자료로는 비추천. 종이 자료는 비교 페이지에서 떨어뜨리시는 게 깔끔합니다. - 파일명 한글 — 단지명에 특수 기호가 있으면 운영체제에 따라 다운로드 폴더에서 깨져 보일
수 있어요. 매물 엑셀은 서버가 한글·숫자·점·하이픈만 남기고 나머지를
_로 자동 변환합니다. - 시크릿 모드 BE 인증 끊김 — 시크릿 브라우저에서 매물 엑셀을 받으시려면 손님이 다시 로그인하셔야 합니다. 일반 모드는 공인중개사 인증 후 자동 유지됩니다.
자료 출처
- /compare 24행 비교 워크플로 — 4단지 비교 + 인쇄·엑셀 단락
- 네이버 매물 실시간 조회 — 매물 엑셀 한도·인증 흐름
- 공인중개사 인증 가이드 — 매물 엑셀 일일 한도 관계
- 검색 히스토리 워크플로 — 자료 복원 후 엑셀로 떨어뜨리는 다음 단계
인쇄·엑셀은 손님 자료를 1분 안에 떨어뜨리는 작은 도구입니다. 7개 위치를 한 번씩 눌러보시면 자주 쓰는 자리만 자연스럽게 손에 익으실 거예요. 사용 중 발견하신 불편이나 새로운 자료 형식이 필요하시면 블로그 목록 에서 다른 글을 보시거나 사이트 내 문의 채널로 알려 주세요.