Skip to content

SOPKATHON-iOS-TEAM4/SERVER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

50 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸงŠ term b/ur (ํ…€๋ธ”๋Ÿฌ)

๋‚ด ์† ์•ˆ์˜ ํ๋ ค์ง€๋Š” ๋‹จ์–ด์žฅ, 'term b/ur' ๋Š” ์ž์‹ ์ด ๋‹จ์–ด๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์•”๊ธฐํ–ˆ๋Š”์ง€ ๊ฐ๊ด€์ ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋Š” ๋ถˆํŽธํ•œ ๋ฌธ์ œ์ ์„ ํ๋ ค์ง์„ ํ†ตํ•ด ์‰ฝ๊ณ  ์ง๊ด€์ ์œผ๋กœ ์•”๊ธฐ ์ •๋„๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๋Š” ๋ชจ๋ฐ”์ผ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

image

๐ŸงŠ ๋ชฉ์  ๋ฐ ํ•„์š”์„ฑ

image image image image

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

image image

Back-end (Spring ๐ŸŒฑ)

์„œ๋ฒ„/๊น€์ฐฝ๊ท  ์„œ๋ฒ„/์ •์ •๊ต
๊น€์ฐฝ๊ท /ckkim817 ์ •์ •๊ต/Junggyo1020

๐Ÿ’ก Git Convention

Git Flow

  • main : ๋ฐฐํฌ ํ”„๋žœ์น˜
  • develop : ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜
  • type/#์ด์Šˆ๋ฒˆํ˜ธ : ์„ธ๋ถ€ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜
    • ์ƒ์„ฑํ•œ ์ด์Šˆ๋ฒˆํ˜ธ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    • ex) feat/#20
  • PR ๋จธ์ง€ ํ›„ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œํ•œ๋‹ค.

๐Ÿ“Œ Commit Convention

Commit ๋ฉ”์„ธ์ง€

[type/#์ด์Šˆ๋ฒˆํ˜ธ]: ์ž‘์—…๋‚ด์šฉ

ex) [feat/#20]: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ ์ถ”๊ฐ€

Branch ์ด๋ฆ„

type/#์ด์Šˆ๋ฒˆํ˜ธ

ex) feat/#20

Branch ์ข…๋ฅ˜

Type ์˜๋ฏธ
โœจย FEAT ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
๐Ÿ”จย FIX ๋ฒ„๊ทธ, ์˜ค๋ฅ˜ ์ˆ˜์ •
โœ…ย CHORE ๋™์ž‘์— ์˜ํ–ฅ ์—†๋Š” ์ฝ”๋“œ or ๋ณ€๊ฒฝ ์—†๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ(์ฃผ์„ ์ถ”๊ฐ€ ๋“ฑ) ex) .gitIgnore
๐Ÿ“ย DOCSย  README๋‚˜ WIKI ๋“ฑ์˜ ๋ฌธ์„œ ์ˆ˜์ •
โ™ป๏ธย REFACTOR ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
โœ๏ธย CORRECTย  ์ฃผ๋กœ ๋ฌธ๋ฒ•์˜ ์˜ค๋ฅ˜๋‚˜ ํƒ€์ž…์˜ ๋ณ€๊ฒฝ, ์ด๋ฆ„ ๋ณ€๊ฒฝ์‹œ
โšฐ๏ธย DELย  ์“ธ๋ชจ์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ
โช๏ธย RENAME ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ์‹œ
๐Ÿ”€ย MERGE ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ๋ณ‘ํ•ฉ
๐Ÿ’กTest ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
โœ’๏ธย Comment ํ•„์š”ํ•œ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
๐Ÿ“‚ย File ํŒŒ์ผ ๋˜๋Š” ํด๋”๋ช… ์ˆ˜์ •, ์ด๋™, ์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ
๐Ÿ”ฅย !HOTFIX ๊ธ‰ํ•˜๊ฒŒ ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๋ฅผ ๊ณ ์ณ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

๐Ÿ“Œ Code Convention

๋„ค์ด๋ฐ ๊ทœ์น™

  • lowerCamelCase ์‚ฌ์šฉ
    • ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, db์Šคํ‚ค๋งˆ์˜ ๊ฒฝ์šฐ UpperCamelCase
  • ํ•จ์ˆ˜๋ช… : ๋™์‚ฌ+๋ช…์‚ฌ
    • API์™€ ์ง๊ฒฐ๋˜๋Š” ํ•จ์ˆ˜๋Š” CRUD ๋ช…์นญ์„ ์•ž์— ๋‹ฌ๊ธฐ
      • ex. Create โ†’ create000 Read โ†’ get000 (getUserById, getUsers) Update โ†’ update000 Delete โ†’ delete000
  • ๋ณ€์ˆ˜๋ช… : ๋ช…์‚ฌ+๋ช…์‚ฌ or ํ˜•์šฉ์‚ฌ+๋ช…์‚ฌ
  • ๋ช…์‚ฌ๋Š” ๋‹จ์ˆ˜๋กœ ์“ฐ์ง€ ์•Š๋˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์–ด ๊ผญ ์ ์–ด์ฃผ๊ธฐ
    • ex. ๋ณต์ˆ˜ : getUsers() / ๋‹จ์ˆ˜ : getUser()

๊ทธ ์™ธ ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ์œ ์˜ ์‚ฌํ•ญ

  • Exception

    • ์„œ๋น„์Šค ๋กœ์ง์— ๊ด€๋ จ๋œ ์˜ˆ์™ธ๋Š” ์„œ๋น„์Šค ๋‹จ์—์„œ ๋˜์ง€๊ธฐ
    • validation ๊ด€๋ จ ์˜ˆ์™ธ๋Š” ์ปจํŠธ๋กค๋Ÿฌ ๋‹จ์—์„œ ๋˜์ง€๊ธฐ
  • Type Assertion

    • type ์ง€์ • ํ•„์ˆ˜
      • ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋ชจ๋‘
    • ์„œ๋น„์Šค ๋‹จ์—์„œ ์Šคํ‚ค๋งˆ์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜ ํƒ€์ž… ๋‹จ์–ธ์€ ๊ฒฝ์šฐ์˜ ๋”ฐ๋ผ ๋‹จ์–ธ์„ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์ฃผ์„ ์ž‘์„ฑ ์‹œ ๋„์–ด์“ฐ๊ธฐ ๋„ฃ๊ธฐ

    // ์ด๋ ‡๊ฒŒ
    
    /**
     * ์—ฌ๊ธฐ์— ์ด๋ ‡๊ฒŒ ํ•ฉ์‹œ๋‹ค
     */

๋“ค์—ฌ์“ฐ๊ธฐ ๋ฐ ๋„์–ด์“ฐ๊ธฐ

  • ๋“ค์—ฌ์“ฐ๊ธฐ์—๋Š” ํƒญ(tab) ๋Œ€์‹  4๊ฐœ์˜ space๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค ๋‚ด ๋ณ€์ˆ˜๋Š” ํ•œ ์ค„ ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ค„๋ฐ”๊ฟˆ

  • ํ•จ์ˆ˜ ์ •์˜๊ฐ€ **๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ 3๊ฐœ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ**์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ค„๋ฐ”๊ฟˆํ•ฉ๋‹ˆ๋‹ค.

    public static UserResponseDto of(Long id, String nickName, Rank userRank, int point, 
    		                 int coupon, long interest, int waiting, int finish,
    		                 int ready, int delivering, int delivered,
    ){
        ...
    }

Code Review

  • ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋น„์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ Pn ๋ฃฐ

    โ€ข P1: ๊ผญ ๋ฐ˜์˜ํ•ด์ฃผ์„ธ์š” (Request changes)

    โ€ข P2: ์ ๊ทน์ ์œผ๋กœ ๊ณ ๋ คํ•ด์ฃผ์„ธ์š” (Request changes)

    โ€ข P3: ์›ฌ๋งŒํ•˜๋ฉด ๋ฐ˜์˜ํ•ด ์ฃผ์„ธ์š” (Comment)

    โ€ข P4: ๋ฐ˜์˜ํ•ด๋„ ์ข‹๊ณ  ๋„˜์–ด๊ฐ€๋„ ์ข‹์Šต๋‹ˆ๋‹ค (Approve)

    โ€ข P5: ๊ทธ๋ƒฅ ์‚ฌ์†Œํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค (Approve)


๐Ÿ’ก API ๋ช…์„ธ์„œ

https://rowan-octopus-031.notion.site/NOW-Sopkathon-IOS-4-c9f05ece2cd44427b696ebcd25037ec0?pvs=4


๐Ÿ“‚ Structure

โ”œโ”€โ”€ build.gradle
โ””โ”€โ”€ ๐Ÿ“‚ src/main/java/org/sopkathon
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ config // Config ๊ด€๋ จ ํŒŒ์ผ ๊ตฌํ˜„
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ controller // ์ปจํŠธ๋กค๋Ÿฌ
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ domain // ๋„๋ฉ”์ธ
 ย ย      โ”‚ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ย common // ๊ณตํ†ต ๋„๋ฉ”์ธ ๊ด€๋ จ ํŒŒ์ผ ex) BaseEntity
 ย ย      โ”‚ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ย enums // ๋„๋ฉ”์ธ ๊ด€๋ จ enum ํŒŒ์ผ
 ย ย      โ”‚ย ย      โ””โ”€โ”€ ๐Ÿ“‚ย mapping // ๋„๋ฉ”์ธ ๊ด€๋ จ ๋งคํ•‘ ํ…Œ์ด๋ธ”
 ย ย      โ”‚ย ย 
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ dto
 ย ย      โ”‚ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ย request // requestDto ๊ตฌํ˜„
 ย ย      โ”‚ย ย      โ””โ”€โ”€ ๐Ÿ“‚ย response // responseDto ๊ตฌํ˜„
 ย ย      โ”‚
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ exception
 ย ย      โ”‚ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ย dto // ex) ErrorResponse, SuccessResponse
 ย ย      โ”‚ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ย enums // ex) ErrorMessage, SuccessMessage
 ย ย      โ”‚ย ย      โ”œโ”€โ”€ CustomException.java
 ย ย      โ”‚ย ย      โ””โ”€โ”€ GlobalExceptionHandler.java
 ย ย      โ”‚ย 
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ repository // ๋ ˆํฌ์ง€ํ† ๋ฆฌ
 ย ย      โ”‚ย ย 
 ย ย      โ”œโ”€โ”€ ๐Ÿ“‚ service // ์„œ๋น„์Šค ๋กœ์ง
 ย ย      โ”‚
 ย ย      โ””โ”€โ”€ SopkathonApplication.java

๐Ÿ“’ ERD

image

๐Ÿ“ท Photo

์†์ปคํ†ค ์‚ฌ์ง„

์„œ๋ฒ„ ์‚ฌ์ง„ ํŒ€ ์‚ฌ์ง„

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages