Skip to content

condi-book/condibook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

939 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โœจ ์„œ๋น„์Šค ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฐ ์‹œ์—ฐ ์˜์ƒ

์‹œ์—ฐ์˜์ƒ


๐Ÿ”— GitHub ๋งํฌ


1. ์„œ๋น„์Šค ์†Œ๊ฐœ

condibook

: ๋‹น์‹ ์˜ ํŽธ๋ฆฌํ•œ ๋ถ๋งˆํฌ

โ—ย ๋ชฉํ‘œ

๐Ÿ’ก AI๋ฅผ ํ™œ์šฉํ•œ ํŽธ๋ฆฌํ•œ ๋ถ๋งˆํฌ ๊ด€๋ฆฌ ๋ฐ ๋ถ๋งˆํฌ ๊ณต์œ  ์„œ๋น„์Šค

  • ์–‘์งˆ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๋ถ๋งˆํฌ๋ฅผ ๋ณด๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž
  • ๊ณต์œ ๋œ ๋งํฌ๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•ด์„œ ๋Šฅ๋ฅ ์„ ๋†’์ด๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž
  • ๋ถ๋งˆํฌ๋ฅผย ๋น ๋ฅด๊ณ  ํŽธํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž

๋ถ๋งˆํฌ์˜ ํ•œ์ •๋œ ๊ธฐ๋Šฅ์œผ๋กœ ๋А๊ผˆ๋˜ ๋ถˆํŽธํ•จ์„ Condibook์œผ๋กœ ํ•ด๊ฒฐํ•˜์„ธ์š”!

โ“ ๊ธฐํš ์˜๋„

๐ŸŸฆ ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ์„œํฌํ„ฐ, ๋ถ๋งˆํฌ

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

๐ŸŸช ๋ถ๋งˆํฌ ๋ฐœ์ „ ํฌ์ธํŠธ

  • ๋ถ๋งˆํฌ ๋Œ€์ถฉ ์ €์žฅํ•ด์„œ ๋‹ค์‹œ ์ฐพ๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ
  • ์–‘์งˆ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋น ๋ฅธ ์‹œ๊ฐ„์— ์ฐพ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • ํ˜‘์—… ๋•Œ ๊ณต์œ ํ•œ ๋งํฌ๋ฅผ ์ฐพ๋Š”๋ฐ ์‹œ๊ฐ„์„ ์ง€์ฒดํ•˜๋Š” ๊ฒฝ์šฐ

๐ŸŸฅ Condibook์ด ์ œ์‹œํ•œ ๋ฐฉ๋ฒ•

  • โšก๏ธ 15๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ AI๊ฐ€ ์‚ฌ์ดํŠธ๋ฅผ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์ถ”์ฒœ
  • ๐Ÿ‘€ย ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๋ถ๋งˆํฌ ์กฐํšŒ
  • ๐Ÿ“šย ํŒ€ ๋ถ๋งˆํฌ ๊ด€๋ฆฌ๋กœ ํฉ์–ด์ง„ ๋งํฌ๋“ค์„ ํด๋”๋กœ ๊ด€๋ฆฌ

2. ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ’ป Frontend


  • React
    : ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ ๋“ฑ์œผ๋กœ ์ธํ•œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๊ณ  ํ”„๋ก ํŠธ์—”๋“œ ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ ์ค‘์—์„œ ๊ฐ€์žฅ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™œ์„ฑํ™”๊ฐ€ ์ž˜ ๋˜์–ด์žˆ์Œ
  • TypeScript
    : ํƒ€์ž…์„ ์ ์–ด ์คŒ์œผ๋กœ์จ Props, API์—ฐ๊ฒฐ์—์„œ ์ƒ๊ธฐ๋Š” ํƒ€์ž…์—๋Ÿฌ๋ฅผ ๋ฏธ๋ฆฌ ๋ง‰์„ ์ˆ˜ ์žˆ์Œ
  • Styled-components
    : CSS in JS ๋กœ ๊ด€๋ฆฌ ์šฉ์ด ๋ฐ ์ž์œ ๋กœ์šด ์ปค์Šคํ…€๊ณผ props๋กœ ์Šคํƒ€์ผ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ
  • React-bootstrap
    : ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • Amazon S3
    : ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ base64๊ฐ€ ์•„๋‹Œ URL๋ฐฉ์‹์œผ๋กœ s3์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค.
  • Axios
    : ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ ๊ณผ ํŽธ์˜์„ฑ์„ ์ œ๊ณต

๐Ÿ’พ Backend


  • Node.js & Express
    : JS๋กœ ๊ตฌ์ถ• ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„ ์ค‘ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ด๊ณ  ์‰ฌ์šฐ๋ฉฐ ์œ ์—ฐํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์„œ๋ฒ„ ์กฐํ•ฉ
  • JWT
    : ํ† ํฐ ์ž์ฒด์— ์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ณ„๋„์˜ ์ธ์ฆ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š” ์—†๋Š” ํŽธ๋ฆฌ์„ฑ๊ณผ ์—ฌ๋Ÿฌ ๋””๋ฐ”์ด์Šค์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜ธํ™˜์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ํ† ํฐ
  • Sequelize
    : DBMS์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์ค„์–ด ์žฌ์‚ฌ์šฉ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์˜ ํŽธ๋ฆฌ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ณ  ๊ฐ์ฒด ์ง€ํ–ฅ์  ์ฝ”๋“œ๋กœ ๋” ์ง๊ด€์ ์ด๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋” ์ง‘์ค‘ ๊ฐ€๋Šฅํ•จ
  • docker
    : ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ๋ถ„๋œ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ ํ™˜๊ฒฝ์œผ๋กœ ์ธํ•ด ๋…๋ฆฝ๋œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๋ณด์žฅํ•˜๋ฉฐ kernel์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์•„ ๋น„๊ต์  ํฌ๊ธฐ๊ฐ€ ์ž‘์œผ๋ฏ€๋กœ ์ข€ ๋” ์‹ ์†ํ•œ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅ
  • MySQL
    : NoSQL ๋Œ€๋น„ SQL์€ RDBMS ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์—„๊ฒฉํ•œ ์Šคํ‚ค๋งˆ์™€ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์ข€ ๋” ๋ณต์žกํ•œ ๊ด€๊ณ„์ผ ๊ฒฝ์šฐ ์ˆ˜์ •์ด ์ข€ ๋” ์šฉ์ด ํ•œ ์žฅ์ ์ด ์žˆ์Œ, SQL ์ค‘ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ MySQL์„ ์‚ฌ์šฉ
  • Amazon RDS
    : ๋Œ€๊ทœ๋ชจ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ํด๋ผ์šฐ๋“œ์—์„œ ์„ค์ • ๋ฐ ์šด์˜์ด ๊ฐ€๋Šฅ ํ•˜๋„๋ก ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ MySQL์˜ RDBMS์™€ ํ˜ธํ™˜ํ•ด ์‚ฌ์šฉ
  • aws ec2
    : ํ•˜๋“œ์›จ์–ด์— ์„  ํˆฌ์žํ•  ํ•„์š”๊ฐ€ ์—†์–ด ๋” ๋น ๋ฅด๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌ ๊ฐ€๋Šฅ
  • Logstash
    : Elasticsearch์™€์˜ ๊ธด๋ฐ€ํ•œ ํ†ตํ•ฉ, ๊ฐ•๋ ฅํ•œ ๋กœ๊ทธ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ, ์‚ฌ์ „ ๊ตฌ์ถ•๋œ 200๊ฐœ ์ด์ƒ์˜ ์˜คํ”ˆ ์†Œ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ์„ ๋•๋Š” Logstash๋Š” Elasticsearch์— ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
  • ElasticSearch
    : HTTP ์›น ์ธํ„ฐํŽ˜์ด์Šค์™€ ์Šคํ‚ค๋งˆ์—์„œ ์ž์œ ๋กœ์šด JSON ๋ฌธ์„œ์™€ ํ•จ๊ป˜ ๋ถ„์‚ฐ ๋ฉ€ํ‹ฐํ…Œ๋„ŒํŠธ ์ง€์› ์ „๋ฌธ ๊ฒ€์ƒ‰ ์—”์ง„์„ ์ œ๊ณต

๐Ÿค– AI


  • Flask
    : AI ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„. ๋ชจ๋ธ ์ž์ฒด์—์„œ ๋‚˜์˜จ ์ •๋ณด๋ฅผ ์žฌ ๊ฐ€๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • Word2vec
    : ์ฃผ์–ด์ง„ ์˜ˆ๋น„ ํ‚ค์›Œ๋“œ๋“ค๋กœ๋ถ€ํ„ฐ ์„ค๋ช…๊ณผ์˜ ์œ ์‚ฌ์„ฑ์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ (๋ฉ”์ธ ๋ชจ๋ธ)
  • Googletrans
    : input์—์„œ ํ•œ๊ตญ์–ด๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์–ธ์–ด๊ฐ€ ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฒˆ์—ญ์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • Konlpy
    : googletrans์™€ ๋™์‹œ์— input ๊ฐ’์œผ๋กœ๋ถ€ํ„ฐ keyword ๋ช…์‚ฌ๋ฅผ ์ถ”์ถœํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • Regex
    : ๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒ˜๋ฆฌ ๋ฐ input ๊ฐ’์˜ ๋ถˆ์šฉ์–ด๋“ค์„ ์ œ๊ฑฐํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

๐ŸŒย ๋ฐฐํฌ


  • Nginx
    : HTTPS๋ฅผ ์ ์šฉํ•˜๊ณ , ์„œ๋ฒ„ ๋ถ„๊ธฐ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
  • Docker, Docker-compose
    : ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์— ๊ฐ„ํŽธํ•˜๊ณ  ๊ฐ€๋ณ๊ฒŒ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

3. ์„œ๋น„์Šค ๊ธฐ๋Šฅ

โš› ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ


: ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ถ๋งˆํฌ ํ•  ํŽ˜์ด์ง€์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ•ด๋‹น URL์— ๋Œ€ํ•œ meta ์ •๋ณด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ AI ์ถ”์ฒœ ์นดํ…Œ๊ณ ๋ฆฌ ์ œ๊ณต

  • ์„ธ๋ถ€ ๊ธฐ๋Šฅ
    • ๋Œ€๋ถ€๋ถ„์˜ url์—์„œ AI๋ฅผ ํ†ตํ•œ 15๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ํด๋” ์ถ”์ฒœ ๊ธฐ๋Šฅ ์ œ๊ณต

    • ์ €์žฅ ํด๋”๋ฅผ ์ง์ ‘ ์ž…๋ ฅ ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ ์ €์žฅ๋œ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ๋„ ์ €์žฅ ๊ฐ€๋Šฅ

    • ๋ถ๋งˆํฌ ์ €์žฅ ์‹œ ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ํ™•์ธ ๊ฐ€๋Šฅ

    • ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ ๋งํฌ

      โ†’ Chrome ์›น ์Šคํ† ์–ด

โš› ๋ฉ”์ธ ํŽ˜์ด์ง€


: ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ์ •๋ณด ์ œ๊ณต, ์‹ค ์„œ๋น„์Šค ์ด์šฉ ํŽ˜์ด์ง€์™€ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํŽ˜์ด์ง€

  • ์„ธ๋ถ€ ๊ธฐ๋Šฅ
    • CondiBook ์„œ๋น„์Šค ๋ฐ ๊ฐœ๋ฐœ์ž ์†Œ๊ฐœ
    • ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ
      • ํด๋ฆญ ์‹œ ํฌ๋กฌ ์›น ์Šคํ† ์–ด ์ƒˆ ํƒญ ์ด๋™
    • ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž…
      • ํด๋ฆญ ์‹œ ์†Œ์…œ ๋กœ๊ทธ์ธ (๊ตฌ๊ธ€ & ์นด์นด์˜ค) ํŽ˜์ด์ง€๋กœ ์ด๋™
      • ์ด๋ฏธ ๋กœ๊ทธ์ธํ•œ ์œ ์ €์˜ ๊ฒฝ์šฐ, ํด๋ฆญ ์‹œ ๋งˆ์ด ํŽ˜์ด์ง€๋กœ ์ด๋™

โš› ํ”„๋กœํ•„ ์ฐฝ


  • ์‚ฌ์šฉ์ž ์ •๋ณด ํ™•์ธ
  • ์ˆ˜์ • ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋‹‰๋„ค์ž„ ์„ค์ • ๋ฐ ํ”„๋กœํ•„ ์†Œ๊ฐœ๊ธ€ ์ž…๋ ฅ ๊ธฐ๋Šฅ
  • ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ

โš› ๋‚˜์˜ ๋ถ๋งˆํฌ ํŽ˜์ด์ง€


: ๋‚˜์˜ ๋ถ๋งˆํฌ, ํด๋” ๊ด€๋ฆฌ ๋ฐ ๋ถ๋งˆํฌ ์ƒ์„ธ ์ •๋ณด ์ œ๊ณต ํŽ˜์ด์ง€

  • ์„ธ๋ถ€ ๊ธฐ๋Šฅ
    • ๋ถ๋งˆํฌ ํด๋” ์ƒ์„ฑ & ์ˆ˜์ • & ์‚ญ์ œ & ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ
    • ๋ถ๋งˆํฌ ์ถ”๊ฐ€ & ์ •๋ ฌ(๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋ž) & ์ด๋™ & ์‚ญ์ œ ๊ธฐ๋Šฅ
    • ๋ฏธ๋ฆฌ๋ณด๊ธฐ(iframe) ๊ธฐ๋Šฅ
      • ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ url์ผ ๊ฒฝ์šฐ ์ƒˆํƒญ์œผ๋กœ ์—ด๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ณผ ์ˆ˜ ์žˆ์Œ
    • ์Šคํฌ๋žฉํ•œ ๋ถ๋งˆํฌ ํƒญ์—์„œ ์ข‹์•„์š”ํ•œ ๊ฒŒ์‹œ๊ธ€ ๋ชจ์•„๋ณด๊ธฐ ๊ธฐ๋Šฅ

โš› ์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€


: ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ถ๋งˆํฌ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ์„œ๋กœ ๊ณต์œ ํ•˜๋Š” ํŽ˜์ด์ง€

  • ์„ธ๋ถ€ ๊ธฐ๋Šฅ
    • ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ ์ •๋ณด ํ™•์ธ
    • ๊ฒŒ์‹œ๊ธ€ ์ถ”๊ฐ€ & ์ˆ˜์ • & ์‚ญ์ œ ๊ธฐ๋Šฅ
    • ์ข‹์•„์š” ๊ธฐ๋Šฅ
    • ๋Œ“๊ธ€ ์ถ”๊ฐ€ & ์ˆ˜์ • & ์‚ญ์ œ ๊ธฐ๋Šฅ
    • ์กฐํšŒ์ˆ˜, ์ข‹์•„์š”, ์ตœ์‹ ์ˆœ ์ •๋ ฌ ๊ธฐ๋Šฅ
    • ๋ถ๋งˆํฌ ์ฒจ๋ถ€ ๊ธฐ๋Šฅ (10๊ฐœ ์ œํ•œ)
    • Markdown ๋ฌธ๋ฒ• ์ œ๊ณต
    • ๋งํฌ ํด๋ฆฝ๋ณด๋“œ ๋ณต์‚ฌ ๊ธฐ๋Šฅ
      • ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์ถ”๊ฐ€ ๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ ๋งํฌ ํด๋ฆฝ๋ณด๋“œ ๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ธฐ๋Šฅ
      • ๋‚˜์˜ ๋ถ๋งˆํฌ์— ํ•ด๋‹น ๋งํฌ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ( + AI ํด๋” ์ถ”์ฒœ ๊ธฐ๋Šฅ)
    • ๋ฏธ๋ฆฌ๋ณด๊ธฐ(iframe) ๊ธฐ๋Šฅ
      • ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ url์ผ ๊ฒฝ์šฐ ์ƒˆํƒญ์œผ๋กœ ์—ด๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ณผ ์ˆ˜ ์žˆ์Œ
    • ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ
      • ์ œ๋ชฉ + ๋‚ด์šฉ

โš› ๊ทธ๋ฃน(ํŒ€) ๋ถ๋งˆํฌ ํŽ˜์ด์ง€


: ๊ทธ๋ฃน(ํŒ€)๋ณ„๋กœ ๊ทธ๋ฃน, ๋ถ๋งˆํฌ, ํด๋” ๊ด€๋ฆฌ ๋ฐ ๋ถ๋งˆํฌ ์ƒ์„ธ ์ •๋ณด ์ œ๊ณต ํŽ˜์ด์ง€

  • ์„ธ๋ถ€ ๊ธฐ๋Šฅ
    • ๊ทธ๋ฃน ์ƒ์„ฑ ๋ฐ ๊ทธ๋ฃน ๊ฐ„ ๋ถ๋งˆํฌ ๊ณต์œ  ๊ธฐ๋Šฅ
    • ๊ทธ๋ฃน(ํŒ€) ์ƒ์„ฑ, ์ •๋ณด ์ˆ˜์ • ๊ธฐ๋Šฅ
    • ์œ ์ € ์ •๋ณด ํ™•์ธ
    • ๋งค๋‹ˆ์ € ๊ถŒํ•œ ๊ธฐ๋Šฅ
      • ๊ทธ๋ฃน(ํŒ€) ๊ด€๋ฆฌ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง€๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ
      • ์œ ์ € ์ดˆ๋Œ€ ๋ฐ ์ถ”๋ฐฉ ๊ธฐ๋Šฅ
      • ํด๋” ๋ฐ ๋ถ๋งˆํฌ ์‚ญ์ œ ๊ธฐ๋Šฅ
    • ๋ถ๋งˆํฌ ํด๋” ์ƒ์„ฑ & ์ˆ˜์ • & ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ
    • ๋ถ๋งˆํฌ ์ถ”๊ฐ€ & ์ •๋ ฌ(๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋ž) & ์ด๋™
    • ๋ฏธ๋ฆฌ๋ณด๊ธฐ(iframe) ๊ธฐ๋Šฅ
      • ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ url์ผ ๊ฒฝ์šฐ ์ƒˆํƒญ์œผ๋กœ ์—ด๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ณผ ์ˆ˜ ์žˆ์Œ

โš› ํ†ตํ•ฉ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€


: ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ, ๋‚˜์˜ ํด๋”, ํŒ€ ํด๋”์— ๋Œ€ํ•œ ํ†ตํ•ฉ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ œ๊ณต ํŽ˜์ด์ง€

  • ์„ธ๋ถ€ ๊ธฐ๋Šฅ
    • ๋‚˜์˜ ๋ถ๋งˆํฌ ํŽ˜์ด์ง€, ๊ทธ๋ฃน ๋ถ๋งˆํฌ ํŽ˜์ด์ง€์— ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์˜ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋‚˜ํƒ€๋‚จ
    • ํ•„ํ„ฐ ๊ธฐ๋Šฅ (์ „์ฒด, ๋‚ด ํด๋”, ํŒ€ ํด๋”)
    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์„ ํƒ ์‹œ ํ•ด๋‹น ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™

โš› ์„ค์ • ์ฐฝ


  • ํฌ๋กฌ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ ํด๋ฆญ ์‹œ ํฌ๋กฌ ์›น์Šคํ† ์–ด๋กœ ์ด๋™
  • ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ฉ”์ธํŽ˜์ด์ง€๋กœ ์ด๋™


4. ํŒ€์› ์—ญํ•  ๋ถ„๋‹ด

์ด๋ฆ„ ์—ญํ•  ๋‹ด๋‹น ๋ถ€๋ถ„
๊ฐ•์ฃผํฌ ํŒ€์žฅ, ํ”„๋ก ํŠธ์—”๋“œ โ–ช WIKI ์ž‘์„ฑ
โ–ช ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ œ์ž‘ ๋ฐ ๋””์ž์ธ ์ด๊ด„
โ–ช ๋ฉ”์ธ, ์‚ฌ์ด๋“œ๋ฐ”, ํ†ตํ•ฉ ๊ฒ€์ƒ‰, ๋‚˜์˜ ๋ถ๋งˆํฌ ํŽ˜์ด์ง€ ๊ตฌํ˜„
โ–ช ํฌ๋กฌ ์ต์Šคํ…์…˜
๊น€ํ•˜์˜ ํ”„๋ก ํŠธ์—”๋“œ โ–ช ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ œ์ž‘
โ–ช ์•„ํ‚คํ…์ณ ๊ตฌ์กฐ๋„ ์ œ์ž‘
โ–ช ํŒ€ ํŽ˜์ด์ง€ ๊ตฌํ˜„
โ–ช ์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€ ๊ตฌํ˜„
โ–ช iframe ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ถ„๊ธฐ ๊ตฌํ˜„
์„œํ˜•์ค€ AI โ–ช ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ ์„ค๊ณ„
โ–ช ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
โ–ช ๋ฐœํ‘œ
์—„ํ˜œ์ง„ ๋ฐฑ์—”๋“œ โ–ช ER-diagram ์„ค๊ณ„
โ–ช ๋ฐฑ์—”๋“œ API ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„
โ–ช Redis๋กœ ์›น์‚ฌ์ดํŠธ ํŒŒ์‹ฑ ์ •๋ณด ๋ฐ ํ‚ค์›Œ๋“œ ์กฐํšŒ ์‹œ๊ฐ„ ๋‹จ์ถ•
โ–ช docker-compose๋กœ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์— HTTPS ๋ฐฐํฌ
ํ•œ์šฐ์„ฑ ๋ฐฑ์—”๋“œ โ–ช ํฌ๋กฌ ์ต์Šคํ…์…˜ ๋ฐฐํฌ ๋ฐ AI ์—ฐ๊ฒฐ
โ–ช ๋ฐฑ์—”๋“œ API ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„
โ–ช ElasticSearch๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ฐ•ํ™”
โ–ช Mysql DB ๊ตฌ์ถ• (AWS RDS)
ALL โ–ช ๊ธฐํš
โ–ช ๋ฐœํ‘œ ๋ฐ ์†Œ๊ฐœ ์ž๋ฃŒ ์ค€๋น„
โ–ช QA

5. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๋„

  • ํŽ˜์ด์ง€ ๊ตฌ์กฐ๋„

  • ER Diagram

  • AI ํ”Œ๋กœ์šฐ

About

bookmark-share-service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors