Skip to content

DevThive/book_final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

829 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


๐Ÿ“„ ํ”„๋กœ์ ํŠธ ์„ค๋ช…

๐Ÿ“š๋ถ์„œํ•‘(BOOKSURFING)

๋‚ด๊ฐ€ ์ฐพ๋Š” ๋งŒํ™”์™€ ๋งŒํ™”์นดํŽ˜๋ฅผ ๋‚ด ์ฃผ๋ณ€์—์„œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋งŒํ™”๋ฅผ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋‚ด ์ฃผ๋ณ€์—์„œ ๋‚ด๊ฐ€ ์ฐพ๋Š” ๋งŒํ™”์ฑ…์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ ํ•˜๋‚˜๋กœ ๋ถ์„œํ•‘(BOOKSURFING) ์„œ๋น„์Šค๋ฅผ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.



๐Ÿš€ ์„œ๋น„์Šค ๋งํฌ

๐ŸŒŠ๐ŸŒŠ๐ŸŒŠ ๋ถ์„œํ•‘(BOOKSUFRING) ๐ŸŒŠ๐ŸŒŠ๐ŸŒŠ


๐Ÿ“• ์ฃผ์š”๊ธฐ๋Šฅ

์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋ฆฌ๋ทฐ ๊ธฐ๋ฐ˜์˜ ๋„์„œ ์ถ”์ฒœ๊ณผ ์ฃผ๋ณ€ ์šด์˜๋งค์žฅ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋งŒํ™” ํŒฌ๋“ค์˜ ๋‹ˆ์ฆˆ ์ถฉ์กฑ๊ณผ ํ™œ์„ฑํ™”๋ฅผ ๋„๋ชจํ•˜๋ฉฐ, ์œ„์‹œ๋ฆฌ์ŠคํŠธ ๋ฐ ์•Œ๋žŒ ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

1. ์ถ”์ฒœ ๋„์„œ๋ชฉ๋ก๊ณผ ๋‚ด ์ฃผ๋ณ€ ์šด์˜๋งค์žฅ ํ™•์ธ ๊ฐ€๋Šฅ (๐Ÿ‘ˆ Click)
  • ์ถ”์ฒœ ๋„์„œ๋ชฉ๋ก์€ ์œ ์ €๋“ค์˜ ๋ฆฌ๋ทฐ์ˆœ์œผ๋กœ ์„ ์ •๋˜๋ฉฐ ๋ฉ”์ธํŽ˜์ด์ง€์˜ ์Šฌ๋ผ์ด๋“œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”์ธํŽ˜์ด์ง€ ํ•˜๋‹จ์˜ ์šด์˜๋งค์žฅ์€ ๋ถ์„œํ•‘๊ณผ ์ œํœด๋œ ์ง€์ ๋งค์žฅ๋“ค์ด๋ฉฐ ๊ฐ ๋งค์žฅ์˜ ์šด์˜์‹œ๊ฐ„, ๋ฉ”๋‰ด, ์†Œ์žฅ๋„์„œ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ—ค๋”์˜ BOOKCAFE๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฐ˜๊ฒฝ 3km ์ด๋‚ด์˜ ๋‚ด ์ฃผ๋ณ€ ์šด์˜๋งค์žฅ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2. ์ง€์ ๋ฆฌ๋ทฐ์™€ ๋„์„œ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ์กฐํšŒ (๐Ÿ‘ˆ Click)
  • ์ง€์ ๋ฆฌ๋ทฐ์™€ ๋„์„œ๋ฆฌ๋ทฐ๋Š” ์œ ์ €๋“ค๋งŒ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์  ๋ฆฌ๋ทฐ๋Š” ์ผ๋ฐ˜ ๋ฆฌ๋ทฐ์™€ ์˜์ˆ˜์ฆ ๋ฆฌ๋ทฐ๋กœ ๋‚˜๋‰˜์–ด์„œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜์ˆ˜์ฆ ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ๋”์šฑ ์‹ ๋ขฐ๋„ ์žˆ๋Š” ์ง€์ ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ์œ„์‹œ๋ฆฌ์ŠคํŠธ ๋“ฑ๋ก ๋ฐ ์•Œ๋žŒ ๊ธฐ๋Šฅ (๐Ÿ‘ˆ Click)
  • ์œ ์ €๋Š” ์›ํ•˜๋Š” ๋„์„œ์™€ ์ง€์ ์„ ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋ก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ์›ํ•˜๋Š” ๋„์„œ๊ฐ€ ์›ํ•˜๋Š” ์ง€์ ์— ์ž…๊ณ ๋˜์—ˆ์„๋•Œ ์ž๋™์œผ๋กœ ์œ ์ €์—๊ฒŒ ์•Œ๋žŒ์ด ๊ฐ‘๋‹ˆ๋‹ค.
4. ์œ ์ € ์ง€์ ์‚ฌ์žฅ ์‹ ์ฒญ ๋ฐ CSV ๋„์„œ๋“ฑ๋ก ๊ฐ€๋Šฅ (๐Ÿ‘ˆ Click)
  • ์œ ์ €๋Š” ์ง€์ ์‚ฌ์žฅ์œผ๋กœ ์‹ ์ฒญํผ์„ ์ œ์ถœํ•˜๊ณ  ๊ด€๋ฆฌ์ž์˜ ์‹ฌ์‚ฌ ํ•˜์— ์ง€์ ์‚ฌ์žฅ์œผ๋กœ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์  ์‚ฌ์žฅ์€ ์ง€์  ์ˆ˜์ •์—์„œ CSV๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋„์„œ๋“ฑ๋ก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“š ๊ธฐ์ˆ  ์Šคํƒ

โšก Frontend

โšก Backend

โšก Database

โšก DevOps

โšก Tools



๐Ÿ”ง ์•„ํ‚คํ…์ณ

...



๐Ÿ—๏ธ ERD

์ดํ•ด๋ฅผ ๋•๊ธฐ์œ„ํ•ด ๊ฐ„์†Œํ™”ํ•œ ERD ์ž…๋‹ˆ๋‹ค.

...



โš ๏ธ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…1: ๊ตฌ๊ธ€ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท (๐Ÿ‘ˆ Click)

๋ฌธ์ œ์ 

  1. AWS S3 ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ:
    • EC2 ์„œ๋ฒ„์—์„œ AWS S3 ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ, ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ๋กœ ์„œ๋ฒ„ ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ.
  2. AWS-SDK ๋ฒ„์ „ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํ˜„์ƒ:
    • ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ AWS-SDK ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋กœ ์ธํ•œ ๋ฌธ์ œ ํ™•์ธ.

ํ•ด๊ฒฐ๋ฐฉ์•ˆ ๋ฐ ์˜์‚ฌ๊ฒฐ์ •

  1. ์„ ํƒ1 - S3 ๋ฒ„ํ‚ท ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ:
    • AWS-SDK ๋Œ€์‹  S3 ๋ฒ„ํ‚ท ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ํ˜„์ƒ์„ ํ•ด๊ฒฐ.
  2. ์„ ํƒ2 - ๊ตฌ๊ธ€ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท ์‚ฌ์šฉ:
    • ๊ตฌ๊ธ€ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท์„ ์ฑ„ํƒํ•˜์—ฌ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ.

๊ตฌํ˜„ ๊ณ„ํš

  1. ์„ ํƒ1 - S3 ๋ฒ„ํ‚ท ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์ž…:
    • ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ AWS-SDK ๋Œ€์‹  S3 ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋กœ์ง ์ˆ˜์ •.
    • ์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ํ™•์ธ ํ›„ ๋ฐ˜์˜.
  2. ์„ ํƒ2 - ๊ตฌ๊ธ€ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท ์ฑ„ํƒ:
    • ๊ตฌ๊ธ€ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท์„ ํ”„๋กœ์ ํŠธ์— ํ†ตํ•ฉํ•˜๊ณ  ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ด€๋ จ ์ฝ”๋“œ ์ˆ˜์ •.
    • ๊ตฌ๊ธ€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ ํ™•์ธ ํ›„ ์กฐ์น˜.

์˜ˆ์ƒ ํšจ๊ณผ

  1. ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ํ˜„์ƒ ๊ฐœ์„ :
    • ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜์—ฌ EC2 ์„œ๋ฒ„๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ์‹คํ–‰๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€.
  2. AWS-SDK ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํ•ด์†Œ:
    • ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์ž…์œผ๋กœ AWS-SDK ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ.
  3. ์„ฑ๋Šฅ ํ–ฅ์ƒ:
    • ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์–ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ.
ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…2: Redis (๐Ÿ‘ˆ Click)

๋ฌธ์ œ์ 

๋„์„œ ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •์—์„œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์–ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์ €ํ•˜๋๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ์•ˆ ๋ฐ ์˜์‚ฌ๊ฒฐ์ •

๋„์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ :

  1. SQL ์ฟผ๋ฆฌ๋ฌธ ํ™œ์šฉ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฌธ์—์„œ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ , ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ์„ ์„ ํƒ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์ตœ์ ํ™”ํ•œ๋‹ค.
  • ํŠน์ • ๊ฒ€์ƒ‰์–ด์— ํ•ด๋‹นํ•˜๋Š” ๋„์„œ์˜ id, ํƒ€์ดํ‹€๊ณผ ์ด๋ฏธ์ง€ URL๋งŒ์„ ์„ ํƒํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๋„๋ก ์ˆ˜์ •ํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ์ดํ„ฐ ์–‘์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
  1. Redis ์บ์‹ฑ ๊ธฐ๋Šฅ ํ™œ์šฉ:
  • ๊ฒ€์ƒ‰์–ด๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋„์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ฅผ Redis์— ์บ์‹œ๋กœ ์ €์žฅํ•œ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋„์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ, ๋จผ์ € Redis ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ณ , ์—†์„ ๊ฒฝ์šฐ DB์—์„œ ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ Redis์— ์ €์žฅํ•œ๋‹ค.
  • ์บ์‹œ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•˜์—ฌ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๋„๋ก ํ•œ๋‹ค.

๊ตฌํ˜„ ๊ณ„ํš

  1. ๋„์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ :
  • SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์ˆ˜์ •ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ์„ ํšจ์œจ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋„๋ก ์ตœ์ ํ™”ํ•œ๋‹ค.
  • ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ์ดํ„ฐ ์–‘์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  1. Redis ์บ์‹ฑ ๊ตฌํ˜„:
  • ๊ฒ€์ƒ‰ ์‹œ Redis์— ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์—†์œผ๋ฉด DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ Redis์— ์ €์žฅํ•˜๋Š” ๋กœ์ง์„ ๊ฐœ๋ฐœํ•œ๋‹ค.
  • Redis์— ์ €์žฅ๋˜๋Š” ํ‚ค๋Š” ๊ฒ€์ƒ‰์–ด๋กœ, ๊ฐ’์€ ํ•ด๋‹น ๋„์„œ ๋ฐ์ดํ„ฐ๋กœ ํ•œ๋‹ค.
  • ์บ์‹œ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์€ 2๋ถ„์œผ๋กœ ์„ค์ •ํ•จ.

์˜ˆ์ƒ ํšจ๊ณผ

๋ฐ์ดํ„ฐ ๋กœ๋“œ ์†๋„ ํ–ฅ์ƒ:

  • ํšจ์œจ์ ์ธ SQL ์ฟผ๋ฆฌ๋ฌธ๊ณผ ์ตœ์†Œํ•œ์˜ ํ•„์ˆ˜ ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ๋กœ๋“œ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œ์ผœ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • Redis ์บ์‹ฑ์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์ธ ์š”์ฒญ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…3: ์˜์ˆ˜์ฆ ์กฐ์ž‘ ์ด์Šˆ (๐Ÿ‘ˆ Click)

OCR ์„ ์ • ์ด์œ 

...

OCR ์ค‘์—์„œ ๋น„๊ตํ•ด ๋ณด๋‹ˆ ์ข…ํ•ฉ์ ์œผ๋กœ google cloud vision์ด ์ œ์ผ ์ ํ•ฉํ•˜๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.

๋ฌธ์ œ์ 

1. ์˜์ˆ˜์ฆ ์กฐ์ž‘ ๋ฌธ์ œ

OCR์€ ์‚ฌ์ง„์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์˜์ˆ˜์ฆ์— ๋“ค์–ด๊ฐˆ๋งŒํ•œ keyword์ธ์ง€ ํŒ๋ณ„ ํ›„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

๋งŒ์•ฝ ํ•ด๋‹น ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋˜๋ฉด ๋ชจ๋‘ ์˜์ˆ˜์ฆ์œผ๋กœ ์ธ์‹ ํ›„, ๊ฐ€๊ฒŒ๋ช…, ์ฃผ์†Œ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ์ข…์ด ์œ„์กฐ ์˜์ˆ˜์ฆ๋„ ์˜์ˆ˜์ฆ์œผ๋กœ ์ธ์‹๋œ๋‹ค.

๋˜ํ•œ, ํ™˜๋ถˆ ์˜์ˆ˜์ฆ์— ๋Œ€ํ•œ ๋”ฐ๋กœ ์œ ํšจ์„ฑ ์ฒ˜๋ฆฌ๊ฐ€ ์—†๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ์•ˆ ๋ฐ ์˜์‚ฌ๊ฒฐ์ •

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

์œ„์˜ ํ•ด๊ฒฐ๋ฐฉ์•ˆ ์ค‘ ์œ„์กฐ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์˜์ˆ˜์ฆ์„ ์ง์ ‘ ๊ด€๋ฆฌ์ž๊ฐ€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ด ํ•„์ˆ˜์ด๋ฏ€๋กœ ์˜์ˆ˜์ฆ ์ „์šฉ ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ํ‚ค์›Œ๋“œ๋กœ ์˜์ˆ˜์ฆ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ์—์„œ ์˜์ˆ˜์ฆ์„ ์ง์ ‘ ๊ด€๋ฆฌ์ž๊ฐ€ ํ™•์ธ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๊ณ„ํš

  1. Google storage์— ์˜์ˆ˜์ฆ ์‚ฌ์ง„์„ ์ €์žฅ:
  • ์‚ฌ์ง„์„ ์˜ฌ๋ฆฌ๋ฉด Google storage์— ์‚ฌ์ง„ํŒŒ์ผ์„ ์ €์žฅ
  1. ์ €์žฅ๋œ ์˜์ˆ˜์ฆ ์‚ฌ์ง„์„ Slack์œผ๋กœ ์ „์†ก:
  • ์˜์ˆ˜์ฆ ํ‚ค์›Œ๋“œ ํŒ๋ณ„, ์ผ์น˜ํ•˜๋Š” ๊ฐ€๊ฒŒ ์ •๋ณด ๋ฐ ์ฃผ์†Œ, ์ค‘๋ณต์˜์ˆ˜์ฆ ํŒ๋ณ„ ์กฐ๊ฑด ํ†ต๊ณผ ์‹œ slack์œผ๋กœ ์‚ฌ์ง„๊ณผ DB์— ์ €์žฅ๋œ id ๊ฐ’ ์ „์†ก
  1. ์˜์ˆ˜์ฆ ํŒ๋ณ„:
  • Slack ์•Œ๋ฆผ์„ ํ†ตํ•ด ๊ด€๋ฆฌ์ž๊ฐ€ ์˜์ˆ˜์ฆ ์ƒํƒœ(์Šน์ธ, ๋ฏธ์Šน์ธ)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€

์˜ˆ์ƒ ํšจ๊ณผ

  1. ์œ„์กฐ๋œ ์˜์ˆ˜์ฆ ํŒ๋ณ„:

์˜์ˆ˜์ฆ์„ ๊ด€๋ฆฌ์ž๊ฐ€ ํ™•์ธํ•จ์œผ๋กœ ์ธํ•ด ์œ„์กฐ๋œ ์˜์ˆ˜์ฆ ํŒ๋ณ„์ด ๊ฐ€๋Šฅ

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…4: wkx/parser (๐Ÿ‘ˆ Click)

๋ฌธ์ œ์ 

TypeORM์„ ์ด์šฉํ•˜๋ฉด MySQL์— ์œ„์น˜๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ˜•์‹์ธ Point(x, y) ๊ฐ’์„ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ

ํ•ด๊ฒฐ๋ฐฉ์•ˆ

TypeORM์—์„œ ์ง€์›ํ•˜๋Š” Queryselector๋ฅผ ์ด์šฉํ•ด ์‹ค์ œ SQL ์ฟผ๋ฆฌ์™€ ๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ ๊ฐ’์„ ์ง‘์–ด๋„ฃ๋Š” ๋ฐฉ์•ˆ(wkx)

์ €์žฅ๋œ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด Point๋ฅผ Parser ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ ๋ฐ ์ฃผ๋ณ€ ์ง€์  ์ฐพ๊ธฐ ๊ธฐ๋Šฅ ์™„์„ฑ

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…5: ์†Œ์…œ๋กœ๊ทธ์ธ (๐Ÿ‘ˆ Click)

๋ฌธ์ œ์ 

  1. ๋ณด์•ˆ ์ด์Šˆ - URL์— ํ† ํฐ ๋…ธ์ถœ:
    • ํ˜„์žฌ ์†Œ์…œ ๋กœ๊ทธ์ธ์—์„œ๋Š” URL์„ ํ†ตํ•ด access token๊ณผ refresh token์„ ์ „์†กํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ์ƒ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ฟ ํ‚ค๋ฅผ ํ†ตํ•œ ๋กœ๊ทธ์ธ ์ด์Šˆ:
    • ๊ธฐ์กด์— JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘, ์†Œ์…œ ๋กœ๊ทธ์ธ์—์„œ๋Š” ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ์„ ๋ฐ›๋Š” ๊ณผ์ •์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. HTML ๋ฐ ๋กœ์ง ๋ถˆ์ผ์น˜:
    • ๋กœ๊ทธ์ธ ์„ฑ๊ณต์‹œ ๋ฐ›์•„์ฃผ๋Š” HTML์ด ์—†์ด ๋กœ์ง๋งŒ์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ ์‘๋‹ต ๋ฐ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋ฏธํกํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ์•ˆ ๋ฐ ์˜์‚ฌ๊ฒฐ์ •

  1. JWT ๊ธฐ๋ฐ˜ ์†Œ์…œ ๋กœ๊ทธ์ธ์œผ๋กœ์˜ ์ „ํ™˜:
    • ํ˜„์žฌ์˜ ๋ณด์•ˆ ์ด์Šˆ์™€ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐฉ์‹์˜ ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด, ์†Œ์…œ ๋กœ๊ทธ์ธ์—์„œ๋„ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์†Œ์…œ ๋กœ๊ทธ์ธ ํ›„์—๋„ JWT๋ฅผ ํ†ตํ•ด ํ† ํฐ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Redis ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ์™€ ์‚ฌ์šฉ์ž ID ์ €์žฅ:
    • ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ ๋ฐœ๊ธ‰๋œ ์ฝ”๋“œ์™€ ์‚ฌ์šฉ์ž ID๋ฅผ Redis์— ์ €์žฅํ•˜๋Š” ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‚˜์ค‘์— ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. HTML ๋ฐ ์‚ฌ์šฉ์ž ์‘๋‹ต ๊ฐ•ํ™”:
    • ๋กœ๊ทธ์ธ ์„ฑ๊ณต์‹œ ๋ฐ›์•„์ฃผ๋Š” HTML ํŽ˜์ด์ง€์™€ ๋กœ์ง์„ ๊ฐœ์„ ํ•˜์—ฌ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ ์‘๋‹ต์„ ์ œ๊ณตํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๊ณ„ํš

  1. JWT ๊ธฐ๋ฐ˜ ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„:
    • ์†Œ์…œ ๋กœ๊ทธ์ธ์—์„œ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ ๋ฐ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  2. Redis๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ ๋ฐ ์‚ฌ์šฉ์ž ID ์ €์žฅ ๋กœ์ง ์ถ”๊ฐ€:
    • ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ ๋ฐœ๊ธ‰๋œ ์ฝ”๋“œ์™€ ์‚ฌ์šฉ์ž ID๋ฅผ Redis์— ์ €์žฅํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋‚˜์ค‘์— ์ธ์ฆ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์€ 30์ดˆ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. HTML ๋ฐ ๋กœ์ง ๊ฐœ์„ :
    • ๋กœ๊ทธ์ธ ์„ฑ๊ณต์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ HTML ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๊ณ , ๋กœ์ง์„ ๊ฐœ์„ ํ•˜์—ฌ ์‘๋‹ต์˜ ์ผ๊ด€์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ ํšจ๊ณผ

  1. ๋ณด์•ˆ ๊ฐ•ํ™”:
    • URL์— ๋…ธ์ถœ๋˜๋Š” ํ† ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , JWT๋ฅผ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ณด์•ˆ์„ฑ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ผ๊ด€๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜: - ๋ชจ๋“  ๋กœ๊ทธ์ธ ๋ฐฉ์‹์—์„œ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์ผ๊ด€๋˜๊ฒŒ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.


๐ŸŽฅ ์‹œ์—ฐ ์˜์ƒ

[๐ŸŽž์‹œ์—ฐ ์˜์ƒ]

๐Ÿ ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (๐Ÿ‘ˆ Click)

๋‹ค์Œ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ด ๋ณ€์ˆ˜๋“ค์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Database ์„ค์ •

  • DATABASE_HOST: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ŠคํŠธ
  • DATABASE_PORT: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌํŠธ
  • DATABASE_USERNAME: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์ด๋ฆ„
  • DATABASE_PASSWORD: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•”ํ˜ธ
  • DATABASE_NAME: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„
  • DATABASE_SYNC: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋™๊ธฐํ™” ์—ฌ๋ถ€

Google ์Šคํ† ๋ฆฌ์ง€ ์„ค์ •

  • GOOGLE_DATABASE_HOST: Google ์Šคํ† ๋ฆฌ์ง€ ํ˜ธ์ŠคํŠธ
  • GOOGLE_DATABASE_PORT: Google ์Šคํ† ๋ฆฌ์ง€ ํฌํŠธ
  • GOOGLE_DATABASE_USERNAME: Google ์Šคํ† ๋ฆฌ์ง€ ์‚ฌ์šฉ์ž ์ด๋ฆ„
  • GOOGLE_DATABASE_PASSWORD: Google ์Šคํ† ๋ฆฌ์ง€ ์•”ํ˜ธ
  • GOOGLE_DATABASE_NAME: Google ์Šคํ† ๋ฆฌ์ง€ ์ด๋ฆ„
  • GOOGLE_DATABASE_SYNC: Google ์Šคํ† ๋ฆฌ์ง€ ๋™๊ธฐํ™” ์—ฌ๋ถ€

์„œ๋ฒ„ ์„ค์ •

  • SERVER_PORT: ์„œ๋ฒ„ ํฌํŠธ

JWT ํ† ํฐ ์„ค์ •

  • JWT_ACCESS_TOKEN_SECRET: ์•ก์„ธ์Šค ํ† ํฐ ๋น„๋ฐ€ํ‚ค
  • JWT_ACCESS_TOKEN_EXP: ์•ก์„ธ์Šค ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„
  • JWT_REFRESH_TOKEN_SECRET: ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋น„๋ฐ€ํ‚ค
  • JWT_REFRESH_TOKEN_EXP: ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„

AWS ์„ค์ •

  • AWS_ACCESS_KEY_ID: AWS ์•ก์„ธ์Šค ํ‚ค ID
  • AWS_SECRET_ACCESS_KEY: AWS ๋น„๋ฐ€ ์•ก์„ธ์Šค ํ‚ค
  • AWS_S3_BUCKET: AWS S3 ๋ฒ„ํ‚ท ์ด๋ฆ„

Google Cloud ์„ค์ •

  • GOOGLE_PROJECTID: Google Cloud ํ”„๋กœ์ ํŠธ ID
  • GOOGLE_BUCKET_NAME: Google Cloud ๋ฒ„ํ‚ท ์ด๋ฆ„
  • KEYFILE: Google Cloud ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ

์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ ์„ค์ •

  • KAKAO_CLIENT_ID: ์นด์นด์˜ค ํด๋ผ์ด์–ธํŠธ ID
  • KAKAO_CLIENT_SECRET: ์นด์นด์˜ค ํด๋ผ์ด์–ธํŠธ ์‹œํฌ๋ฆฟ
  • KAKAO_REDIRECT_URI: ์นด์นด์˜ค ๋ฆฌ๋””๋ ‰์…˜ URI
  • KAKAO_ADMIN_REDIRECT_URI: ์นด์นด์˜ค ๊ด€๋ฆฌ์ž ๋ฆฌ๋””๋ ‰์…˜ URI

๋„ค์ด๋ฒ„ ์†Œ์…œ ๋กœ๊ทธ์ธ ์„ค์ •

  • NAVER_CLIENT_ID: ๋„ค์ด๋ฒ„ ํด๋ผ์ด์–ธํŠธ ID
  • NAVER_CLIENT_SECRET: ๋„ค์ด๋ฒ„ ํด๋ผ์ด์–ธํŠธ ์‹œํฌ๋ฆฟ
  • NAVER_REDIRECT_URI: ๋„ค์ด๋ฒ„ ๋ฆฌ๋””๋ ‰์…˜ URI
  • NAVER_ADMIN_REDIRECT_URI: ๋„ค์ด๋ฒ„ ๊ด€๋ฆฌ์ž ๋ฆฌ๋””๋ ‰์…˜ URI

Redis ์„ค์ •

  • REDIS_USERNAME: Redis ์‚ฌ์šฉ์ž ์ด๋ฆ„
  • REDIS_HOST: Redis ํ˜ธ์ŠคํŠธ
  • REDIS_PORT: Redis ํฌํŠธ
  • REDIS_PASSWORD: Redis ์•”ํ˜ธ
  • REDIS_EXPIRATION_TIME_SECONDS: Redis ๋งŒ๋ฃŒ ์‹œ๊ฐ„(์ดˆ)
  • REDIS_CODE_EXPIRATION_TIME_SECONDS: Redis ์ฝ”๋“œ ๋งŒ๋ฃŒ ์‹œ๊ฐ„(์ดˆ)

๋ฉ”์ผ ์„ค์ •

  • MAIL_USER: ๋ฉ”์ผ ์‚ฌ์šฉ์ž ์ด๋ฆ„
  • MAIL_PASS: ๋ฉ”์ผ ๋น„๋ฐ€๋ฒˆํ˜ธ

Book API ํ‚ค

  • book_api: Book API ํ‚ค

์˜์ˆ˜์ฆ OCR ์„ค์ •

  • receipt_projectId: OCR ํ”„๋กœ์ ํŠธ ID
  • receipt_BUCKET_NAME: OCR ๋ฒ„ํ‚ท ์ด๋ฆ„
  • receit_keyfile: OCR ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ

Slack ์„ค์ •

  • slack_token: Slack ํ† ํฐ
  • slack_conversationId: Slack ์ฑ„๋„ ID


๐Ÿ‘‹ ํŒ€ ์†Œ๊ฐœ

๐Ÿฐ FIVE BUNNIES






ํŒ€์žฅ : ์ •๊ทœ์„ฑ
๋ถ€ํŒ€์žฅ : ์ด๋™ํ•˜ ํŒ€์› : ์†ก์ฐฝํ˜„ ํŒ€์› : ํ•œ์ˆ˜๊ฒฝ ํŒ€์› : ์ด์ฃผ์˜
๋งˆ์ดํŽ˜์ด์ง€, ๋„์„œ ๋ฆฌ๋ทฐ, ์•Œ๋ฆผ CRUD
๋ฉ”๋‰ด, ์Šคํ† ์–ด CRUD
CI/CD
๋กœ๊ทธ์ธ ํšŒ์›๊ฐ€์ž…
๊ฒฐ์ œ๊ธฐ๋Šฅ
Front axios ์ž‘์—…

๋„ค์ด๋ฒ„,์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ
๋„์„œ,์ง€์ ๋„์„œCRUD
์œ ์ €์ง€์ ์‚ฌ์žฅ์ „ํ™˜ (C)
๋น„๋ฐ€๋ฒˆํ˜ธ์ฐพ๊ธฐ๊ธฐ๋Šฅ
๊ฒ€์ƒ‰์–ด TOP10 ๋žญํ‚น ๊ธฐ๋Šฅ
์˜์ˆ˜์ฆ์ธ์ฆ ๋ฆฌ๋ทฐ ๋“ฑ๋ก(C)
์‚ฌ์žฅ๋‹˜ ๋ฆฌ๋ทฐ CRUD
๋„์„œ CSV๋กœ ๋“ฑ๋ก(C)
์ง€์  ์ด์šฉ ํ›„๊ธฐ CRUD
์ง€๋„ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5