Skip to content

SSAFY-Sandbox/sandbox-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

71 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • SSAFY Sandbox๋Š” SSAFY 12๊ธฐ ์„œ์šธ 15๋ฐ˜์—์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ํฌ๋งํ•˜๋Š” ์นœ๊ตฌ๋“ค์ด ํ˜‘์—… ๊ฒฝํ—˜์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ, ๊ทธ๋ฆฌ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์Œ“์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ €ํฌ BEํŒ€์€ FEํŒ€์ด ๋ฐฐํฌ ํ•˜๊ธฐ ์ „, ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป Team-SandBox Server Developers

๐Ÿน ์˜ค์ˆ˜์˜ ๐Ÿฏ ์œค์ˆ˜๋นˆ ๐Ÿป ์ด์„ํ™˜ ๐Ÿฐ ์กฐ์˜ˆ์Šฌ
image image 857973AB-4D75-42D2-A2CA-AB679F5F092A image
wimmings king0104 im2sh yeseul106

๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ์—ญํ•  ๋ถ„๋‹ด

๊ธฐ๋Šฅ๋ช… ๋‹ด๋‹น์ž ์™„๋ฃŒ ์—ฌ๋ถ€
ํ”„๋กœ์ ํŠธ ์„ธํŒ… ์˜ˆ์Šฌ๐Ÿฐ ์™„๋ฃŒ
CI/CD ๊ตฌ์ถ• ์˜ˆ์Šฌ๐Ÿฐ ์™„๋ฃŒ
Oauth ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ์˜ˆ์Šฌ๐Ÿฐ ์™„๋ฃŒ
FCM ๊ตฌํ˜„ ์„ํ™˜๐Ÿป ์™„๋ฃŒ
์ด๋ฉ”์ผ ์ธ์ฆ ์„ํ™˜๐Ÿป ์™„๋ฃŒ
์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฏธ์ •
pagenation ๊ตฌํ˜„ ๋ฏธ์ •

๐Ÿ“‚ Project Foldering

com
 ใ„ด ssafy
     ใ„ด side
         ใ„ด api
         |   ใ„ด member
         |   |   ใ„ด controller
         |   |   ใ„ด service
         |   |   ใ„ด domain
         |   |   ใ„ด dto
         |   ใ„ด auth
         |   |   ใ„ด controller
         |   |   ใ„ด service
         |   |   ใ„ด domain
         |   |   ใ„ด dto
         |   ...
         ใ„ด common
         |   ใ„ด advice
         |   ใ„ด config
         |   |    ใ„ด jwt
         |   ใ„ด entity
         |   ใ„ด exception
         |   ใ„ด util
         ใ„ด external
         |   ใ„ด ...
         ใ„ด SandboxServerApplication


๐Ÿ“Œ Coding Convention

ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์„

  • backend์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ, ๋ชจ๋“ˆํ™”๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜์˜ ํŒŒ์ผ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ฃผ์„์œผ๋กœ ์ƒ์„ธ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ณดํ†ต controller์— ์ž‘์„ฑํ•˜๊ธฐ๋กœ ํ•ฉ๋‹ˆ๋‹ค

  • ํ•จ์ˆ˜์˜ ์ „์ฒด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…

  • ์˜ˆ์‹œ ์ฝ”๋“œ

    /**
     * @route GET /mission/all
     * @desc ์ง€๋‚œ ๋ฏธ์…˜ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ค๊ธฐ
     * */
     */
    const getCompletedMission = async (req: Request, res: Response) => {
      //์–ด์ฉŒ๊ตฌ ์ €์ฉŒ๊ตฌ
    };

๋ณ€์ˆ˜๋ช…

 ### ์ฝ๊ธฐ ์‰ฝ๊ณ  ์•Œ๊ธฐ ์‰ฌ์šดย **๋ณ€์ˆ˜๋ช…**์œผ๋กœ ๋งŒ๋“ค๊ธฐ

```tsx
// great - "name" implies strings
const subjectName = ['math', 'english', 'korea'];
const subject = [{name: 'math', difficulty: 'easyโ€™}]
```

- boolean ๊ฐ™์€ ๊ฒฝ์šฐ โ€œisโ€, โ€œhasโ€, โ€œcanโ€๊ณผ ๊ฐ™์€ ์ ‘๋‘์–ด์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.

```tsx
// good
const isOpen = true; const canWrite = true; const hasFruit = true;
```

- ์ˆซ์ž์ผ ๊ฒฝ์šฐ max, min, total๊ณผ๊ฐ™์€ ๋‹จ์–ด๋กœ ์„ค๋ช…ํ•œ๋‹ค.

```tsx
// good
let totalNum = 54;
```

- ํ•จ์ˆ˜์ผ ๊ฒฝ์šฐ ๋™์‚ฌ์™€ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ **actionResource**์˜ ํ˜•์‹์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

```tsx
// good
const getUser = (firstName, LastName) => firstName + LastName
```
<br>

๋ณ€์ˆ˜(ํ•จ์ˆ˜) ๋ช…์— ๋Œ€ํ•œ ์ด๋ฆ„

- ๋ณ€์ˆ˜, ํ•จ์ˆ˜ , ์ธ์Šคํ„ด์Šค - Camel Case
- ํ•จ์ˆ˜๋ช… ์ž‘์„ฑ ์‹œ ๋™์‚ฌ + ๋ช…์‚ฌ
- Class, Constructor - Pascal Case

```tsx
// good
var userId
function addUserInfo () {}
class UserInfo {}
```

ํŒŒ์ผ๋ช…์€ ์นด๋ฉœ์ผ€์ด์Šค

  - ํŒŒ์ผ๋ช… - Camel Case

  ### ์ƒ์ˆ˜๋Š” ๋ฌด์กฐ๊ฑด ๋Œ€๋ฌธ์ž

  - ๋งŒ์•ฝ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฉด ์ƒ์ˆ˜์ผ ๋•Œ๋งŒ _ (์–ธ๋”๋ฐ” ์‚ฌ์šฉ)

  ```tsx
  //bad
  const maxNum = 20;

  //good
  const MAX_NUM = 20;
  ```
Bracket

 ### ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์ด์ง€ ์•Š์€ ๋ธ”๋ก๋ฌธ์„ ๊ธˆ์ง€

  ๋ธ”๋ก๋ฌธ์„ ๋ฐ˜๋“œ์‹œ ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์„ ๊ฒƒ์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค

  ```tsx
  // good
  if (flag) {
    count++;
  }

  // bad
  if (flag) count++;
  ```

๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ์ŠคํŽ˜์ด์Šค 2๋ฒˆ์„ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์—๋Ÿฌ

```tsx
// good
if (a) {
    b=c;
    function foo(d) {
        e=f;
    }
}

// bad
if (a) {
  b=c;
  function foo(d) {
    e=f;
  }
}
```

๐Ÿ“ŒGit Convention

๐Ÿ”นCommit Convention

  • โœ…ย [CHORE] : ๋™์ž‘์— ์˜ํ–ฅ ์—†๋Š” ์ฝ”๋“œ or ๋ณ€๊ฒฝ ์—†๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ(์ฃผ์„ ์ถ”๊ฐ€ ๋“ฑ)
  • โœจย [FEAT] : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • โž•ย [ADD] : Feat ์ด์™ธ์˜ ๋ถ€์ˆ˜์ ์ธ ์ฝ”๋“œ ์ถ”๊ฐ€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€, ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ƒ์„ฑ
  • ๐Ÿ”จย [FIX] : ๋ฒ„๊ทธ, ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
  • โšฐ๏ธย [DEL] : ์“ธ๋ชจ์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ
  • ๐Ÿ“ย [DOCS] : README๋‚˜ WIKI ๋“ฑ์˜ ๋ฌธ์„œ ์ˆ˜์ •
  • โœ๏ธย [CORRECT] : ์ฃผ๋กœ ๋ฌธ๋ฒ•์˜ ์˜ค๋ฅ˜๋‚˜ ํƒ€์ž…์˜ ๋ณ€๊ฒฝ, ์ด๋ฆ„ ๋ณ€๊ฒฝ์‹œ
  • โช๏ธย [RENAME] : ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ์‹œ
  • โ™ป๏ธย [REFACTOR] : ์ „๋ฉด ์ˆ˜์ •
  • ๐Ÿ”€ย [MERGE]: ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ๋ณ‘ํ•ฉ

์ปค๋ฐ‹ ์˜ˆ์‹œ

ex ) git commit -m "#{์ด์Šˆ๋ฒˆํ˜ธ} [FEAT] ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ์™„๋ฃŒ"


๐Ÿ”นBranch Convention

  • [develop] : ์ตœ์ข… ๋ฐฐํฌ
  • [feat] : ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • [fix] : ์—๋Ÿฌ ์ˆ˜์ •, ๋ฒ„๊ทธ ์ˆ˜์ •
  • [docs] : README, ๋ฌธ์„œ
  • [refactor] : ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ์ฝ”๋“œ๋งŒ ์ˆ˜์ •ํ•  ๋•Œ)
  • [modify] : ์ฝ”๋“œ ์ˆ˜์ • (๊ธฐ๋Šฅ์˜ ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ)
  • [chore] : gradle ์„ธํŒ…, ์œ„์˜ ๊ฒƒ ์ด์™ธ์— ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ

๋ธŒ๋žœ์น˜ ๋ช… ์˜ˆ์‹œ

ex) feat/#{์ด์Šˆ๋ฒˆํ˜ธ}


๐Ÿ”นBranch Strategy

Git Flow

๊ธฐ๋ณธ์ ์œผ๋กœ Git Flow ์ „๋žต์„ ์ด์šฉํ•œ๋‹ค. Forkํ•œ ํ›„ ๋‚˜์˜ repository์—์„œ ์ž‘์—…ํ•˜๊ณ  ๊ตฌํ˜„ ํ›„ ์›๋ณธ repository์— pr์„ ๋‚ ๋ฆฐ๋‹ค. ์ž‘์—… ์‹œ์ž‘ ์‹œ ์„ ํ–‰๋˜์–ด์•ผ ํ•  ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. Issue๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
2. feature Branch๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
3. Add - Commit - Push - Pull Request ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.
4. Pull Request๊ฐ€ ์ž‘์„ฑ๋˜๋ฉด ์ž‘์„ฑ์ž ์ด์™ธ์˜ ๋‹ค๋ฅธ ํŒ€์›์ด Code Review๋ฅผ ํ•œ๋‹ค.
5. Code Review๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด Pull Request ์ž‘์„ฑ์ž๊ฐ€ develop Branch๋กœ merge ํ•œ๋‹ค.
6. merge๋œ ์ž‘์—…์ด ์žˆ์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ์ง„ํ–‰ ์ค‘์ด๋˜ ๊ฐœ๋ฐœ์ž๋Š” ๋ณธ์ธ์˜ ๋ธŒ๋žœ์น˜๋กœ merge๋œ ์ž‘์—…์„ Pull ๋ฐ›์•„์˜จ๋‹ค.
7. ์ข…๋ฃŒ๋œ Issue์™€ Pull Request์˜ Label๊ณผ Project๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ git flow ์ „๋žต์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • main, develop, feature 3๊ฐ€์ง€ branch ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  • main โ†’ develop โ†’ feature. feature ๋ธŒ๋žœ์น˜๋Š” feat/๊ธฐ๋Šฅ๋ช…์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์Šˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ธŒ๋žœ์น˜๋ช…์„ feature/[issue num]-[feature name]๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”นIssue Convention

  • [FEAT] : ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • [FIX] : ์—๋Ÿฌ ์ˆ˜์ •, ๋ฒ„๊ทธ ์ˆ˜์ •
  • [DOCS] : README, ๋ฌธ์„œ
  • [REFACTOR] : ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ์ฝ”๋“œ๋งŒ ์ˆ˜์ •ํ•  ๋•Œ)
  • [MODIFY] : ์ฝ”๋“œ ์ˆ˜์ • (๊ธฐ๋Šฅ์˜ ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ)
  • [CHORE] : gradle ์„ธํŒ…, ์œ„์˜ ๊ฒƒ ์ด์™ธ์— ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ

ex) [feat] user api ๊ตฌํ˜„

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages