Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A Chrome Extension that enhances your online safety by analyzing web page stability and filtering harmful content on platforms like Naver News and YouTube comments.

License

Notifications You must be signed in to change notification settings

seokkkkkk/WebCleanser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

WebCleanser

Languages:
ํ•œ๊ตญ์–ด | English

Group 132

๋ฐ๋ชจ ์˜์ƒ

YouTube Video

๋ชฉ์ฐจ

  1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
  2. ์„ธ๋ถ€ ๊ฐœ๋ฐœ ๋‚ด์šฉ
  3. ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๋ฐ ์•„ํ‚คํ…์ฒ˜
  4. ์œ ์ € ํ๋ฆ„๋„
  5. ๊ธฐ๋Šฅ ๋ช…์„ธ
  6. ์‹คํ–‰ ๋ฐฉ๋ฒ• ๋ฐ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ

1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

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

WebCleanser๋Š” Chromium์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €( Chrome, Microsoft Edge, Brave, Arc, ๋„ค์ด๋ฒ„ ์›จ์ผ ๋“ฑ )์—์„œ ํ˜ธํ™˜๊ฐ€๋Šฅํ•˜๋ฉฐ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๋กœ ๊ฐœ๋ฐœ๋˜์–ด, ์–ธ์–ด ๊ธฐ๋ฐ˜ ์ปค์Šคํ…€ ๋ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์˜ ํ™•์žฅ์„ฑ์ด ์—ด๋ ค์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ ๋ฐ ํ•„์š”์„ฑ

์ธํ„ฐ๋„ท ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์œผ๋กœ ๋ฐฉ๋Œ€ํ•œ ์ฝ˜ํ…์ธ ๊ฐ€ ์ธํ„ฐ๋„ท์— ๊ณต์œ ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ๋ถ€์ž‘์šฉ์œผ๋กœ ํ”ผ์‹ฑ, ํ•ดํ‚น, ์œ ํ•ด ์ฝ˜ํ…์ธ  ๋“ฑ ๋‹ค์–‘ํ•œ ์œ„ํ˜‘์ด ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ๋””์ง€ํ„ธ ๊ฒฉ์ฐจ๊ฐ€ ์‹ฌํ•ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ํ™˜๊ฒฝ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ์œ„ํ—˜์— ๋” ์‰ฝ๊ฒŒ ๋…ธ์ถœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

WebCleanser๋Š” ์ด๋Ÿฌํ•œ ์œ„ํ—˜์œผ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธ ๋ฐ ์•ˆ์ „ํ•œ ์ธํ„ฐ๋„ท ํ™˜๊ฒฝ ์ œ๊ณต์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง๊ด€์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋””์ง€ํ„ธ ๊ฒฉ์ฐจ๋ฅผ ์ค„์ด๊ณ , ์‚ฌ์šฉ์ž๋“ค์ด ์‚ฌ์ด๋ฒ„ ์œ„ํ˜‘์œผ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กญ๊ฒŒ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๋””์ง€ํ„ธ ๊ธฐ์ˆ ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋“ค๋„ ์•ˆ์‹ฌํ•˜๊ณ  ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ์ž‘๋™ ๊ณผ์ •

5 แ„Œแ…ฎแ„‹แ…ญ แ„€แ…ตแ„‚แ…ณแ†ผ แ„†แ…ตแ†พ แ„Œแ…กแ†จแ„ƒแ…ฉแ†ผ แ„€แ…ชแ„Œแ…ฅแ†ผ url แ„‘แ…ตแ†ฏแ„แ…ฅแ„…แ…ตแ†ผ

  1. URL ํ•„ํ„ฐ๋ง:
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋™ํ•˜๋Š” ๋งํฌ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ, Google Safe Browsing API๋ฅผ ํ™œ์šฉํ•ด URL์˜ ์•ˆ์ •์„ฑ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ๋‚˜ ์˜์‹ฌ์Šค๋Ÿฌ์šด ์‚ฌ์ดํŠธ๋Š” ์ฐจ๋‹จํ•˜๊ณ , ์•ˆ์ „ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    • ์ž˜๋ชป ์ฐจ๋‹จ๋œ ์‚ฌ์ดํŠธ ์‹ ๊ณ  ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, ์‚ฌ์šฉ์ž๊ฐ€ ์ฐจ๋‹จ ์˜ค๋ฅ˜๋ฅผ Google์— ์‹ ๊ณ ํ•˜์—ฌ ๊ฐœ์„ ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7 แ„Œแ…ฎแ„‹แ…ญ แ„€แ…ตแ„‚แ…ณแ†ผ แ„†แ…ตแ†พ แ„Œแ…กแ†จแ„ƒแ…ฉแ†ผ แ„€แ…ชแ„Œแ…ฅแ†ผ แ„ƒแ…ขแ†บแ„€แ…ณแ†ฏ แ„‘แ…ตแ†ฏแ„แ…ฅแ„…แ…ตแ†ผ

  1. ๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง:
    • ๋„ค์ด๋ฒ„ ๋‰ด์Šค์™€ ์œ ํŠœ๋ธŒ ๋Œ“๊ธ€์„ ๋ถ„์„ํ•˜์—ฌ, AI ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง์„ ํ†ตํ•ด ์œ ํ•ดํ•œ ๋Œ“๊ธ€์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
    • ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋œ KcElectra๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ์ •์น˜์„ฑ ๋ฐœ์–ธ, ์„ฑ์ ์ธ ๋ฐœ์–ธ, ์šฐ์šธํ•œ ๋ฐœ์–ธ, ๊ณต๊ฒฉ์ ์ธ ๋ฐœ์–ธ ๋“ฑ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ํ•„์š”์— ๋”ฐ๋ผ ํŠน์ • ์œ ํ˜•์˜ ๋Œ“๊ธ€๋งŒ ํ•„ํ„ฐ๋งํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Hazard Filter์™€ Type Filter๋ผ๋Š” 2๋‹จ๊ณ„ ํ•„ํ„ฐ๋ง์„ ๋„์ž…ํ•˜์—ฌ, ๋จผ์ € ์ •์ƒ ๋Œ“๊ธ€๊ณผ ์œ ํ•ด ๋Œ“๊ธ€๋กœ ๋ถ„๋ฅ˜ํ•œ ๋’ค, ์œ ํ•ด ๋Œ“๊ธ€ ๋‚ด์—์„œ ์„ธ๋ถ€ ์œ ํ˜•์„ ๋‚˜๋ˆ„์–ด ๋”์šฑ ์ •๋ฐ€ํ•˜๊ฒŒ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด

  • WebCleanser๋Š” MIT ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, ๊ตฌ์„ฑ์š”์†Œ (WebCleanser_backend, WebCleanser_extension, WebCleanser_model)๋ณ„ ์ž์„ธํ•œ ๋ผ์ด์„ผ์Šค ์ •๋ณด๋Š” ๊ฐ ํด๋”์˜ LICENSES ํด๋”์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์š”๊ตฌ์— ๋งž์ถฐ ๊ธฐ๋Šฅ์„ ํ™•์žฅ ๋ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜๊ฑฐ๋‚˜, WebCleanser๋ฅผ ํ™œ์šฉํ•œ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ํฌํ•จํ•œ ๋ชจ๋“  ํ™œ๋™์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

2. ์„ธ๋ถ€ ๊ฐœ๋ฐœ ๋‚ด์šฉ

ํ”„๋กœ์ ํŠธ๋Š” ํฌ๊ฒŒ ์„ธ ๋ถ„๋ฅ˜์˜ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ์š”์†Œ๋Š” model, backend, extension ์ž…๋‹ˆ๋‹ค.

2.1. Model

9 ai แ„†แ…ฉแ„ƒแ…ฆแ†ฏ

์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋œ KcElectra๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๋Œ“๊ธ€ ์ฝ˜ํ…์ธ  ํ•„ํ„ฐ๋ง ๋ชจ๋ธ์„ ํ•™์Šตํ•˜์˜€์Šต๋‹ˆ๋‹ค.

KcElectra๋Š” ํ•œ๊ตญ์–ด๋กœ ํ•™์Šต๋œ Transformer ๊ณ„์—ด AI ๋ชจ๋ธ๋กœ, ์ธํ„ฐ๋„ท ๋‰ด์Šค์™€ ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ›ˆ๋ จ๋˜์—ˆ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง•์ด WebCleanser๊ฐ€ ์ œ๊ณตํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ€๊น๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ๋ชจ๋ธ์„ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Korean Hate Speech Dataset, AIHub์˜ ํ•œ๊ตญ์–ด ๊ฐ์ • ์ •๋ณด ๋ฐ์ดํ„ฐ์…‹, ํ…์ŠคํŠธ ์œค๋ฆฌ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹๊ณผ ํ•จ๊ป˜, ์ง์ ‘ ํฌ๋กค๋งํ•œ ๋„ค์ด๋ฒ„, ์œ ํŠœ๋ธŒ ๋Œ“๊ธ€ ๋“ฑ ์ด 20๋งŒ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜์˜€๊ณ , ์•ฝ 80%์˜ ์ •ํ™•๋„๋กœ ํƒ€์ž…์„ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.

2.1.1 ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์„ฑ

2.1.2 ๋ชจ๋ธ ํ•™์Šต ๊ณผ์ •

๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ถ„๋ฅ˜

  • ์ผ๋ฐ˜ 0
  • ์ •์น˜์„ฑ ๊ธ€ 1
  • ์„ฑ์ ์ธ ๊ธ€ 2
  • ์šฐ์šธํ•œ ๊ธ€ 3 (์Šฌํ””)
  • ๊ณต๊ฒฉ์ ์ธ ๊ธ€ 4 (๋ถ„๋…ธ, ํ˜์˜ค)
  1. Type Filter
361302204-0d27237b-3f4a-4074-97c4-79248f37c07b
  • ๊ฒฐ๊ณผ ๋ถ„์„
    • 1๋ฒˆ(์ •์น˜์„ฑ ๊ธ€)์œผ๋กœ์˜ ์˜ค๋ถ„๋ฅ˜๊ฐ€ ๋งŽ์•˜๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์„ฑ์„ ์ƒ๊ฐํ–ˆ์„ ๋•Œ ํ•ด๋‹น์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค์ธ์‹ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋ถˆํŽธํ•˜๊ฒŒ ๋А๊ปด์งˆ ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค.
  1. Hazard Filter
  • ๋ชจ๋ธ ๊ตฌ์„ฑ
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ •์ƒ ๋Œ“๊ธ€์„ ์œ ํ•ด ๋Œ“๊ธ€๋กœ ์˜ค๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋ถˆํŽธ์„ ๋А๋‚„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜์—ฌ, 1๋ฒˆ ํƒ€์ž…(์ •์น˜์„ฑ ๊ธ€)์„ ์ œ๊ฑฐํ•˜๊ณ  0(์ •์ƒ)๊ณผ 1(์œ ํ•ด)๋กœ ๋‚˜๋จธ์ง€ ๋Œ“๊ธ€์„ ๋ถ„๋ฅ˜ํ•˜๋Š” Hazard Filter ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ–ˆ๋‹ค.
  • ํ•™์Šต ๊ฒฐ๊ณผ
    • Hazard Filter ๋ชจ๋ธ์€ ์ •์ƒ ๋Œ“๊ธ€์„ ์ตœ๋Œ€ํ•œ ์ •ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฅ˜ํ•˜๋ฉด์„œ ์œ ํ•ด ๋Œ“๊ธ€์„ ํƒ์ง€ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์–ด ํ•™์Šต๋˜์—ˆ๋‹ค.
361302217-82409bd0-27c0-4e0c-842c-88dfa85dce77

์ตœ์ข… ๊ตฌ์กฐ

  • 1์ฐจ ํ•„ํ„ฐ๋ง: Hazard Filter ๋ชจ๋ธ
    • ๋Œ“๊ธ€์˜ ์œ ํ•ด์„ฑ์„ 1์ฐจ์ ์œผ๋กœ ํ•„ํ„ฐ๋ง
  • 2์ฐจ ํ•„ํ„ฐ๋ง: Type Filter ๋ชจ๋ธ
    • Hazard Filter ๋ชจ๋ธ์—์„œ ์œ ํ•ดํ•œ ๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜๋œ ๋Œ“๊ธ€์„ ๋‹ค์‹œ ์„ธ๋ถ€์ ์œผ๋กœ ์œ ํ˜•(์ผ๋ฐ˜, ์ •์น˜, ์„ฑ์ , ์šฐ์šธ, ๊ณต๊ฒฉ์ )์œผ๋กœ ๋ถ„๋ฅ˜

์ด์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ตœ์ข… ํ•„ํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ์ธํ„ฐ๋„ท์ƒ์—์„œ ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2.2. Backend

Spring

์‚ฌ์šฉ์ž๋Š” Extension์„ ํ†ตํ•ด Spring ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋˜๋ฉฐ, Spring ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์„ ์ค‘๊ณ„ํ•˜์—ฌ Google Safe Browsing API, Flask๋ฅผ ํ†ตํ•ด URL ํ•„ํ„ฐ๋ง, ๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Flask

KcElectra ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šต์‹œํ‚จ AI ๋ชจ๋ธ์„ Spring ์„œ๋ฒ„์— ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

2.3. Extension

์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ž…๋‹ˆ๋‹ค.

React ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด์žˆ๋Š” chrome-extension-boilerplate-react๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค.


3. ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๋ฐ ์•„ํ‚คํ…์ฒ˜

์„œ๋ฒ„: AWS EC2์— Docker Compose๋ฅผ ํ™œ์šฉํ•˜์—ฌ 2๊ฐœ์˜ Docker (Spring, Flask)๋ฅผ ์ด์šฉํ•˜์˜€์œผ๋ฉฐ, Spring์€ Google Safe Browsing์„ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์ดํŠธ ๋งํฌ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ , Flask๋Š” ์ง์ ‘ ํ™œ์šฉํ•œ ๋‘ ๊ฐœ์˜ ํ•„ํ„ฐ๋ง ๋ชจ๋ธ(Type Filter, Hazard Filter)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ: React๋ฅผ ํ™œ์šฉํ•˜์—ฌ Web Extension์„ ๊ฐœ๋ฐœํ•˜์˜€์œผ๋ฉฐ, background ๋ฐ content script์—์„œ ๋งํฌ์™€ ํ…์ŠคํŠธ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. popup์—์„œ๋Š” ํ•„ํ„ฐ๋ง, ์ฐจ๋‹จ ํžˆ์Šคํ† ๋ฆฌ์™€ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image


4. ์œ ์ € ํ๋ฆ„๋„

image 1


5. ๊ธฐ๋Šฅ ๋ช…์„ธ

URL ํ•„ํ„ฐ๋ง ๊ด€๋ฆฌ

  • ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ ๊ฐ์ง€ ON/OFF ๋ฒ„ํŠผ
    • ํ† ๊ธ€ ๋ฒ„ํŠผ์œผ๋กœ ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ ๊ฐ์ง€ ๊ธฐ๋Šฅ์„ ON/OFF ํ•  ์ˆ˜ ์žˆ์Œ
  • ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ ๊ฐ์ง€ ๊ธฐ๋Šฅ
    • ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ ๊ฐ์ง€ ํ† ๊ธ€ ์ƒํƒœ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์ด ON ๋˜๋Š” OFF ๋จ
  • ๋ฌด์‹œํ•˜๊ธฐ ๋ฒ„ํŠผ
    • ๋ฌด์‹œํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํŽ˜์ด์ง€์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๋ฒ„ํŠผ
    • ์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ํ†ตํ•ด URL ์ ‘์† ์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ž˜๋ชป ์ฐจ๋‹จ๋œ ์‚ฌ์ดํŠธ ์‹ ๊ณ  ๋ฒ„ํŠผ
    • ์ž˜๋ชป ์ฐจ๋‹จ๋œ ์‚ฌ์ดํŠธ ์‹ ๊ณ  ๋ฒ„ํŠผ์„ ํ†ตํ•ด Google์— ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ์Œ

๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง ๊ด€๋ฆฌ

  • ํ•„ํ„ฐ๋ง ์œ ํ˜• ์„ ํƒ ๋ฒ„ํŠผ
    • ๋ฆฌ์ŠคํŠธ์—์„œ ํด๋ฆญ์„ ํ†ตํ•ด ํ•„ํ„ฐ๋งํ•  ๋Œ“๊ธ€ ์œ ํ˜•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ˆ˜์ •ํ•œ ๋ฆฌ์ŠคํŠธ๋Š” ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•œ ํ›„์— ์ ์šฉ๋จ
  • ๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ
    • ์„ ํƒ๋œ ์œ ํ˜•์˜ ๋Œ“๊ธ€์„ ํ•„ํ„ฐ๋งํ•˜๋ฉฐ, ํ•„ํ„ฐ๋ง๋œ ๋Œ“๊ธ€์€ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ƒ‰๊น”๋กœ ํ‘œ์‹œ๋จ
    • ๋„ค์ด๋ฒ„ ๋‰ด์Šค์™€ ์œ ํŠœ๋ธŒ ๋Œ“๊ธ€์—์„œ ์ž‘๋™ํ•จ
  • ์œ ํ•ด ํ…์ŠคํŠธ ๋ณด์ด๊ธฐ/๊ฐ€๋ฆฌ๊ธฐ ๋ฒ„ํŠผ
    • ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์šฐํด๋ฆญํ•˜์—ฌ ์œ ํ•ด ํ…์ŠคํŠธ ๋ณด์ด๊ธฐ/๊ฐ€๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
    • ๋ณด์ด๊ธฐ ์ƒํƒœ์ผ ๊ฒฝ์šฐ ๋Œ“๊ธ€ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ…์ŠคํŠธ ์ƒ‰์ƒ์ด ์ ์šฉ๋จ

ํ†ต๊ณ„

  • ํ†ต๊ณ„ ๋ฒ„ํŠผ
    • ์ต์Šคํ…์…˜ ํƒญ ํ•˜๋‹จ์˜ ํ†ต๊ณ„ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • ํ†ต๊ณ„ ์œ ํ˜• ์„ ํƒ ๋ฒ„ํŠผ
    • ํ•„ํ„ฐ๋ง / ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ ๊ฐ์ง€ ํƒญ์„ ์„ ํƒํ•˜์—ฌ ํ™•์ธํ•  ํ†ต๊ณ„ ์œ ํ˜•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ
  • ๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง ๋ฆฌ์ŠคํŠธ ์„ ํƒ ๋ฒ„ํŠผ
    • ๋ฒ„ํŠผ์„ ํ†ตํ•ด ํ™•์ธํ•  ๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ ์œ ํ˜•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ
  • ๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง ๋ฆฌ์ŠคํŠธ
    • ์„ ํƒ๋œ ์œ ํ˜•์— ๋”ฐ๋ผ ๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ดํ•จ
  • URL ํ•„ํ„ฐ๋ง ๋ฆฌ์ŠคํŠธ
    • ํ”ผ์‹ฑ ์‚ฌ์ดํŠธ ๊ฐ์ง€ ํƒญ์—์„œ ํ•„ํ„ฐ๋ง๋œ URL๊ณผ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • URL ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ
    • ์ตœ์‹ ์ˆœ / ์˜ค๋ž˜๋œ์ˆœ์„ ์„ ํƒํ•˜์—ฌ URL ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์ƒ์„ธ URL ์ •๋ณด
    • ๋ฆฌ์ŠคํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

6. ์‹คํ–‰ ๋ฐฉ๋ฒ• ๋ฐ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ

6.1 ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ •๋ณด

ํ•˜๋“œ์›จ์–ด

  • Apple M3 Pro ์นฉ์„ ํƒ‘์žฌํ•œ MackBook Pro 14 ๋ชจ๋ธ

์†Œํ”„ํŠธ์›จ์–ด

  • IntelliJ IDEA
  • Visual Studio Code
  • node
  • Chrome

6.2 ์‹คํ–‰ ๋ฐฉ๋ฒ•

6.2.1 ๋ฐฑ์—”๋“œ

  1. ํ”„๋กœ์ ํŠธ ์ค€๋น„

    • WebCleanser_backend ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. Flask ์„œ๋ฒ„ ์‹คํ–‰

    • Python 3.9 ํ™˜๊ฒฝ์—์„œ netpuri_flask ํด๋”๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
    • ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:
      pip install -r requirements.txt
    • Flask ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
      python app.py
  3. Spring ์„œ๋ฒ„ ์‹คํ–‰

    • JDK 17 ํ™˜๊ฒฝ์—์„œ netpuri-spring ํด๋”๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
    • Gradle ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    • resources/application.properties ํŒŒ์ผ์˜ ${GOOGLE_SAFE_BROWSING_API_KEY} ๋ถ€๋ถ„์„ ๋ฐœ๊ธ‰๋ฐ›์€ Google Safe Browsing API Key๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
    • ๋‹ค์Œ ๊ฒฝ๋กœ์—์„œ Spring ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
      com/netpuri/server/NetpuriServerApplication.java
      
      

6.2.2 ํ”„๋ก ํŠธ์—”๋“œ

  1. ํ”„๋กœ์ ํŠธ ์ค€๋น„

    • WebCleanser_extension ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
    • VSCode๋กœ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  2. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

    • ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:
      npm install
    • ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
      NODE_ENV=production npm run build
    • ๋นŒ๋“œ ์™„๋ฃŒ ํ›„ ์ƒ์„ฑ๋œ zip/WebCleanser-1.0.0.zip ํŒŒ์ผ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.
  3. ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ๋ก

    • Chrome ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ , ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค:
      chrome://extensions
      
    • ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค (์šฐ์ธก ์ƒ๋‹จ).
    • ์••์ถ• ํ•ด์ œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ , ๋นŒ๋“œ๋œ ํด๋”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋“ฑ๋ก๋œ WebCleanser ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๊ณ ์ • ๋ฐ ์žฌ์‹œ์ž‘

    • ๋ธŒ๋ผ์šฐ์ € ์šฐ์ธก ์ƒ๋‹จ์˜ ํผ์ฆ ๋ชจ์–‘ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ WebCleanser๋ฅผ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ ์šฉ์„ ์œ„ํ•ด Chrome์„ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

About

A Chrome Extension that enhances your online safety by analyzing web page stability and filtering harmful content on platforms like Naver News and YouTube comments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published