Scan Empire - PDF -All In One

๊ด‘๊ณ  ํฌํ•จ์ธ์•ฑ ๊ตฌ๋งค
์ฝ˜ํ…์ธ  ๋“ฑ๊ธ‰
์ „์ฒด์ด์šฉ๊ฐ€
1์ฒœ+
๋‹ค์šด๋กœ๋“œ
์ฝ˜ํ…์ธ  ๋“ฑ๊ธ‰
์ „์ฒด์ด์šฉ๊ฐ€
์•ฑ์—์„œ ๋ฐ”๋กœ ๊ตฌ๋งค
์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€
์Šคํฌ๋ฆฐ์ƒท ์ด๋ฏธ์ง€

์•ฑ ์ •๋ณด

Scan Empire๋Š” ์ข…์ด ๋ฌธ์„œ ๋””์ง€ํ„ธํ™”, ๊ณ ๊ธ‰ ๊ด‘ํ•™ ๋ฌธ์ž ์ธ์‹(OCR) ๋ฐ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ํŒŒ์ผ์„ PDF๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ํ˜„๋Œ€์ ์ธ Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. Kotlin๊ณผ ์„ ์–ธ์  UI ํ”„๋ ˆ์ž„์›Œํฌ์ธ Jetpack Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ์—„๊ฒฉํ•œ MVVM ์•„ํ‚คํ…์ฒ˜์™€ ํด๋ฆฐ ์ฝ”๋“œ ์›์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ฒ˜๋ฆฌ๋Š” ๊ธฐ๊ธฐ ๋‚ด์—์„œ ๋กœ์ปฌ๋กœ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ๋ณด์•ˆ์ด ๊ทน๋Œ€ํ™”๋ฉ๋‹ˆ๋‹ค.

โš™๏ธ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฐ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜
1. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ OCR ์‹œ์Šคํ…œ (์˜คํ”„๋ผ์ธ ๋ฐ ์˜จ๋ผ์ธ)
์ด ์•ฑ์€ ๋‘ ๊ฐ€์ง€ ํ…์ŠคํŠธ ์ธ์‹ ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ OCR(Tesseract): ๋งž์ถคํ˜• TessBaseAPI(Tesseract4Android)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํžˆ ์˜คํ”„๋ผ์ธ์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด ๋ชจ๋ธ์ด ์—†๋Š” ๊ฒฝ์šฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. Google ML Kit๊ฐ€ ํ†ตํ•ฉ๋˜์–ด ์–ธ์–ด๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ , ํ‚ค๋ฆด ๋ฌธ์ž์™€ ๋ผํ‹ด ๋ฌธ์ž์™€ ๊ฐ™์€ ๋ฌธ์ž ์ฒด๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•˜๊ธฐ ์œ„ํ•ด ์‹ ๋ขฐ๋„ ์ ์ˆ˜ ๋น„๊ต ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํด๋ผ์šฐ๋“œ OCR(Google Cloud Vision): ๋ณต์žกํ•œ ๋ ˆ์ด์•„์›ƒ์ด๋‚˜ ์ €ํ’ˆ์งˆ ๋ฌธ์„œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํฌ๋ ˆ๋”ง ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ํ†ตํ•ฉ๋˜์–ด ๊ธฐ๊ธฐ ์„ฑ๋Šฅ ์ €ํ•˜ ์—†์ด ๊ณ ๊ธ‰ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์ธ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. 2. ๊ณ ๊ธ‰ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๋ฐ OpenCV ํ†ตํ•ฉ
OCR์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ด๋ฏธ์ง€๋Š” ๊ณ ๊ธ‰ ํ•„ํ„ฐ๋ง ๋ฐ ๊ธฐํ•˜ํ•™์  ๋ณด์ • ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

๊ธฐํ•˜ํ•™์  ๋ณด์ •(๊ธฐ์šธ๊ธฐ ์ œ๊ฑฐ): OpenCV๋Š” ๊ธฐ์šธ์–ด์ง„ ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐ”๋กœ์žก๊ณ  ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๊ฐ์  ์ตœ์ ํ™”: ๊ทธ๋ฆผ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ ์‘ํ˜• ์ด์ง„ํ™”(์˜ค์ธ  ์ž„๊ณ„๊ฐ’ ์ฒ˜๋ฆฌ)๋ฅผ ์ ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ์™€ ๋ฐฐ๊ฒฝ ๊ฐ„์˜ ๋Œ€๋น„๋ฅผ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ: ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์€ ๊ณต์œ  Mat ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ(OOM) ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

3. ์Šค๋งˆํŠธ PDF ์žฌ๊ตฌ์„ฑ(PdfReconstructor)
PDFBox-Android ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ธ์‹๋œ ํ…์ŠคํŠธ๋ฅผ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ PDF ๋ฌธ์„œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์Šค๋งˆํŠธ ๊ฐ„๊ฒฉ ์กฐ์ •: ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด๋ฏธ์ง€์—์„œ ๋‹จ์–ด์˜ ์ขŒํ‘œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹จ์–ด ์‚ฌ์ด์˜ ์ •ํ™•ํ•œ ๋ ˆ์ด์•„์›ƒ๊ณผ ๊ฐ„๊ฒฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฌธ์„œ์˜ ์›๋ž˜ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์˜ค๋ฒ„๋ ˆ์ด(๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ PDF): ํ…์ŠคํŠธ๋Š” ์›๋ณธ ์ด๋ฏธ์ง€ ๋ฐ”๋กœ ์œ„์— ๋ณด์ด์ง€ ์•Š๋Š” ๋ ˆ์ด์–ด๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์Šค์บ”ํ•œ ๋ฌธ์„œ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์„ ๋ฟ ์•„๋‹ˆ๋ผ ํ…์ŠคํŠธ๋ฅผ ๊ฒ€์ƒ‰, ์„ ํƒ ๋ฐ ๋ณต์‚ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
4. ๋ณ€ํ™˜ ๋ฐ ํŒŒ์ผ ์กฐ์ž‘
๋ชจ๋“  ๋ณ€ํ™˜์€ ์‚ฌ์šฉ์ž ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๋กœ์ปฌ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋ณ€ํ™˜๊ธฐ: DOCX, Excel ๋ฐ TXT ๋ฌธ์„œ๋ฅผ PDF๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์„œ ๋ณ‘ํ•ฉ: ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€ ๋˜๋Š” ๊ธฐ์กด PDF ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ PDF ๋ฌธ์„œ๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

5. ๋ณด์•ˆ, ์ €์žฅ ๊ณต๊ฐ„ ๋ฐ ์ˆ˜์ต ์ฐฝ์ถœ
์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ง€์† ๊ฐ€๋Šฅํ•œ ์ƒ์—…์šฉ ์ œํ’ˆ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ: Google ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•œ ์•ˆ์ „ํ•œ ๋กœ๊ทธ์ธ ๋ฐ ๊ณ„์ • ์—ฐ๊ฒฐ.
์ €์žฅ ๊ณต๊ฐ„: Android ์ €์žฅ์†Œ ์•ก์„ธ์Šค ํ”„๋ ˆ์ž„์›Œํฌ(SAF)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ธฐ ๋˜๋Š” SD ์นด๋“œ์—์„œ ์›ํ•˜๋Š” ์ €์žฅ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ต ์ฐฝ์ถœ: ํ”„๋ฆฌ๋ฏธ์—„ ์ƒ์ ์—์„œ ํฌ๋ ˆ๋”ง ๋˜๋Š” ๊ตฌ๋…์„ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋Š” Google Play ๊ฒฐ์ œ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ์‚ฌ์šฉ์€ ๋ฐฉํ•ด๋ฐ›์ง€ ์•Š๋Š” ๊ด‘๊ณ (AdManager)๋ฅผ ํ†ตํ•ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ๊ธฐ์ˆ  ์Šคํƒ
๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ: ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฌด๊ฑฐ์šด ํ”„๋กœ์„ธ์Šค(์Šค์บ”, OCR, ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ)๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ Kotlin ์ฝ”๋ฃจํ‹ด ๋ฐ ํ”Œ๋กœ์šฐ.

์˜์กด์„ฑ ์ฃผ์ž…: Hilt(Dagger)๋Š” ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๐Ÿ’ก ์š”์•ฝ
Scan Empire๋Š” ํฌ๊ด„์ ์ธ ๋ชจ๋ฐ”์ผ ๋””์ง€ํ„ธํ™” ์ƒํƒœ๊ณ„์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ OpenCV ์ฒ˜๋ฆฌ, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ OCR, ์Šค๋งˆํŠธ PDF ์žฌ๊ตฌ์„ฑ ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ˜„๋Œ€์ ์ด๊ณ  ์ตœ์ ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ „๋ฌธ์ ์ธ ์Šค์บ” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฏธ์ง€๋ฅผ PDF๋กœ ๋ณ€ํ™˜, ํ…์ŠคํŠธ ์ถ”์ถœ, ๋ฌธ์„œ ๋กœ๊ทธ์ธ, ๋ณ‘ํ•ฉ, ๋ณดํ˜ธ.
์—…๋ฐ์ดํŠธ ๋‚ ์งœ
2026. 9. 26.
์ถ”์ฒœ ์Šคํ† ๋ฆฌ

๋ฐ์ดํ„ฐ ๋ณด์•ˆ

๋ณด์•ˆ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ ๋ฐ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์„ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ๋ณด์•ˆ ๊ด€ํ–‰์€ ์‚ฌ์šฉ์ž์˜ ์•ฑ ์‚ฌ์šฉ, ์ง€์—ญ, ์—ฐ๋ น์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ œ๊ณตํ•œ ์ •๋ณด์ด๋ฉฐ ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ฑ์—์„œ ์ œ3์ž์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•
    ๊ธฐ๊ธฐ ๋˜๋Š” ๊ธฐํƒ€ ID
  • ์•ฑ์—์„œ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•
    ๊ฐœ์ธ ์ •๋ณด ๋ฐ ๊ธฐ๊ธฐ ๋˜๋Š” ๊ธฐํƒ€ ID
  • ์ „์†ก ์ค‘ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋จ
  • ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Œ