Skip to content
/ backend Public

๐Ÿ  ๋นˆ์ง‘ ๊ฑฐ๋ž˜ ์ค‘๊ฐœ ํ”Œ๋žซํผ, Du-aily ๐Ÿ 

Notifications You must be signed in to change notification settings

Duaily/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

Duaily - ๋นˆ์ง‘ ๊ฑฐ๋ž˜ ์ค‘๊ฐœ ํ”Œ๋žซํผ

image

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

๋“€์–ผ๋ฆฌ๋Š” ํฉ์–ด์ ธ ์žˆ๋˜ ๋“€์–ผ ๋ผ์ดํ”„ ์ •๋ณด๋ฅผ ์ œ๊ณตํ• ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋นˆ์ง‘ ๊ฑฐ๋ž˜๋ฅผ ํ†ตํ•ด ๋“€์–ผ ๋ผ์ดํ”„ ์‹คํ˜„๊นŒ์ง€ ๋„์šฐ๋ฉฐ ๋นˆ์ง‘ ๋ฌธ์ œ๊นŒ์ง€๋„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋นˆ ์ง‘ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ์กฐํšŒ
  • ๋นˆ ์ง‘ ๊ฒŒ์‹œ๊ธ€์„ ํ†ตํ•œ ๊ฑฐ๋ž˜
  • ๋“€์–ผ ๋ผ์ดํ”„์— ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋“ค๊ฐ„์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ

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

Springboot(Java)๋ฅผ ์ด์šฉํ•œ API ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๊ณ , JPA(ORM)๊ณผ MySQL์„ ์ด์šฉํ•œ CRUD ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
AWS EC2๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•˜์˜€๊ณ , AWS RDS๋ฅผ ์ด์šฉํ•ด DB ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.
AWS S3๋ฅผ ์ด์šฉํ•ด ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Redis๋ฅผ ์ด์šฉํ•ด ์ธ์ฆ์„ ์œ„ํ•œ ํ† ํฐ ์ •๋ณด์™€ ์ธ์ฆ์ฝ”๋“œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Prometheus๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , Grafana๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Docker๋ฅผ ์ด์šฉํ•ด EC2 ์„œ๋ฒ„ ๋‚ด์—์„œ API ์„œ๋ฒ„, Redis, Prometheus, Grafana๋ฅผ ์ปจํ…Œ์ด๋„ˆํ™”ํ•˜์—ฌ ๊ตฌ์ถ•ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ˜‘์—… ๋ฐ ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด github์„ ์ด์šฉํ•˜์˜€์œผ๋ฉฐ, API ๋ฌธ์„œํ™” ๋„๊ตฌ๋กœ Spring Rest Docs๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ž๋™ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด github actions๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ“„ ๊ฐœ๋ฐœ ๋‚ด์šฉ

  • JWT ํ† ํฐ + Spring Security ๋ฅผ ์ด์šฉํ•œ ์†Œ์…œ ๋กœ๊ทธ์ธ ( kakao )
  • ๋นˆ ์ง‘ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ| ์ƒ์„ธ์กฐํšŒ | ๋ชฉ๋ก์กฐํšŒ
  • ํ›„๊ธฐ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ| ์ƒ์„ธ์กฐํšŒ| ๋ชฉ๋ก์กฐํšŒ
  • ์ง€์—ญ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ์‚ฌ์šฉ์ž ์ •๋ณด ์กฐํšŒ
  • ์ „ํ™”๋ฒˆํ˜ธ ์ธ์ฆ
  • ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ| ์‚ญ์ œ
  • ๊ฑฐ๋ž˜ ์ƒ์„ฑ| ๊ฑฐ๋ž˜ ์™„๋ฃŒ

๐Ÿ“ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

image

์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋Š” ๋“€์–ผ๋ฆฌ ์›น ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์•„ํ‚คํ…์ฒ˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ๋˜๋Š” ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ๋งŒ์„ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” HTTPS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ, ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋ฒ„์…€์„ ํ†ตํ•ด ๋ฐฐํฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฒ„์…€์€ REST API ์„œ๋ฒ„์ธ Spring APP๊ณผ ํ†ต์‹ ์„ ํ•ฉ๋‹ˆ๋‹ค.
API ์„œ๋ฒ„๋ฅผ ๋น„๋กฏํ•œ ์บ์‹ฑ์šฉ ์„œ๋ฒ„์ธ Redis, ๋ฐ์ดํ„ฐ ๋กœ๊ทธ ์ˆ˜์ง‘์„ ์œ„ํ•œ Prometheus, ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ Grafana ๊ฐ€ Docker ์ปจํ…Œ์ด๋„ˆ๋กœ EC2 ์—์„œ ๊ตฌ๋™ ์ค‘์ž…๋‹ˆ๋‹ค.
DB ์„œ๋ฒ„๋Š” AWS์˜ RDS๋ฅผ ํ†ตํ•ด ๊ตฌ์ถ•ํ•˜์˜€๊ณ , ์™ธ์žฅ ์Šคํ† ๋ฆฌ์ง€๋กœ S3 ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ“ ERD

แ„ƒแ…ฒแ„‹แ…ฅแ†ฏแ„…แ…ต  ERD_v1

๐Ÿ“ CI/CD Workflow

image

  1. ๋กœ์ปฌ feature ๋ธŒ๋žœ์น˜ ( Dual-# )์—์„œ origin์˜ feature๋กœ push
  2. origin์˜ feature ๋ธŒ๋žœ์น˜์—์„œ origin์˜ develop ๋ธŒ๋žœ์น˜๋กœ push
  3. github actions CI/CD ์‹คํ–‰
    A. Java 11 ๋ฒ„์ „ ์„ค์น˜
    B. Gradle ์บ์‹ฑ
    C. Gradle ๊ถŒํ•œ ๋ถ€์—ฌ
    D. DB, Redis, aws ๋“ฑ ์ •๋ณด๋ฅผ ๋‹ด์€ application-secret.yml ํŒŒ์ผ ๊ฐ’ ์„ธํŒ…
    E. jar ํŒŒ์ผ ์ƒ์„ฑ
    F. Dockerfile ๋นŒ๋“œ ๋ฐ Docker hub ๋กœ push
    G. AWS EC2์— deploy
    ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฐฐํฌ ์‹œ๊ฐ„ ๊ธฐ์ค€, 1๋ถ„ 19์ดˆ ์†Œ์š”.

๐Ÿ“ Runtime View

image

์‹คํ–‰์‹œ์ ์— ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ์šฉ์ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ํ˜๋Ÿฌ๊ฐ€๋Š” ํ๋ฆ„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ Pacakge View

image

Backend ๋‚ด ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Security config, Controller, Service, Repository, Domain ๊ตฌ์„ฑ์„ ๊ฐ–๊ณ  ๋ถ€๊ฐ€์ ์ธ ์š”์†Œ๋“ค์€ ๋”ฐ๋กœ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๐Ÿ“ Infra Architecture ( AS-IS )

image

ํ˜„์žฌ ๋“€์–ผ๋ฆฌ ์‹œ์Šคํ…œ์˜ ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์•„ํ‚คํ…์ฒ˜๋Š” ํ”„๋ฆฌํ‹ฐ์–ด ๊ณ„์ •์œผ๋กœ ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋งŒ์„ ๊ฐ€์ง€๊ณ  ๊ตฌ์ถ•ํ–ˆ๋‹ค๋Š” ์ ์„ ๋ฏธ๋ฆฌ ์–‘ํ•ด๋ฐ”๋ž๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” Route 53 ( DNS )๋ฅผ ํ†ตํ•ด "duaily.net"์œผ๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋„๋ฉ”์ธ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด ALB ( Application Load Balancing )์ด HTTPS๋กœ forwarding ํ•ฉ๋‹ˆ๋‹ค.
Public ์„œ๋ธŒ๋„ท์— ์กด์žฌํ•˜๋Š” WAS ์„œ๋ฒ„๋กœ ์š”์ฒญ์ด ๋“ค์–ด๊ฐ€๋ฉด, ์„œ๋ฒ„ ๋‚ด์˜ Spring boot ( 8080 ) ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์•„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์„œ๋ฒ„๋Š” EC2 ๋‚ด๋ถ€์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ๋กœ Redis์™€ ํ†ต์‹ ํ•˜๋ฉฐ, RDS์™€๋Š” ๋ณ„๋„์˜ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ํ˜•์„ฑํ•˜์—ฌ ํ†ต์‹ ํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

S3 ์˜ ๊ฒฝ์šฐ, ์ด๋ฏธ์ง€ ๊ฐ์ฒด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์šฉ๋„๋กœ ๊ตฌ์ถ•ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋กœ๊น… ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ๋‹ด์„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๐Ÿ“ Infra Architecture ( TO-BE )

image

ํ•ด๋‹น ์•„ํ‚คํ…์ฒ˜๋Š” ์•ž์œผ๋กœ ํ™•์žฅ์‹œ์ผœ ๋‚˜๊ฐˆ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค.
WEB/WAS/DB 3 Tier ํ˜•ํƒœ๋กœ ๊ตฌ์ถ•ํ•˜์—ฌ ๊ฐ ๊ณ„์ธต์˜ ๋…๋ฆฝ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ๋ณด์•ˆ์„ฑ์„ ๊ณ ๋ คํ•ด WAS, DB๋Š” private ์„œ๋ธŒ๋„ท์œผ๋กœ ๊ตฌ์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ”„๋ฆฌํ‹ฐ์–ด ๊ณ„์ •์ธ ์ ์„ ๊ฐ์•ˆํ•˜์—ฌ Auto-scaling ์˜ต์…˜ ๋Œ€์‹  EC2 ์ธ์Šคํ„ด์Šค๋ฅผ 1๋Œ€ ๋” ๋‘์–ด WAS์— ๋Œ€ํ•ด์„œ ์ด์ค‘ํ™”๋ฅผ ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. RDS๋Š” ๊ทธ๋Œ€๋กœ MySQL ์ธ์Šคํ„ด์Šค๋ฅผ 2๋Œ€์˜ WAS๊ฐ€ ๊ฐ™์ด ๋งˆ์ฃผ๋ณด๋Š” ์‹์œผ๋กœ ๊ตฌ์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

AS-IS์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ์ถ•ํ–ˆ๋˜ Redis๋ฅผ ๋ณ„๋„์˜ Elastic Cache for Redis ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ( ํ•ด๋‹น ์„œ๋น„์Šค๋Š” ํ”„๋ฆฌํ‹ฐ์–ด ๊ธฐ์ค€ ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„์ž…ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜์˜€์Šต๋‹ˆ๋‹ค. )

์ •๋ฆฌํ•˜๋ฉด, EC2 ์ธ์Šคํ„ด์Šค๋Š” ์ด 3๊ฐœ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, RDS๋Š” ๊ธฐ์กด ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋˜ Redis๋งŒ ๋ณ„๋„์˜ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
WEB ์„œ๋ฒ„์— ์˜ฌ๋ผ๊ฐ€๋Š” ์—”์ง„์œผ๋กœ๋Š” Ngnix๋ฅผ ์„ ํƒํ•  ์˜ˆ์ •์ด๋ฉฐ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ, ๊ฒฝ๋Ÿ‰ํ™” ๋“ฑ์˜ ์ด์œ ๋กœ ์„ ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ“ˆ Server Metric Monitoring

image

ํ•ด๋‹น ๊ทธ๋ฆผ์€ 1.0.0 release ์ „ QA ๋‹จ๊ณ„์˜ Grafana ๋Œ€์‹œ๋ณด๋“œ์ž…๋‹ˆ๋‹ค. Prometheus์™€ Grafana JVM ( Micrometer )๋ฅผ ์ด์šฉํ•ด ์„ฑ๋Šฅ ์ง€ํ‘œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„๋Œ€, ๋ฐœ์ƒ ๋กœ๊ทธ, ์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ ๋“ฑ์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Š Data Logging & Visualization

image

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

๐Ÿ” ๋กœ์ปฌ ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ ๋ฐ ํ˜‘์—… ๋ฐฉ์‹

๋กœ์ปฌ ๊ฐœ๋ฐœ ์‹œ, WiKi ํŽ˜์ด์ง€ ๋งํฌ์— ๊ฐ€์ด๋“œ๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ ํ˜น์€ ํ™˜๊ฒฝ ์„ธํŒ… ์ค‘์— ๋ฐœ์ƒํ•œ ์ด์Šˆ ๋‚ด์šฉ ๋ฐ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๊ฐ๊ฐ์˜ issue์— comment๋กœ ๊ธฐ๋กํ•˜๋ฉฐ ํŒ€์›๋“ค๊ฐ„์˜ ์ •๋ณด ๊ณต์œ ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Commit Convention

Structure

// ์˜ˆ์‹œ
feat: Create get all region posts API

Type

  • feat: ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‹œ
  • fix: ๋ฒ„๊ทธ ์ˆ˜์ • ์‹œ
  • refactor: ๋ฆฌํŽ™ํ† ๋ง ์‹œ
  • docs: API ๋ฌธ์„œ ์ž‘์—… ์‹œ
  • test: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ
  • chore: ํ™˜๊ฒฝ ์„ธํŒ… ์ž‘์—… ์‹œ

How to use

  • ํƒ€์ž…์˜ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
  • ๋ฉ”์„ธ์ง€ ๋‚ด์šฉ์€ 50์ž ์ด๋‚ด๋กœ ์ž‘์„ฑํ•˜๊ธฐ
  • ๋ฌธ์žฅ์„ ๋™์‚ฌ ์›ํ˜•์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น๋ฌธ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๊ธฐ

About

๐Ÿ  ๋นˆ์ง‘ ๊ฑฐ๋ž˜ ์ค‘๊ฐœ ํ”Œ๋žซํผ, Du-aily ๐Ÿ 

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •