Skip to content

KUALSNS/BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ป ๊ธฐ์ˆ  ์Šคํƒ


๐Ÿ”‘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 ์ ์šฉ

๐Ÿ‘€ ๊ธฐ์ˆ  ์Šคํƒ ์„ ์ • ์ด์œ 


React

  1. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜
  • ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  1. Virtual DOM
  • Virtual DOM์„ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์ค„๊ณ  ์ˆ˜์ • ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ์ง€์‹๊ณต์œ 
  • ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด ๋ฌธ์ œ์ƒํ™ฉ์— ๋Œ€์‘ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

Vite

  1. ์„œ๋ฒ„ ์‹œ์ž‘ ์†๋„
  • ๊ฐœ๋ฐœํ•  ๋•Œ ๋ฒˆ๋“ค๋ง์„ ํ•˜์ง€ ์•Š๊ณ  ESM ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ ์„œ๋ฒ„ ๊ตฌ๋™ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  1. ์—…๋ฐ์ดํŠธ ์†๋„
  • HMR์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ณ€๊ฒฝ๋œ ์ปจํ…์ธ ๋งŒ์„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Axios

  1. Promise๊ธฐ๋ฐ˜
  • return์„ promise ๊ฐ์ฒด๋กœ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— response ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
  1. ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ
  • ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ตœ์ ํ™”๋กœ ๋ธŒ๋ผ์šฐ์ €(ํŠนํžˆ, ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €)ํ˜ธํ™˜์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Recoil

  1. ๋‹จ์ˆœํ•จ
  • ๋‹ค๋ฅธ ์ „์—ญ์ƒํƒœ๊ด€๋ฆฌ(ex. Redux)์— ๋น„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ๊ฐ„ํŽธํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•ด ์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
  • ์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด Recoil ์ž์ฒด๋งŒ์œผ๋กœ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Node.js

  1. Single-Thread์˜ non-blocking I/O ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜
  • Node.js๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ(Single-Thread)์˜ ๋…ผ ๋ธ”๋กœํ‚น(Non-blocking I/O) ์ด๋ฒคํŠธ ๊ธฐ ๋ฐ˜ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด ๋†’์€ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  1. npm(node package manager)์„ ํ†ตํ•œ ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ(ํŒจํ‚ค์ง€) ์ œ๊ณต
  • ๋‚ด์žฅ HTTP ์„œ๋ฒ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด ์›น ์„œ๋ฒ„์—์„œ ์•„ํŒŒ์น˜ ๋“ฑ์˜ ๋ณ„๋„์˜ ์†Œํ”„ ํŠธ์›จ์–ด ์—†์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„์˜ ๋™์ž‘์— ์žˆ์–ด ๋” ๋งŽ์€ ํ†ต์ œ ๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•ฉ๋‹ˆ๋‹ค.
  1. ์›น ๊ฐœ๋ฐœ ํ˜ธํ™˜์„ฑ
  • Javascript ์–ธ์–ด๋กœ Front-end ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Back-end ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ์— ์ƒ์‚ฐ์„ฑ์ด ๋†’๊ณ  ๋Ÿฌ๋‹ ์ปค๋ธŒ๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.
  1. ๊ฒฝ๋Ÿ‰ ๋ฐ ํšจ์œจ์„ฑ
  • Node.js๋Š” ๋‹ค๋ฅธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์— ๋น„ํ•ด ์ ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฐ€๋ณ๊ณ  ํšจ์œจ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฏ€๋กœ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

TypeScript

  1. ์œ ํ˜• ์•ˆ์ „์„ฑ
  • TypeScript๋Š” JavaScript์— ์œ ํ˜• ์•ˆ์ „์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์ด ์•„๋‹Œ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์˜ค๋ฅ˜๋ฅผ ์žก๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ํ–ฅ์ƒ๋œ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ
  • TypeScript์˜ ๊ฐ•๋ ฅํ•œ ์œ ํ˜• ์ง€์ • ๋ฐ ๋ช…์‹œ์  ์œ ํ˜• ์„ ์–ธ์€ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๊ฐœ์„ ํ•˜๊ณ  ์ดํ•ด ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker

  1. ์ผ๊ด€์„ฑ
  • Docker๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ™˜๊ฒฝ์ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„์— ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋„๋ก ํ•˜์—ฌ ์ข…์†์„ฑ ๋˜๋Š” ๊ตฌ์„ฑ์˜ ์ฐจ์ด๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  1. ํšจ์œจ์„ฑ
  • Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฒฉ๋ฆฌํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ  ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ Code Convention


๋ณ€์ˆ˜๋ช…
  1. Camel Case ์‚ฌ์šฉ
  • lower Camel Case
  1. ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ๋™์‚ฌ+๋ช…์‚ฌ ์‚ฌ์šฉ
  • ex) getInformation()
  1. flag๋กœ ์‚ฌ์šฉ ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ์กฐ๋™์‚ฌ + flag ์ข…๋ฅ˜๋กœ ๊ตฌ์„ฑ
  • ex) isNum
  1. ์•ฝ์–ด๋Š” ๋˜๋„๋ก ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋ถ€๋“์ดํ•˜๊ฒŒ ์•ฝ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ ํŒ€์›๊ณผ ์ƒ์˜๋ฅผ ๊ฑฐ์นœ๋‹ค.
์ฃผ์„
  1. ํ•œ์ค„ ์ฃผ์„์€ // ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
// ํ•œ์ค„ ์ฃผ์„์ผ ๋•Œ
/**
 * ์—ฌ๋Ÿฌ์ค„
 * ์ฃผ์„์ผ ๋•Œ
 */
  1. ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์„
/**
 * @route Method /Route
 * @desc Function Description
 * @access Public
 */
  1. Bracket ์‚ฌ์šฉ ์‹œ ๋‚ด๋ถ€์— ์ฃผ์„์„ ์ž‘์„ฑํ•œ๋‹ค.
if (a == 5) {
  // ์ฃผ์„
}
Bracket
  1. ํ•œ์ค„ if ๋ฌธ์€ ์—ฌ๋Ÿฌ ์ค„๋กœ ์ž‘์„ฑํ•œ๋‹ค.
// ํ•œ์ค„ if ๋ฌธ - ์—ฌ๋Ÿฌ ์ค„๋กœ ์ž‘์„ฑ
if (trigger) {
  return;
}
  1. ๊ด„ํ˜ธ๋Š” ํ•œ์นธ ๋„์šฐ๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
// ๊ด„ํ˜ธ ์‚ฌ์šฉ ํ•œ์นธ ๋„์šฐ๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
if (left == true) {
  return;
}
  1. Bracket ์–‘์ชฝ ์‚ฌ์ด๋ฅผ ๋„์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
const { userId } = request.user;
๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ
  1. async, await ํ•จ์ˆ˜ ์‚ฌ์šฉ์„ ์ง€ํ–ฅํ•œ๋‹ค.
  2. Promise ์‚ฌ์šฉ์€ ์ง€์–‘ํ•œ๋‹ค.
  3. ๋‹ค๋งŒ ๋กœ์ง์„ ์งœ๋Š” ๋ฐ ์žˆ์–ด promise๋ฅผ ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ฃผ์„์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  commit์— ๊ทธ ์ด์œ ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

๐Ÿ“Œ Commit Convention


[TAG] ๋ฉ”์‹œ์ง€

ํƒœ๊ทธ ์ด๋ฆ„ ์„ค๋ช…
chore ์ฝ”๋“œ ์ˆ˜์ •, ๋‚ด๋ถ€ ํŒŒ์ผ ์ˆ˜์ •
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
add FEAT ์ด์™ธ์˜ ๋ถ€์ˆ˜์ ์ธ ์ฝ”๋“œ ์ถ”๊ฐ€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€, ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ƒ์„ฑ
fix ๋ฒ„๊ทธ, ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
style ์ฝ”๋“œ์— ๊ด€๋ จ ์—†๋Š” ์ฃผ์„ ๋‹ฌ๊ธฐ, ์ค„๋ฐ”๊ฟˆ
docs README๋‚˜ WIKI ๋“ฑ์˜ ๋ฌธ์„œ ๊ฐœ์ •

๐Ÿ’ป Branch Strategy


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_/# ์ด์Šˆ ๋ณ„ ํ”ฝ์Šค ๋ธŒ๋žœ์น˜

๐Ÿ“ƒ API Documentation

API๋ช…์„ธ์„œ

โš™๏ธ Software Architecture


Architecture

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published