Skip to content

Kernel360/Kernel360-KDEV4-ZIPLINE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๋ฐฐํฌ ๋งํฌ

https://zip-line.kr



๐Ÿ“ฑ ์„œ๋น„์Šค ์‹œ์—ฐ ์˜์ƒ

๐Ÿ“ ์„œ๋น„์Šค ์†Œ๊ฐœ

์ง‘๋ผ์ธ(Zipline)์€ "์ง‘(Home)"๊ณผ "๋ผ์ธ(Line)"์˜ ํ•ฉ์„ฑ์–ด๋กœ, ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๊ฐ€ ๋ถ€๋™์‚ฐ๊ณผ ๊ณ ๊ฐ์„ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

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

๐Ÿ“Š ํ†ต๊ณ„

๋Œ€์‹œ๋ณด๋“œ ํ™”๋ฉด์—์„œ ๊ณ„์•ฝ, ๊ณ ๊ฐ, ์ƒ๋‹ด ํ˜„ํ™ฉ์„ ์š”์•ฝํ•ด ์ œ๊ณตํ•˜์—ฌ, ์ค‘๊ฐœ์‚ฌ๊ฐ€ ํ˜„์žฌ ์—…๋ฌด ์ƒํ™ฉ์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

๐Ÿ“… ์ผ์ •

์ฃผ๊ฐ„/์›”๊ฐ„ ๋‹จ์œ„๋กœ ๊ณ„์•ฝ ์ผ์ •๊ณผ ์ƒ๋‹ด ์ผ์ •์„ ์กฐํšŒํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ์ •์„ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ฒด๊ณ„์ ์ธ ์Šค์ผ€์ค„ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹ ์„ค๋ฌธ

์‹ ๊ทœ ๊ณ ๊ฐ ์œ ์ž… ์‹œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์ „์— ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค๋ฌธ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

QR์ฝ”๋“œ ๋ฐ URL ๋งํฌ๋ฅผ ํ†ตํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ์„ค๋ฌธ์„ ๋ฐฐํฌํ•˜๊ณ , ์ œ์ถœ๋œ ๋‹ต๋ณ€์„ ํ†ตํ•ด ๊ณ ๊ฐ์˜ ๋‹ˆ์ฆˆ๋ฅผ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“„ ๊ณ„์•ฝ

๊ณ ๊ฐ๊ณผ ๋งค๋ฌผ ๊ฐ„์˜ ๊ณ„์•ฝ ๊ณผ์ •์„ ์ฒด๊ณ„์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ—จ๏ธ ์ƒ๋‹ด

๊ณ ๊ฐ๊ณผ์˜ ์ƒ๋‹ด ๊ธฐ๋ก์„ ๋“ฑ๋กํ•˜๊ณ  ์กฐํšŒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒ๋‹ด ์ผ์‹œ๋‚˜ ๊ณ ๊ฐ ์ •๋ณด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿข ๋งค๋ฌผ

๋งค๋ฌผ์„ ๋“ฑ๋กํ•˜๊ณ , ์ƒ์„ธ ์กฐ๊ฑด(๊ฐ€๊ฒฉ, ๋ฉด์ , ๋ฐ˜๋ ค๋™๋ฌผ ์—ฌ๋ถ€ ๋“ฑ)์„ ๊ธฐ์ค€์œผ๋กœ ์กฐํšŒ ๋ฐ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งค๋ฌผ ํžˆ์Šคํ† ๋ฆฌ๋„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘ฅ ๊ณ ๊ฐ

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

๐Ÿ“ฉ ๋ฌธ์ž

๋‹จ์ฒด ๋ฌธ์ž ๋ฐœ์†ก, ๋ฌธ์ž ํ…œํ”Œ๋ฆฟ ๊ด€๋ฆฌ, ์ƒ์ผ ๋ฐ ๊ณ„์•ฝ ๊ธฐ๊ฐ„ ๋งŒ๋ฃŒ ์ „ ์•Œ๋ฆผ ๋ฌธ์ž ๋ฐœ์†ก ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ณ ๊ฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์†์‰ฝ๊ฒŒ ์ž๋™ํ™”ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒ ์™ธ๋ถ€ ๋งค๋ฌผ ๋ฐ์ดํ„ฐ ์กฐํšŒ

์™ธ๋ถ€ ๋ถ€๋™์‚ฐ ํ”Œ๋žซํผ(๋„ค์ด๋ฒ„, ์ง๋ฐฉ)์—์„œ ๋งค๋ฌผ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ, ์ค‘๊ฐœ์‚ฌ์˜ ์ •๋ณด ์ˆ˜์ง‘ ์—…๋ฌด๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.


โš™ ๊ธฐ์ˆ  ์Šคํƒ

Front-end

Back-end

Infra

Tools


๐Ÿ› ๏ธ ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜

drawio

๐Ÿ› ๏ธ CI / CD ํŒŒ์ดํ”„๋ผ์ธ

โš™ GithubAction + DockerHub CI/CD Process

1. GitHub Actions + DockerHub

apiserver์™€ crawlerserver ๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ์˜ ๋ฐฑ์—”๋“œ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”. ํ•ต์‹ฌ ๊ธฐ๋Šฅ:

1. ์ฝ”๋“œ ๋ณ€๊ฒฝ ๊ฐ์ง€: dev ๋˜๋Š” test ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œ๋˜๊ฑฐ๋‚˜ PR์ด ์ƒ์„ฑ๋˜๋ฉด CI/CD ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
2. ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ๋ฐ ๋นŒ๋“œ: ๊ฐ ๋ชจ๋“ˆ์˜ ์œ ๋‹› ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ฝ”๋“œ ์•ˆ์ •์„ฑ์„ ๊ฒ€์ฆํ•˜๊ณ , ๋…๋ฆฝ์ ์ธ JAR ํŒŒ์ผ๋กœ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
3. Docker ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ: ๋นŒ๋“œ๋œ JAR ํŒŒ์ผ์€ ์ „์šฉ Dockerfile์„ ํ†ตํ•ด Docker ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ, ์ด ์ด๋ฏธ์ง€๋“ค์€ Docker Hub์— ํ‘ธ์‹œ๋˜์–ด ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
    - dev ๋ธŒ๋žœ์น˜: apiserver:dev, crawlerserver:dev ํƒœ๊ทธ๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•˜๊ณ  ๊ฐœ๋ฐœ ์ „์šฉ EC2 ์ธ์Šคํ„ด์Šค์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. SPRING_PROFILES_ACTIVE=dev์™€ ๊ฐ™์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค.
    - test ๋ธŒ๋žœ์น˜: apiserver:test, crawlerserver:test ํƒœ๊ทธ๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•˜๊ณ  ํ…Œ์ŠคํŠธ ์ „์šฉ EC2 ์ธ์Šคํ„ด์Šค์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. SPRING_PROFILES_ACTIVE=test์™€ ๊ฐ™์€ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค.
4. ๋ถ„๊ธฐ๋ณ„ EC2 ๋ฐฐํฌ: ๊ฐ ๋ธŒ๋žœ์น˜(dev/test)์— ๋งž๋Š” EC2 ์ธ์Šคํ„ด์Šค์— SSH๋กœ ์ ‘์†ํ•˜์—ฌ, ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ ๋ฐ ์ œ๊ฑฐํ•˜๊ณ  ์ตœ์‹  Docker ์ด๋ฏธ์ง€๋ฅผ Pull ๋ฐ›์•„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
5. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ฃผ์ž…: GitHub Secrets์— ์ •์˜๋œ ๋ฏผ๊ฐํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์ด ์•ˆ์ „ํ•˜๊ฒŒ Docker ์ปจํ…Œ์ด๋„ˆ์— ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค.
2. Vercel์„ ํ™œ์šฉํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ

์ด ์ „๋žต์€ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๊ธฐ๋Šฅ:

์ž๋™ ๋ฐฐํฌ: Vercel์˜ ํ†ตํ•ฉ CI/CD ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ Git ์ €์žฅ์†Œ์— ํ‘ธ์‹œ๋˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ๋นŒ๋“œํ•˜์—ฌ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
Preview Deployments: PR ์ƒ์„ฑ ์‹œ ์ž๋™์œผ๋กœ Preview ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜์—ฌ, ์‹ค์ œ ๋ณ‘ํ•ฉ ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‰ฝ๊ฒŒ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธ€๋กœ๋ฒŒ CDN: Vercel์˜ ๊ธ€๋กœ๋ฒŒ CDN์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์ ‘๊ทผ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ฐ„ํŽธํ•œ ํ™˜๊ฒฝ ์„ค์ •: Vercel ๋Œ€์‹œ๋ณด๋“œ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ ๋„๋ฉ”์ธ ์„ค์ •์„ ์ง๊ด€์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. Redis, S3, RDS๋ฅผ ์šฉ๋„์— ๋งž๊ฒŒ ๋ถ„๋ฆฌํ•˜์—ฌ ํ™•์žฅ์„ฑ ๋ณด์žฅ

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

Elasticache๋ฅผ ์‚ฌ์šฉํ•œ Redis (์บ์‹ฑ/ํ† ํฐ ๊ด€๋ฆฌ): ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด์ธ Redis๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ์บ์‹ฑ, ์‚ฌ์šฉ์ž ํ† ํฐ ๊ด€๋ฆฌ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋“ฑ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‘๋‹ต ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

Amazon S3 (๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€): ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํด๋ผ์šฐ๋“œ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€์ธ S3๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€, ๋™์˜์ƒ, ๋ฌธ์„œ ๋“ฑ ์ •์  ํŒŒ์ผ ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„์™€ ๋ถ„๋ฆฌํ•˜์—ฌ ํŒŒ์ผ ์ €์žฅ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ํ™•์žฅ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

Amazon RDS (๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค): ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค์ธ RDS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๊ด€๋ จ๋œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. RDS๋Š” ์ž๋™ ๋ฐฑ์—…, ๋ณต์ œ, ํŒจ์น˜ ๋“ฑ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šด์˜ ๋ถ€๋‹ด์„ ์ค„์ž…๋‹ˆ๋‹ค.

๐Ÿ—‚๏ธ ๊ธฐ์ˆ  ๋ฌธ์„œ

๐Ÿ“„ API ๋ช…์„ธ์„œ

๐Ÿ“‹ ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ

๐Ÿ”ง ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

๐Ÿ“– ๋ฉ”๋‰ด์–ผ

๐Ÿ“Š ERD

๐Ÿ’โ€โ™‚๏ธ ํ”„๋กœ์ ํŠธ ํŒ€์›

์ด๋ฆ„ ์—ญํ•  ๋‹ด๋‹น ์—…๋ฌด
์ฑ„์ง€์› ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž (ํŒ€์žฅ) ๋ฌธ์ž ๋ฐœ์†ก / ๋ฌธ์ž ํ…œํ”Œ๋ฆฟ ๊ด€๋ฆฌ, ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์ผ์ • ๊ด€๋ฆฌ, ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ
์‹ ์ค‘์šฐ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž AWS(EC2,RDS,Redis), CICD, ๊ณต๊ฐœ๋งค๋ฌผ ํฌ๋กค๋ง ์„œ๋ฒ„, ์กฐํšŒ, ๋Œ€์‰ฌ๋ณด๋“œ ํ†ต๊ณ„, ๋ฆฌํ€ด๋ฒ ์ด์Šค, ๋ฒ•์ •๋™์ฝ”๋“œ ์กฐํšŒ, ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ฆฌํŽ™ํ† ๋ง
์‹ ์œค์ƒ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๊ณ ๊ฐ ๊ด€๋ฆฌ, ์„ค๋ฌธ ๊ด€๋ฆฌ, ์ƒ๋‹ด ๊ด€๋ฆฌ, ExcelImport
์กฐ์ˆ˜์—ฐ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ, ๊ณ„์•ฝ, ๋งค๋ฌผ, ๊ณ ๊ฐ ๋ผ๋ฒจ ๊ด€๋ฆฌ, ํ”„๋ก ํŠธ ์—”๋“œ ๊ฐœ๋ฐœ(๊ณ„์•ฝ, ๋งค๋ฌผ ํŽ˜์ด์ง€)

๐Ÿ“ ๊ด€๋ จ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •