Skip to content

πŸ“¦ 2024 μ†Œν”„νŠΈμ›¨μ–΄κ³΅ν•™ μΊ‘μŠ€ν†€ λ””μžμΈ, λ§›μžˆλŠ” 재고(Tasty-Inventory)νŒ€μ˜ λ°±μ—”λ“œ λ ˆν¬μ§€ν† λ¦¬μž…λ‹ˆλ‹€

License

Notifications You must be signed in to change notification settings

Tasty-Inventory/Tasty-Inventory_BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Tasty-Inventory: Back-End

1. κ°œμš”


1.1. μ†Œκ°œ

쉽고 κ°„νŽΈν•œ 재고 관리, λ§›μžˆλŠ” μž¬κ³ μ™€ ν•¨κ»˜ μ‹œμž‘ν•΄μš”! - λ°”λ‘œκ°€κΈ°

  • βœ… μ œμž‘ μ˜λ„: 맀일 μ—‘μ…€ νŒŒμΌμ— μ •λ¦¬ν–ˆλ˜ 재고λ₯Ό λ§›μžˆλŠ” μž¬κ³ μ—μ„œ κ°„νŽΈν•˜κ²Œ μž…λ ₯ν•˜κ³ , 남은 μˆ˜λŸ‰μ„ μ˜ˆμΈ‘ν•  수 μžˆμ–΄μš”.

1.2. 기술 μŠ€νƒ

Category Used
Java version Java 17
Spring version 3.2.4
Cloud Computing AWS EC2 (Ubuntu 22.04 LTS)
Database AWS RDS (Mariadb 10.6.18)
File Upload AWS S3
CI/CD Github Actions, S3, CodeDeploy, Nginx
Monitoring Sentry, Slack
API Docs Swagger, Notion

2. 싀행방법


2.1. Config

  • application.yml 파일 Tasty-Inventory_BE/src/main/resources 디렉토리에 μœ„μΉ˜


    alt text


  • build.gradleμ—μ„œ 둜컬 컴퓨터에 μ„€μΉ˜λœ λ°μ΄ν„°λ² μ΄μŠ€ μ’…λ₯˜ μΆ”κ°€


    alt text

  • application.yml νŒŒμΌμ—μ„œ DB μ„€μ • 정보 λ³€κ²½


    alt text


2.2. Project Build

 chmod a+x gradlew
./gradlew clean build -x test

2.3. Run jar

cd ./build/libs
java -jar Tasty-Inventory_BE-0.0.1-SNAPSHOT.jar &

3. 🀝 Code Convention


3.1 βœ“ File Naming

  • 파일 이름 및 클래슀, μΈν„°νŽ˜μ΄μŠ€ 이름: 파슀칼 μΌ€μ΄μŠ€(Pascal Case)
  • Entityμ—μ„œ μ‚¬μš©λ˜λŠ” 속성값듀은 ? 카멜 μΌ€μ΄μŠ€(camel Case)
  • λ‚΄λΆ€μ—μ„œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜ 및 기타 μ‚¬μš©: 카멜 μΌ€μ΄μŠ€(camelCase)

3.2 βœ“ μΈν„°νŽ˜μ΄μŠ€ 이름에 λͺ…사/ν˜•μš©μ‚¬ μ‚¬μš© [interface-noun-adj]

μΈν„°νŽ˜μ΄μŠ€(interface)의 이름은 λͺ…사/λͺ…μ‚¬μ ˆλ‘œ ν˜Ήμ€ ν˜•μš©μ‚¬/ν˜•μš©μ‚¬μ ˆλ‘œ μ§“λŠ”λ‹€.

3.3 βœ“ 클래슀 이름에 λͺ…사 μ‚¬μš© [class-noun]

클래슀 이름은 λͺ…μ‚¬λ‚˜ λͺ…μ‚¬μ ˆλ‘œ μ§“λŠ”λ‹€.

3.4 βœ“ λ©”μ„œλ“œ 이름은 동사/μ „μΉ˜μ‚¬λ‘œ μ‹œμž‘ [method-verb-preposition]

λ©”μ„œλ“œλͺ…은 기본적으둜 λ™μ‚¬λ‘œ μ‹œμž‘ν•œλ‹€.

λ‹€λ₯Έ νƒ€μž…μœΌλ‘œ μ „ν™˜ν•˜λŠ” λ©”μ„œλ“œλ‚˜ λΉŒλ” νŒ¨ν„΄μ„ κ΅¬ν˜„ν•œ 클래슀의 λ©”μ„œλ“œμ—μ„œλŠ” μ „μΉ˜μ‚¬λ₯Ό μ“Έ 수 μžˆλ‹€.

3.5 βœ“ μƒμˆ˜λŠ” λŒ€λ¬Έμžμ™€ μ–Έλ”μŠ€μ½”μ–΄λ‘œ ꡬ성[constant_uppercase]

"static final"둜 μ„ μ–Έλ˜μ–΄ μžˆλŠ” ν•„λ“œμΌ λ•Œ μƒμˆ˜λ‘œ κ°„μ£Όν•œλ‹€.

μƒμˆ˜ 이름은 λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•˜λ©°, λ³΅ν•©μ–΄λŠ” μ–Έλ”μŠ€μ½”μ–΄'_'λ₯Ό μ‚¬μš©ν•˜μ—¬ 단어λ₯Ό κ΅¬λΆ„ν•œλ‹€.

3.6 βœ“ λ³€μˆ˜μ— μ†Œλ¬Έμž μΉ΄λ©œν‘œκΈ°λ²• 적용 [var-lower-camelcase]

μƒμˆ˜κ°€ μ•„λ‹Œ 클래슀의 λ©€λ²„λ³€μˆ˜/μ§€μ—­λ³€μˆ˜/λ©”μ„œλ“œ νŒŒλΌλ―Έν„°μ—λŠ” μ†Œλ¬Έμž μΉ΄λ©œν‘œκΈ°λ²•(Lower camel case)을 μ‚¬μš©ν•œλ‹€.

3.7 βœ“ μž„μ‹œ λ³€μˆ˜ μ™Έμ—λŠ” 1 κΈ€μž 이름 μ‚¬μš© κΈˆμ§€ [avoid-1-char-var]

λ©”μ„œλ“œ λΈ”λŸ­ λ²”μœ„ μ΄μƒμ˜ 생λͺ… μ£ΌκΈ°λ₯Ό κ°€μ§€λŠ” λ³€μˆ˜μ—λŠ” 1κΈ€μžλ‘œ 된 이름을 쓰지 μ•ŠλŠ”λ‹€.

반볡문의 μΈλ±μŠ€λ‚˜ λžŒλ‹€ ν‘œν˜„μ‹μ˜ νŒŒλΌλ―Έν„° λ“± 짧은 λ²”μœ„μ˜ μž„μ‹œ λ³€μˆ˜μ—λŠ” κ΄€λ‘€μ μœΌλ‘œ 1κΈ€μž λ³€μˆ˜λͺ…을 μ‚¬μš©ν•  수 μžˆλ‹€.

4. 🀝 Git Convention


4.1 Issue

λͺ¨λ“  μž‘μ—…μ˜ λ‹¨μœ„λŠ” github에 μƒμ„±λœ Issueλ₯Ό κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€.

Issue의 λ³Όλ₯¨μ€ μ΅œμ†Œ ν•˜λ‚˜μ˜ κΈ°λŠ₯으둜 ν•©λ‹ˆλ‹€.

ν•˜λ‚˜μ˜ 이슈λ₯Ό λ§ˆλ¬΄λ¦¬ν•˜κΈ° μ „μ—λŠ” νŠΉλ³„ν•œ 상황이 μ•„λ‹Œ 이상 λ‹€λ₯Έ μž‘μ—…μ— λŒ€ν•œ 이슈λ₯Ό μƒμ„±ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

4.2 PR (Pull Request)

Issue ≀ PR

ν•˜λ‚˜μ˜ μ΄μŠˆμ— λŒ€ν•΄μ„œ λ°˜λ“œμ‹œ ν•˜λ‚˜μ˜ PR이 μ—΄λ €μ•Όν•˜λŠ” 건 μ•„λ‹™λ‹ˆλ‹€.

μ›ν™œν•œ μ½”λ“œλ¦¬λ·°μ™€ 리뷰에 λŒ€ν•œ λ‚΄μš©μ„ λ°˜μ˜ν•˜κΈ° μœ„ν•΄μ„œ PR은 3개의 commit을 λ„˜μ–΄κ°€μ§€ μ•Šμ•„μ•Όν•©λ‹ˆλ‹€.

ν•˜λ‚˜μ˜ PR에 3개 μ΄μƒμ˜ File ChangeλŠ” μ§€μ–‘ν•©λ‹ˆλ‹€.

5. Commit


컀밋 ꡬ뢄 μ„€λͺ…
Feature (Feature) κ°œμ„  λ˜λŠ” κΈ°λŠ₯ μΆ”κ°€
Bug (Bug Fix) 버그 μˆ˜μ •
Doc (Documentation) λ¬Έμ„œ μž‘μ—…
Test (Test) ν…ŒμŠ€νŠΈ μΆ”κ°€/μˆ˜μ •
Build (Build) λΉŒλ“œ ν”„λ‘œμ„ΈμŠ€ κ΄€λ ¨ μˆ˜μ •(yml)
Performance (Performance) 속도 κ°œμ„ 
Refactor (Cleanup) μ½”λ“œ 정리/λ¦¬νŒ©ν† λ§
  • μ΄μŠˆλ²ˆν˜Έμ™€ ν•¨κ»˜ 컀밋 λ‚΄μš©μ„ μ λŠ”λ‹€.
  • μ˜ˆμ‹œ : [#1] feataure : ~

About

πŸ“¦ 2024 μ†Œν”„νŠΈμ›¨μ–΄κ³΅ν•™ μΊ‘μŠ€ν†€ λ””μžμΈ, λ§›μžˆλŠ” 재고(Tasty-Inventory)νŒ€μ˜ λ°±μ—”λ“œ λ ˆν¬μ§€ν† λ¦¬μž…λ‹ˆλ‹€

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published