๐Front-End๐ :
Lanuage && Framework
ย
Communication Method
ย
State Management
ย
Build Tool
ย
๐Back-End๐ :
Lanuage && Framework
ย
Infra
ย
Monitoring
ย
DB
ย
API Documentation
ย
ํ์ฐ์ฐ | ๋ฐฑ์ฃผ์ฐ | ์ด์น๋ ฌ | ์ตํธ์ฐ |
---|---|---|---|
@chrisheo | @juurom | @BackEndStory | @hoyyChoi |
ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ
DB ์ค๊ณ API ๊ตฌํ ํ ์คํธ ์ฝ๋ ์์ฑ |
ํ๋ก ํธ ํ๋ฉด ๊ตฌํ ์๋ฒ์ api ํต์ ์ฐ๊ฒฐ ๋ฐ์ํ css ์ ์ฉ |
AWS ์ธํ
DB ์ค๊ณ API ๊ตฌํ ํ ์คํธ ์ฝ๋ ์์ฑ |
ํ๋ก ํธ ํ๋ฉด ๊ตฌํ ์๋ฒ์ api ํต์ ์ฐ๊ฒฐ ๋ฐ์ํ css ์ ์ฉ |
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ
- ์ปดํฌ๋ํธ ๋จ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ฑ์ด ๋๊ณ ์ ์ง๋ณด์์ ์ฉ์ดํฉ๋๋ค.
- Virtual DOM
- Virtual DOM์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์ค๊ณ ์์ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
- ์ง์๊ณต์
- ๊ฐ๋ฐ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ๊ฐ ํ์ฑํ๋์ด ์์ด ๋ฌธ์ ์ํฉ์ ๋์ํ๊ธฐ ์ฝ์ต๋๋ค.
- ์๋ฒ ์์ ์๋
- ๊ฐ๋ฐํ ๋ ๋ฒ๋ค๋ง์ ํ์ง ์๊ณ ESM ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ ์๋ฒ ๊ตฌ๋ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ ๋๋ค.
- ์ ๋ฐ์ดํธ ์๋
- HMR์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ํ์ง ์๊ณ ๋ ๋ณ๊ฒฝ๋ ์ปจํ ์ธ ๋ง์ ๊ฐฑ์ ํ ์ ์์ต๋๋ค.
- Promise๊ธฐ๋ฐ
- return์ promise ๊ฐ์ฒด๋ก ํด์ฃผ๊ธฐ ๋๋ฌธ์ response ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ฝ์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ํธํ์ฑ
- ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ต์ ํ๋ก ๋ธ๋ผ์ฐ์ (ํนํ, ๊ตฌํ ๋ธ๋ผ์ฐ์ )ํธํ์ฑ์ด ์ข์ต๋๋ค.
- ๋จ์ํจ
- ๋ค๋ฅธ ์ ์ญ์ํ๊ด๋ฆฌ(ex. Redux)์ ๋นํด ์ฌ์ฉํ๊ธฐ ๊ฐํธํ๊ณ , ์ด๋ฅผ ํ์ฉํด ์ฝ๋์ ๋ณต์ก๋๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
- ๋น๋๊ธฐ ์ฒ๋ฆฌ
- ์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด Recoil ์์ฒด๋ง์ผ๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํด๊ฒฐ ํ ์ ์์ต๋๋ค.
- Single-Thread์ non-blocking I/O ์ด๋ฒคํธ ๊ธฐ๋ฐ
- Node.js๋ ๋จ์ผ ์ค๋ ๋(Single-Thread)์ ๋ ผ ๋ธ๋กํน(Non-blocking I/O) ์ด๋ฒคํธ ๊ธฐ ๋ฐ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋์ด ๋์ ์ฒ๋ฆฌ ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- npm(node package manager)์ ํตํ ๋ค์ํ ๋ชจ๋(ํจํค์ง) ์ ๊ณต
- ๋ด์ฅ HTTP ์๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ๊ณ ์์ด ์น ์๋ฒ์์ ์ํ์น ๋ฑ์ ๋ณ๋์ ์ํ ํธ์จ์ด ์์ด ๋์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฉฐ ์ด๋ฅผ ํตํด ์น ์๋ฒ์ ๋์์ ์์ด ๋ ๋ง์ ํต์ ๋ฅผ ๊ฐ๋ฅ์ผ ํฉ๋๋ค.
- ์น ๊ฐ๋ฐ ํธํ์ฑ
- Javascript ์ธ์ด๋ก Front-end ๋ฟ๋ง ์๋๋ผ Back-end ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ฑํ ์ ์๊ธฐ์ ์์ฐ์ฑ์ด ๋๊ณ ๋ฌ๋ ์ปค๋ธ๊ฐ ์ค์ด๋ญ๋๋ค.
- ๊ฒฝ๋ ๋ฐ ํจ์จ์ฑ
- Node.js๋ ๋ค๋ฅธ ์น ํ๋ ์์ํฌ์ ๋นํด ์ ์ ๋ฆฌ์์ค๋ฅผ ํ์๋ก ํ๋ ๊ฐ๋ณ๊ณ ํจ์จ์ ์ธ ํ๋ ์์ํฌ์ด๋ฏ๋ก ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๊ฐ ๋ ์ฝ์ต๋๋ค.
- ์ ํ ์์ ์ฑ
- TypeScript๋ JavaScript์ ์ ํ ์์ ์ฑ์ ์ถ๊ฐํ์ฌ ๋ฐํ์์ด ์๋ ์ปดํ์ผ ํ์์ ์ค๋ฅ๋ฅผ ์ก๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ ์ฝ๋์ ์์ ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ฝ๋ ๊ฐ๋ ์ฑ
- TypeScript์ ๊ฐ๋ ฅํ ์ ํ ์ง์ ๋ฐ ๋ช ์์ ์ ํ ์ ์ธ์ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๊ฐ์ ํ๊ณ ์ดํด ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ ์ฝ๊ฒ ๋ง๋๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ์ผ๊ด์ฑ
- Docker๋ ์์ฉ ํ๋ก๊ทธ๋จ ํ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๋๋ก ํ์ฌ ์ข ์์ฑ ๋๋ ๊ตฌ์ฑ์ ์ฐจ์ด๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
- ํจ์จ์ฑ
- Docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ฅผ ๋ณ๋์ ์ปจํ ์ด๋๋ก ๊ฒฉ๋ฆฌํ์ฌ ๋ฆฌ์์ค ์ฌ์ฉ๋์ ์ค์ด๊ณ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
๋ณ์๋ช
- Camel Case ์ฌ์ฉ
- lower Camel Case
- ํจ์์ ๊ฒฝ์ฐ ๋์ฌ+๋ช ์ฌ ์ฌ์ฉ
- ex) getInformation()
- flag๋ก ์ฌ์ฉ ๋๋ ๋ณ์๋ ์กฐ๋์ฌ + flag ์ข ๋ฅ๋ก ๊ตฌ์ฑ
- ex) isNum
- ์ฝ์ด๋ ๋๋๋ก ์ฌ์ฉํ์ง ์๋๋ค.
- ๋ถ๋์ดํ๊ฒ ์ฝ์ด๊ฐ ํ์ํ๋ค๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ ํ์๊ณผ ์์๋ฅผ ๊ฑฐ์น๋ค.
์ฃผ์
- ํ์ค ์ฃผ์์ // ๋ฅผ ์ฌ์ฉํ๋ค.
// ํ์ค ์ฃผ์์ผ ๋
/**
* ์ฌ๋ฌ์ค
* ์ฃผ์์ผ ๋
*/
- ํจ์์ ๋ํ ์ฃผ์
/**
* @route Method /Route
* @desc Function Description
* @access Public
*/
- Bracket ์ฌ์ฉ ์ ๋ด๋ถ์ ์ฃผ์์ ์์ฑํ๋ค.
if (a == 5) {
// ์ฃผ์
}
Bracket
- ํ์ค if ๋ฌธ์ ์ฌ๋ฌ ์ค๋ก ์์ฑํ๋ค.
// ํ์ค if ๋ฌธ - ์ฌ๋ฌ ์ค๋ก ์์ฑ
if (trigger) {
return;
}
- ๊ดํธ๋ ํ์นธ ๋์ฐ๊ณ ์ฌ์ฉํ๋ค.
// ๊ดํธ ์ฌ์ฉ ํ์นธ ๋์ฐ๊ณ ์ฌ์ฉํ๋ค.
if (left == true) {
return;
}
- Bracket ์์ชฝ ์ฌ์ด๋ฅผ ๋์ด์ ์ฌ์ฉํ๋ค.
const { userId } = request.user;
๋น๋๊ธฐ ํจ์์ ์ฌ์ฉ
- async, await ํจ์ ์ฌ์ฉ์ ์งํฅํ๋ค.
- Promise ์ฌ์ฉ์ ์ง์ํ๋ค.
- ๋ค๋ง ๋ก์ง์ ์ง๋ ๋ฐ ์์ด promise๋ฅผ ๋ถ๊ฐํผํ๊ฒ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ฃผ์์ผ๋ก ํ์ํ๊ณ commit์ ๊ทธ ์ด์ ๋ฅผ ์์ฑํ๋ค.
ํ๊ทธ ์ด๋ฆ | ์ค๋ช |
---|---|
chore | ์ฝ๋ ์์ , ๋ด๋ถ ํ์ผ ์์ |
feat | ์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํ |
add | FEAT ์ด์ธ์ ๋ถ์์ ์ธ ์ฝ๋ ์ถ๊ฐ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ, ์๋ก์ด ํ์ผ ์์ฑ |
fix | ๋ฒ๊ทธ, ์ค๋ฅ ํด๊ฒฐ |
style | ์ฝ๋์ ๊ด๋ จ ์๋ ์ฃผ์ ๋ฌ๊ธฐ, ์ค๋ฐ๊ฟ |
docs | README๋ WIKI ๋ฑ์ ๋ฌธ์ ๊ฐ์ |
Git Workflow
main โ develop โ feature_# / fix_#
feature, fix ์ดํ ๋ฒํธ๋ issue ๋ฒํธ์ ๋ง๊ฒ ์์ฑ
Issue ์์
/-------------------------
Feature/Fix Request
๊ธฐ๋ฅ ์ค๋ช
: ์ด๋์ฅ์ ๋ณด๋ด์ค๋๋ค.
To-Do List
* ๋์ ์์ฑํด์ ์ด๋์ฝ๋ ๋ณด๋ด์ฃผ๊ธฐ
-------------------------/
PR ์์
/-------------------------
Solved Issue
close/ํด๊ฒฐํ ์ด์์ ๋งํฌ
Motivation
* ์ด๋์ฅ ์์ฑ api ๊ตฌํ
Key Changes
* ๋์ ์์ฑํด์ ์ด๋์ฝ๋ ์์ฑ
To Reviewers
* ๋จธ์งํด์ฃผ์ธ์~~
-------------------------/
1. issue ์์ฑ
2. local - feature_# / fix_# ์์ ๊ฐ์ ๊ธฐ๋ฅ ์์
3. remote - feature_# / fix_# ์ Push
4. remote - develop ์ผ๋ก PR
5. ์ฝ๋ ๋ฆฌ๋ทฐ ํ Confirm ๋ฐ๊ณ remote - develop Merge
6. remote - develop ์ Merge ๋ ๋ ๋ง๋ค ๋ชจ๋ ํ์ local - develop pull ๋ฐ์ ์ต์ ์ํ ์ ์ง
Branch Name | ์ค๋ช |
---|---|
main | ๋ฐฐํฌ์ฉ ๋ธ๋์น |
develop | ๊ตฌํ ์๋ฃ ๋ธ๋์น |
feature_/# | ์ด์ ๋ณ ๊ธฐ๋ฅ ๊ตฌํ ๋ธ๋์น |
fix_/# | ์ด์ ๋ณ ํฝ์ค ๋ธ๋์น |