Druwa developement Guide
๋ณธ ๊ฐ์ด๋๋ MacOS ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค. Windows ๋ ๋น์ทํ ๊ฒ์ด๋ผ ์์ํฉ๋๋ค.
- Editor: Visual Studio Code (https://code.visualstudio.com/) ํ์ฌ๊น์ง
TypeScript์ ๋ํ ์ง์์ด ๊ฐ์ฅ ์ข์ต๋๋ค. - MongoDB GUI - Robo 3T (https://robomongo.org/download)
- Git Manager - SourceTree (https://www.sourcetreeapp.com/)
- API Tester - Postman (https://www.getpostman.com/)
Visual Studio Code ๊ฐ๋ฐํ๊ฒฝ Setting ๊ฐ์ด๋์ ๋๋ค.
VSCode ์์ ์ ์ฉํ ํ๋ฌ๊ทธ์ธ๋ค์ ์ค์นํด์ค๋๋ค.
- Prettier (Requirement) - ์ฝ๋๋ฅผ Lint ์ ๋ง์ถฐ์ ์์๊ฒ ์ ๋ํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ
- ESLint (Requirement) - JavaScript Lint ๊ฒ์ฌํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ
- TSLint (Requirement) - TypeScript Lint ๊ฒ์ฌํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ
- Path Intellisense (Optional)
- TypeScript Importer (Optional)
Mac OS ๋ฅผ ๊ธฐ์ค์ผ๋ก Cmd + ,๋ฅผ ๋๋ฌ์ ํ๊ฒฝ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ด ํด์ค๋๋ค.
{
"workbench.colorTheme": "Atom One Dark",
"atomKeymap.promptV3Features": true,
"editor.multiCursorModifier": "ctrlCmd",
"editor.tabSize": 2,
"prettier.eslintIntegration": true,
"eslint.autoFixOnSave": true,
"tslint.autoFixOnSave": true,
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"[sql]": {
"editor.formatOnSave": false
},
"workbench.startupEditor": "newUntitledFile",
"workbench.editor.enablePreviewFromQuickOpen": false,
"workbench.editor.enablePreview": false,
"editor.fontSize": 14,
"window.zoomLevel": 0,
"terminal.integrated.rendererType": "dom",
"typescript.updateImportsOnFileMove.enabled": "never"
}Git Version Manager ๋ SourceTree๋ฅผ ์ฌ์ฉํฉ๋๋ค. GUI ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ , ๋ธ๋์น ํ์ธ์ด ์ฉ์ดํ๋ฉฐ, ๋ถํ Commit ์ด ๊ฐํธํฉ๋๋ค.
- Download - https://www.sourcetreeapp.com/
๊ฐ๋ฐ์์๊ฒ ์์ด์ Commit Message ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ ์์ ์ ๋๋ค. Message ๋ง ๋ณด๊ณ , ์ด Commit ์ด ์ด๋ ํ ์์ ์ ๋ํ Commit ์ธ์ง ํ ๋ฒ์ ์ ์ ์๋๋ก ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฌธ์ผ๋ก ์์ฑํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
Commit Message ๊ธฐ๋ณธ ๋ฃฐ
์์
ํ ๋ฉ์ธ ํ์ผ: ์์
๋ด์ฉ
See: Github issue #GITHUB_ISSUE_NUMBER (ํด๋นํ๋ Issue๊ฐ ์์ ๊ฒฝ์ฐ Skip)
Commit Message ์์
GithubController: Create new API feature to create new room
See: Github issue #11
๊ฐ๋ฐ์ ์์ํ๊ธฐ์ ์์ ์ ๋ฐ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ๋ํด์ ์ค๋ช ํฉ๋๋ค.
- Kanban Board - Zenhub (https://chrome.google.com/webstore/detail/zenhub-for-github/ogcgkffhplmphkaahpmffcafajaocjbd)
์นธ๋ฐ๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ์ํํธ์จ์ด ๊ฐ๋ฐ ์ํฉ์ ํ ๋์ ํ์ธํ ์ ์๋๋ก ํฉ๋๋ค.
-
์ด์ ์์ฑํ๊ธฐ ์์ ์ ์์ํ๊ธฐ์ ์ ์์์ Github ์ด๋, Zenhub ๋ฅผ ํตํด Issue ๋ฅผ ์์ฑํฉ๋๋ค. Issue ์๋ ์์ผ๋ก ํด์ผํ ์์ ๋ค์ ๊ฐ๋จํ๊ฒ ์ ์ด ๋์ต๋๋ค.
-
์์ Assign ์ด๋ ํ Issue ๊ฐ ์์ ์๊ฒ Assign ๋๋ฉด, ์์ ์ ์์ํ ๋ Kanban Board ์์
In Progress๋ก Issue ๋ฅผ ์ฎ๊น๋๋ค. -
Branch ๋ถ๊ธฐ
In Progress๋ก Issue ๋ก ์ฎ๊ธด ํ, ์์ ์ ๊ฐ๋ฐ ๊ณผ์ ์ดmasterBranch ์ ์ํฅ์ ๋ฐ์ง ์๋๋กDR-WEB#์ด์๋ฒํธorDR-BACK#์ด์๋ฒํธ๋ก Branch ๋ฅผ ๋ถ๊ธฐํ ํ ์์ ํฉ๋๋ค. -
Pull Request (PR) ํด๋น Issue ์ ๋ํ ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉด PR ์ ์์ฑํฉ๋๋ค. PR ์๋ ๋ค๋ฅธ Reiewer ๋ค์ด ์ ๋ฐ์ ์ธ ์์ ๋ด์ฉ์ ์๊ธฐ ์ฝ๋๋ก ๊ฐ๋ฐ ๋ด์ฉ์ ์์ฝํ์ฌ ์์ฑํ๊ณ , ํด๋น Issue ๋ฒํธ๋ฅผ Mention ํด์ค๋๋ค.
PR ์์ฑ ์์
Related with #์ด์๋ฒํธ
* ์์
๋ด์ฉ1
* ์์
๋ด์ฉ2
* ์์
๋ด์ฉ3
์ด๋ ๊ฒ PR ์ ์์ฑํ ํ Reviwer ์ ๋ค๋ฅธ ํ์๋ค์ ์ถ๊ฐํฉ๋๋ค.
ํ์๋ค์ Review Request ๋ฅผ ๋ฐ์ผ๋ฉด ์ต๋ํ ๋น ๋ฅธ ์์ผ ๋ด์ Review ๋ฅผ ํด์ฃผ๊ณ Approveํน์ Deny๋ฅผ ํด์ค๋๋ค.
์ต์ ํ ๋ช
์ด์ Approve๋ฅผ ๋ฐ์๋ค๋ฉด, ๊ทธ ๋ master branch ์ Merge ํฉ๋๋ค.
Merge ๊ฐ Conflict ๋ ๊ฒฝ์ฐ์๋
origin/masterbranch ๋ฅผ ๊ธฐ์ค์ผ๋กrebase๋ฅผ ํ ๋ค์ ๋ค์ PR ์ ์์ฒญํฉ๋๋ค.
- Close Issue
์ฑ๊ณต์ ์ผ๋ก
Merge๊ฐ ๋์๋ค๋ฉด, ๊ด๋ จ๋ Issue ๋ฅผ Close ํ๊ณ ๋ค์ Issue ๋ฅผ Assign ๋ฐ์ ๋ค์ ๊ฐ๋ฐ์ ์์ํฉ๋๋ค.